IBM Cloud での vSRX 仮想ファイアウォールの高度なタスクの実行
ファイアウォールの使用
IBM Cloud™ Juniper vSRX 仮想ファイアウォールは、セキュリティ ゾーンという概念を採用しています。ここでは、各 vSRX 仮想ファイアウォール インターフェイスを 1 つのゾーンにマッピングしてステートフル ファイアウォールを処理します。ステートレス ファイアウォールは、ファイアウォール フィルターによって制御されます。
ポリシーは、これらの定義されたゾーン間のトラフィックを許可およびブロックするために使用され、ここで定義されたルールはステートフルです。
IBM Cloud では、vSRX 仮想ファイアウォールは 4 つの異なるセキュリティ ゾーンを持つよう設計されています。
ゾーン |
スタンドアロン インターフェイス |
HA インターフェイス |
---|---|---|
SL-Private(タグなし) |
ge-0/0/0.0 または ae0.0 |
reth0.0 |
SL-Public(タグなし) |
ge-0/0/1.0 または ae1.0 |
reth1.1 |
顧客プライベート(タグ付き) |
ge-0/0/0.1 または ae0.1 |
reth2.1 |
カスタマーパブリック(タグ付き) |
ge-0/0/1.1 または ae1.1 |
reth3.1 |
ゾーン ポリシー
以下は、ポリシーで定義できる属性の一部です。
-
送信元アドレス
-
宛先アドレス
-
アプリケーション
-
アクション(permit/deny/reject/count/log)
これはステートフル操作であるため、パケットの返送を許可する必要はありません(この場合、エコーは応答します)。
ステートフル ファイアウォールを設定するには、次の手順に従います。
-
セキュリティ ゾーンを作成し、それぞれのインターフェイスを割り当てます。
スタンドアロンシナリオ:
set security zones security-zone CUSTOMER-PRIVATE interfaces ge-0/0/0.1
set security zones security-zone CUSTOMER-PUBLIC interfaces ge-0/0/1.1
高可用性シナリオ:
set security zones security-zone CUSTOMER-PRIVATE interfaces reth2.1
set security zones security-zone CUSTOMER-PUBLIC interfaces reth2.1
-
2 つの異なるゾーン間のポリシーとルールを定義します。
次の例は、ゾーン Customer-Private から Customer-Public へのトラフィックの ping を示しています。
set security policies from-zone CUSTOMER-PRIVATE to-zone CUSTOMER-PUBLIC policy
set security policies from-zone CUSTOMER-PRIVATE to-zone CUSTOMER-PUBLIC policy
-
以下のコマンドを使用して、vSRX仮想ファイアウォールに送信されるトラフィックを許可します。
-
スタンドアロンシナリオ:
set security zones security-zone CUSTOMER-PRIVATE interfaces ge-0/0/0.0 host-inbound-traffic system-services all
-
高可用性シナリオ:
set security zones security-zone CUSTOMER-PRIVATE interfaces reth2.0 host-inbound-traffic system-services all
-
-
OSPF や BGP などのプロトコルを許可するには、以下のコマンドを使用します。
-
スタンドアロンシナリオ:
set security zones security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic protocols all
-
高可用性シナリオ:
set security zones security-zone trust interfaces reth2.0 host-inbound-traffic protocols all
-
ファイアウォール フィルター
デフォルトでは、IBM Cloud™ Juniper vSRX 仮想ファイアウォールは ping、SSH、HTTPS をそれ自体で許可し、LO インターフェイスに PROTECT-IN フィルターを適用することで他のすべてのトラフィックをドロップします。
新しいステートレス ファイアウォールを設定するには、次の手順に従います。
-
ファイアウォールフィルターと条件を作成します(以下のフィルターでは、ICMPのみが許可され、他のすべてのトラフィックがドロップされます)
set firewall filter ALLOW-PING term ICMP from protocol icmp
set firewall filter ALLOW-PING term ICMP then accept
-
インターフェイスにフィルタールールを適用します(以下のコマンドは、すべてのプライベートネットワークトラフィックにフィルターを適用します)
set interfaces ge-0/0/0 unit 0 family inet filter input ALLOW-PING
sNAT を使用する
vSRX仮想ファイアウォールアプライアンスでsNATの設定例を参照できます。ゲートウェイの背後でルーティングされたプライベートノードは、sNATとの連携で外部と通信できます。
IBM Cloud™ Juniper vSRX 仮想ファイアウォールに NAT を設定するには、ジュニパーの Web サイトで ネットワーク アドレス変換ユーザー ガイド を参照してください。
フェイルオーバーの使用
プライマリ IBM Cloud™ Juniper vSRX 仮想ファイアウォールからバックアップ デバイスへのフェイルオーバーを開始して、フェイルオーバー後にすべての制御プレーンおよびデータ プレーン トラフィックがセカンダリ ゲートウェイ デバイスを介してルーティングされるようにすることができます。
このセクションは、ジュニパー vSRX 仮想ファイアウォール ゲートウェイ デバイスが高可用性モードでプロビジョニングされている場合にのみ適用されます。
以下の手順を実行します。
-
プライマリ vSRX 仮想ファイアウォール ゲートウェイ デバイスにログインします。
-
コンソール プロンプトでコマンド cli を実行して、CLI モードに入ります。CLI モードに入ると、コンソールにプライマリまたはセカンダリのノード ロールが表示されます。
-
プライマリ vSRX 仮想ファイアウォール ゲートウェイ デバイスで、 コマンドを実行します。
show chassis cluster status
Monitor Failure codes: CS Cold Sync monitoring FL Fabric Connection monitoring GR GRES monitoring HW Hardware monitoring IF Interface monitoring IP IP monitoring LB Loopback monitoring MB Mbuf monitoring NH Nexthop monitoring NP NPC monitoring SP SPU monitoring SM Schedule monitoring CF Config Sync monitoring Cluster ID: 2 Node Priority Status Preempt Manual Monitor-failures Redundancy group: 0 , Failover count: 1 node0 100 primary no no None node1 1 secondary no no None Redundancy group: 1 , Failover count: 1 node0 100 primary yes no None node1 1 secondary yes no None {primary:node0}
両方の冗長性グループで、同じノードがプライマリとして設定されていることを確認します。異なるノードを、異なる冗長性グループの主要な役割として設定することができます。
メモ:vSRX 仮想ファイアウォールは、デフォルトで、冗長グループ 1 ではプリエンプトを yes に、冗長グループ 0 には no に設定します。このリンクを参照して、予防とフェイルオーバーの動作の詳細をご確認ください。
-
コンソール プロンプトで次のコマンドを実行して、フェールオーバーを開始します。
request chassis cluster failover redundancy-group <redundancy group number> node <node number>
ステップ 2 の コマンドの出力から、適切な冗長性グループ番号とノード番号を選択します。両方の冗長グループをフェイルオーバーするには、前のコマンドを各グループに1つずつ 2 回実行します。
-
フェイルオーバーが完了したら、コンソールの出力を確認します。セカンダリとして表示されます。
-
お使いの他の vSRX 仮想ファイアウォール ゲートウェイにログインします。コマンド cli を再度実行して CLI モードに入り、コンソール出力がプライマリとして表示されていることを確認します。
ヒント:Juniper vSRX仮想ファイアウォールゲートウェイデバイスでCLIモードに入ると、コントロールプレーンの観点から出力がプライマリとして表示されます。データ プレーンの観点から、必ずシャーシ クラスタ ステータスの出力を確認して、どのゲートウェイ デバイスがプライマリか判断します。冗長グループ、コントロールプレーン、データプレーンの詳細については、 vSRX仮想ファイアウォールのデフォルト設定を参照してください。
ルーティングの使用
IBM Cloud™ Juniper vSRX 仮想ファイアウォールは JunOS をベースにしています。ジュニパーのルーティング スタック全体にアクセスできます。
-
Static routing静的ルートを設定するには、以下のコマンドを実行します。
デフォルトルートの設定—
set routing-options static route 0/0 next-hop <Gateway IP>
-
Creating a static route-を実行します。
set routing-options static route <PREFIX/MASK> next-hop <Gateway IP>
-
Basic OSPF routing- エリア 0 のみを使用して基本的な OSPF ルーティングを設定するには、 コマンドを使用して md5 認証を使用して以下のコマンドを
set protocols ospf area 0 interface ge-0/0/1.0 authentication md5 0 key <key>
実行します。 -
Basic BGP routing
-
基本的なBGPルーティングを設定するには、まず コマンドを実行してローカルASを
set routing-options autonomous-system 65001
定義します。 -
次に、BGPネイバーとそのセッション属性を設定します。
set protocols bgp group CUSTOMER local-address 10.1.1.1
set protocols bgp group CUSTOMER family inet unicast
set protocols bgp group CUSTOMER family inet6 unicast
set protocols bgp group CUSTOMER peer-as 65002
set protocols bgp group CUSTOMER neighbor 2.2.2.2
この例では、BGPは以下のために設定されています。
-
10.1.1.1 の送信元 IP アドレスを使用してセッションを確立するには
-
ipv4とipv6の両方のユニキャストファミリーをネゴシエートするには
-
AS 65002に属するネイバーとピアリングするには
-
ピア ネイバー IP 10.2.2.2
-
-
その他の設定については、 Junos OSのドキュメントを参照してください。
VPN の使用
このトピックでは、2 つのサイト間のルート ベース VPN の設定例について詳しく説明します。この構成例では、サーバー 1(サイト A)はサーバー 2(サイト B)と通信でき、各サイトは 2 つのフェーズ IPSEC 認証を利用します。詳細については、「 VPN の使用 」および「
サイト A(ダラス)の設定例:
# show security address-book global address Network-A 10.84.237.200/29; [edit] # show security address-book global address Network-B 10.45.53.48/29; # show security ike proposal IKE-PROP { authentication-method pre-shared-keys; dh-group group5; authentication-algorithm sha1; encryption-algorithm aes-128-cbc; lifetime-seconds 3600; } policy IKE-POL { mode main; proposals IKE-PROP; pre-shared-key ascii-text "$9$ewkMLNs2aikPdbkP5Q9CKM8"; ## SECRET-DATA } gateway IKE-GW { ike-policy IKE-POL; address 10.158.100.100; external-interface ge-0/0/1.0; } #show security ipsec proposal IPSEC-PROP { protocol esp; authentication-algorithm hmac-sha1-96; encryption-algorithm aes-128-cbc; lifetime-seconds 3600; } policy IPSEC-POL { perfect-forward-secrecy { keys group5; } proposals IPSEC-PROP; } vpn IPSEC-VPN { bind-interface st0.1; vpn-monitor; ike { gateway IKE-GW; ipsec-policy IPSEC-POL; } establish-tunnels immediately; } #show interfaces ge-0/0/0 { description PRIVATE_VLANs; flexible-vlan-tagging; native-vlan-id 1121; unit 0 { vlan-id 1121; family inet { address 10.184.108.158/26; } } unit 10 { vlan-id 1811; family inet { address 10.184.237.201/29; } } unit 20 { vlan-id 1812; family inet { address 10.185.48.9/29; } } } st0 { unit 1 { family inet { address 10.169.200.0/31; } } #show security policies from-zone CUSTOMER-PRIVATE to-zone VPN { policy Custprivate-to-VPN { match { source-address any; destination-address Network-B; application any; } then { permit; } } } from-zone VPN to-zone CUSTOMER-PRIVATE { policy VPN-to-Custprivate { match { source-address Network-B; destination-address any; application any; } then { permit; } }
サイト B の設定例(ロンドン):
# show interfaces ge-0/0/0 { description PRIVATE_VLANs; flexible-vlan-tagging; native-vlan-id 822; unit 0 { vlan-id 822; family inet { address 10.45.165.140/26; } } unit 10 { vlan-id 821; family inet { address 10.45.53.49/29; } } } st0 { unit 1 { family inet { address 10.169.200.1/31; } } #show security ike proposal IKE-PROP { authentication-method pre-shared-keys; dh-group group5; authentication-algorithm sha1; encryption-algorithm aes-128-cbc; lifetime-seconds 3600; } policy IKE-POL { mode main; proposals IKE-PROP; pre-shared-key ascii-text "$9$H.fz9A0hSe36SevW-dk.P"; ## SECRET-DATA } gateway IKE-GW { ike-policy IKE-POL; address 10.169.100.100; external-interface ge-0/0/1.0; } # show security ipsec proposal IPSEC-PROP { protocol esp; authentication-algorithm hmac-sha1-96; encryption-algorithm aes-128-cbc; lifetime-seconds 3600; } policy IPSEC-POL { perfect-forward-secrecy { keys group5; } proposals IPSEC-PROP; } vpn IPSEC-VPN { bind-interface st0.1; vpn-monitor; ike { gateway IKE-GW; ipsec-policy IPSEC-POL; } establish-tunnels immediately; } #show security zone security-zone CUSTOMER_PRIVATE security-zone CUSTOMER-PRIVATE { interfaces { ge-0/0/0.10 { host-inbound-traffic { system-services { all; } } } } } security-zone VPN { interfaces { st0.1; } } #show security policies from-zone CUSTOMER-PRIVATE to-zone VPN policy Custprivate-to-VPN { match { source-address any; destination-address Network-A; application any; } then { permit; } } #show security zones security-zone VPN interfaces { st0.1; } #show security policies from-zone VPN to-zone CUSTOMER-PRIVATE policy VPN-to-Custprivate { match { source-address Network-A; destination-address any; application any; } then { permit; } }
パフォーマンスに関する考慮事項
最高の IPSEC VPN パフォーマンスを実現するために、IKE と IPSEC の両方のプロポーザルの暗号化アルゴリズムとして AES-GCM を使用します。
例えば:
set security ike proposal IKE-PROP encryption-algorithm aes-128-gcm
set security ipsec proposal IPSEC-PROP encryption-algorithm aes-128-gcm
AES-GCMを暗号化アルゴリズムとして使用する場合、同じプロポーザルで認証アルゴリズムを指定する必要はありません。AES-GCMは、暗号化と認証の両方を提供します。
VPN設定の詳細については、 セキュリティデバイスのIPsec VPNユーザーガイドと例:ルートベースVPNの設定を参照してください。
ホストオペレーティングシステムのセキュリティ保護
IBM Cloud™ Juniper vSRX 仮想ファイアウォールは、Ubuntu と KVM がインストールされたベアメタル サーバー上で仮想マシンとして動作します。ホストOSを保護するには、同じOS上で他の重要なサービスがホストされていないことを確認する必要があります。
SSHアクセス
IBM Cloud™ Juniper vSRX 仮想ファイアウォールは、パブリック/プライベート ネットワーク アクセスまたはプライベート ネットワーク アクセスのみで導入できます。デフォルトでは、ホストOSのパブリックIPへのパスワードベースのSSHアクセスは、新しいプロビジョニングとOSのリロードでは無効になります。ホストへのアクセスは、プライベートIPアドレスを介して実現できます。または、鍵ベース認証を使用してパブリック IP にアクセスすることもできます。そのためには、新しいゲートウェイの順序を設定する際に公開 SSH キーを指定します。
IBM Cloud™ Juniper vSRX 仮想ファイアウォールの既存の導入環境によっては、ホスト OS のパブリック IP へのパスワードベースの SSH アクセスが可能な場合があります。これらの導入では、次の手順で、パスワードベースのSSHによるOSのパブリックIPへのアクセスを手動で無効にすることができます。
-
変更/etc/ssh/sshd_config
-
以下の値が設定されていることを確認します。
ChallengeResponseAuthentication no PasswordAuthentication no
-
ファイルの末尾に以下のフィルター ルールを追加します。
Match Address 10.0.0.0/8 Password Authentication yes
-
-
コマンドを使用してSSHサービスを再起動します /usr/sbin/service ssh restart。
上記の手順により、プライベートインフラストラクチャネットワーク10.0.0.0/8サブネット内のアドレスがSSHアクセスを許可されます。このアクセスは、OSのリロード、クラスタリビルド、バージョンアップグレードなどのアクションに必要です。
ファイアウォール
必要なルールなしで Ubuntu ファイアウォール(UFW、Iptables など)を実装すると、vSRX 仮想ファイアウォール HA クラスターが無効になる可能性があります。vSRX 仮想ファイアウォール ソリューションは、プライマリ ノードとセカンダリ ノード間のハートビート通信に依存します。ファイアウォールルールがノード間の通信を許可していない場合、クラスタ通信は失われます。
vSRX 仮想ファイアウォール アーキテクチャは、以下で説明するファイアウォール ルールに影響を与えます。2つのアーキテクチャの詳細については、 vSRXのデフォルト設定を参照してください。
レガシー アーキテクチャで実行されている vSRX 仮想ファイアウォール バージョン 18.4 HA の導入では、UFW のクラスタ通信を許可するために、以下のルールが必要です。
-
/etc/ufw/before.rules でプロトコル 47(ハートビート通信に使用)を許可するには:
-A ufw-before-input -p 47 -j ACCEPT
-
プライベートネットワーク通信を許可するには:
ufw allow in from 10.0.0.0/8 to 10.0.0.0/8
-
UFWを有効にするには:
ufw enable
新しいアーキテクチャで動作する vSRX 仮想ファイアウォール バージョンでは、ファイアウォール ルールでマルチキャスト通信を許可する必要があります。
場合によっては、トラブルシューティングの操作で、パブリック リポジトリへのアクセスのためにファイアウォールの無効化が必要になる場合があります。このような場合は、IBM Support と連携して手順を理解する必要があります。
ほとんどのゲートウェイアクションでは、ホストOSとvSRX仮想ファイアウォールのプライベート10.0.0.0/8サブネットへのSSHアクセスが必要です。ファイアウォールでこのアクセスをブロックすると、OSのリロード、クラスタの再構築、バージョンアップグレードのアクションが失敗する可能性があります。
その結果、10.0.0.0/8サブネットでSSHアクセスが無効になっている場合、これらのアクションを実行する前に再度有効にする必要があります。
管理インターフェイスの設定
IBM Cloud™ Juniper vSRX 仮想ファイアウォール ノードは、デフォルトでは設定されていない組み込み管理インターフェイス(「fxp0」)を提供します。設定した場合、これらのプライベートインターフェイスを使用して個々のノードと通信することができます。これは、高可用性クラスターでSSH、ping、SNMPなどを介してセカンダリノードのステータスを監視するのに役立つ場合があります。vSRX仮想ファイアウォールのプライベートIPはプライマリノードにフロートするため、セカンダリノードに直接アクセスすることはできません。
fxp0インターフェイスを設定するには、ゲートウェイのプライベートトランジットVLANに接続されたサブネット内のIPが必要です。ゲートウェイに付属するプライマリサブネットには利用可能なIPがありますが、この使用は推奨されません。これは、プライマリサブネットがゲートウェイプロビジョニングインフラストラクチャ用に予約されており、同じポッドに追加のゲートウェイを導入するとIPコリジョンが発生する可能性があるためです。
プライベート トランジット VLAN にセカンダリ サブネットを割り当て、このサブネットの IP を使用して fxp0 とホスト ブリッジ インターフェイスを PING および SSH アクセス用に設定できます。そのためには、次の手順を実行します。