vSRXでFirewallとNATを検証してみた

スポンサーリンク

はじめに

vSRXを使用する機会があるので以下の資料で勉強しています。
https://www.slideshare.net/JuniperJapan/vsrx-laptop-201505

資料を見ながら実際に操作してみるのが最も効果的なので検証環境を作っていろいろ触ってみます。

目標

検証環境内(VMware Workstation)にvSRXとWindowsPCを構築します。
WindowsPCからvSRXを経由してインターネットを使用できるようにします。

検証環境

仮想環境:VMware Workstation 16 Pro
OS:JunOS vSRX 19.2R1.8

環境構築

環境構築は以下のサイトを参照して下さい。
https://it-study.info/vsrx-vmware-workstation/

JunOSのバージョンは、vSRX(20.4R2.7)を選択します。

VMWare Workstationの設定でネットワークアダプタは以下の通り設定します。上が「vSRX」、下が「仮想PC」です。

vSRXの設定

パスワードの設定

vSRX(20.4R2.7)を起動します。rootでログインしパスワードを設定します。

オペレーションモードに移行
root@:~ # cli

コンフィギュレーションモードに移行
root> configure

Entering configuration mode
[edit]
root# set system root-authentication plain-text-password
New password:
Retype new password:
[edit]

root# commit
commit complete

インターフェースの設定

3つのインターフェースにIPアドレスを設定します。管理人の環境では2つのインターフェースにDHCPを使用しています。

root# set interfaces fxp0 unit 0 family inet dhcp
root# set interfaces ge-0/0/0 unit 0 family inet dhcp
root# set interfaces ge-0/0/1 unit 0 family inet address 192.168.200.1/24
root# commit

SSHの設定

SSHを使用できるように設定し、rootアカウントに使用許可を与えます。

sshを使用する
root# set system services ssh

[edit]

sshはrootアカウントを使用できるようにする
root# set system services ssh root-login allow

[edit]
root# commit

タイムゾーンと日時の設定

タイムゾーンの設定
root# set system time-zone Asia/Tokyo
root# commit

日時の設定
root> set date 202211060627.59

セキュリティゾーンの割り当て

JuniperのFirewallでは単体または複数のInterfaceをSecurityZoneというグループに割り当て、ゾーン間の通信およびゾーン内の通信に対してさまざまな制御を行います。
vSRXでは、デフォルトでtrust, untrustという2つのSecurity Zoneが存在し、ge-0/0/0.0(ge-0/0/0 unit 0) のみがuntrustに割り当てられています。
trustは名前の通り、信頼されたネットワーク(内側)として、untrustは信頼されていないネットワーク(外側)として機能するように設定されています。

# set security zones security-zone trust interfaces ge-0/0/1.0

インターフェースに対するシステムサービスの許可

# set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services dhcp
# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services ssh
# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services ping
# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services dhcp
# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services http
# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services https
# set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services dns

ポリシーの設定

ゾーン間やゾーン内での通信はポリシーがない場合はすべて暗黙のポリシーにより禁止されます。vSRXでは、デフォルトでtrust内及び、trustからuntrustへの通信を許可するポリシーが定義されています。(default-permit)

trustゾーンからuntrustゾーンへのtelnet接続を禁止する
# set security policies from-zone trust to-zone untrust policy deny-telnet match source-address any
# set security policies from-zone trust to-zone untrust policy deny-telnet match destination-address any
# set security policies from-zone trust to-zone untrust policy deny-telnet match application junos-telnet
# set security policies from-zone trust to-zone untrust policy deny-telnet then reject

deny-telnetをdefault-permitの上に移動
# insert security policies from-zone trust to-zone untrust policy deny-telnet before policy default-permit

NATの設定

Firewall設定が完了しても上位のルータが仮想PCの所属するIPサブネット(192.168.200.0/24)への経路を持っていないため、仮想PCはインターネットに接続することはできません。これを解決する方法として以下があります。
・上位のルータに静的経路を設定する
・上位のルータおよびvSRXにルーティングプロトコルを設定する
・NATを設定する
ここでは、NATを設定することによってクライアントPCをインターネットに接続可能にします。

# set security nat source rule-set trust-to-untrust from zone trust
# set security nat source rule-set trust-to-untrust to zone untrust
# set security nat source rule-set trust-to-untrust rule trust-to-untrust-rule match source-address 0.0.0.0/0
# set security nat source rule-set trust-to-untrust rule trust-to-untrust-rule then source-nat interface

仮想PCの設定

ネットワークの設定を実施します。

動作確認

デフォルトゲートウェイにPingが飛ぶことを確認します。

C:\Users\Administrator>ping 192.168.200.1

192.168.200.1 に ping を送信しています 32 バイトのデータ:
192.168.200.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.1 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.200.1 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.200.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

C:\Users\Administrator>

インターネットへの通信ができているかGoogleのパブリックDNSへPingが飛ぶか確認します。

C:\Users\Administrator>ping 8.8.8.8

8.8.8.8 に ping を送信しています 32 バイトのデータ:
8.8.8.8 からの応答: バイト数 =32 時間 =10ms TTL=58
8.8.8.8 からの応答: バイト数 =32 時間 =16ms TTL=58
8.8.8.8 からの応答: バイト数 =32 時間 =9ms TTL=58
8.8.8.8 からの応答: バイト数 =32 時間 =9ms TTL=58

8.8.8.8 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 9ms、最大 = 16ms、平均 = 11ms

C:\Users\Administrator>

疎通確認は問題ないことが確認できました。

最後にブラウザを起動してYahooのサイトが表示できるか確認しましょう。問題なく表示されたら完了です。

コメント