パケットの送信元ポート番号を条件にするパケットフィルタリング設定¶
動作確認バージョン: | vSRX Version22.4R1 |
---|
特定の送信元ポート番号への通信を拒否する設定¶
特定のポート番号の通信(パケット)のみファイアウォールのインターフェイスで遮断し、その他の通信に関しては転送する設定を行います。
サンプル設定のシナリオ
- ポート番号22(SSH返答パケット)の通信を遮断したい
- ポート番号22以外の通信は、すべて許可して転送したい
- インターフェイス(ge-0/0/2)にインプットするトラフィックに対して有効化したい
シナリオにおける設定のながれ
CLIにて入力するコマンド
user01@vSRX-02# set firewall filter SSH term TERM1 from protocol tcp
user01@vSRX-02# set firewall filter SSH term TERM1 from source-port 22
user01@vSRX-02# set firewall filter SSH term TERM1 then discard
user01@vSRX-02# set firewall filter SSH term TERM2 then accept
user01@vSRX-02# set interfaces ge-0/0/2 unit 0 family inet filter input SSH
正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
ge-0/0/2 {
unit 0 {
family inet {
filter {
input SSH;
}
address 192.168.3.102/24;
}
}
}
}
firewall {
filter SSH {
term TERM1 {
from {
protocol tcp;
source-port 22;
}
then {
discard;
}
}
term TERM2 {
then accept;
}
}
}
動作確認結果
以下の検証結果ログから、検証構成図にあるサーバーインスタンス(192.168.2.12)からサーバーインスタンス(192.168.3.13)宛てのPINGは成功していますが、SSH通信が失敗していることからパケットフィルタリング機能が動作していることが確認できました。
[user01@centsv-02 ~]$ ssh user01@192.168.3.13
^C
[user01@centsv-02 ~]$
[user01@centsv-02 ~]$ ping 192.168.3.203 -c 5
PING 192.168.3.203 (192.168.3.203) 56(84) bytes of data.
64 bytes from 192.168.3.203: icmp_seq=1 ttl=63 time=2.48 ms
64 bytes from 192.168.3.203: icmp_seq=2 ttl=63 time=0.968 ms
64 bytes from 192.168.3.203: icmp_seq=3 ttl=63 time=0.868 ms
64 bytes from 192.168.3.203: icmp_seq=4 ttl=63 time=0.926 ms
64 bytes from 192.168.3.203: icmp_seq=5 ttl=63 time=0.910 ms
--- 192.168.3.203 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 0.868/1.231/2.483/0.626 ms
[user01@centsv-02 ~]$
特定の送信元ポート番号への通信を許可する設定¶
特定のポート番号の通信(パケット)のみ許可して、その他の通信に関してはファイアウォールのインターフェイスで遮断する設定を行います。
サンプル設定のシナリオ
- 送信元ポート番号22(SSH返答パケット)の通信を転送したい
- 送信元ポート番号22以外の通信は、すべて遮断したい
- インターフェイス(ge-0/0/2)にインプットするトラフィックに対して有効化したい
シナリオにおける設定のながれ
CLIにて入力するコマンド
user01@vSRX-02# set firewall filter SSH term TERM1 from protocol tcp
user01@vSRX-02# set firewall filter SSH term TERM1 from source-port 22
user01@vSRX-02# set firewall filter SSH term TERM1 then accept
user01@vSRX-02# set firewall filter SSH term TERM2 then discard
user01@vSRX-02# set interfaces ge-0/0/2 unit 0 family inet filter input SSH
正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
ge-0/0/2 {
unit 0 {
family inet {
filter {
input SSH;
}
address 192.168.3.102/24;
}
}
}
}
firewall {
filter SSH {
term TERM1 {
from {
protocol tcp;
source-port 22;
}
then accept;
}
term TERM2 {
then {
discard;
}
}
}
}
動作確認結果
以下の検証結果ログから、検証構成図にあるサーバーインスタンス(192.168.2.12)からサーバーインスタンス(192.168.3.13)へのSSH通信は成功しますが、サーバーインスタンス(192.168.2.12)から 仮想ルーター(192.168.3.203)宛てのPingは失敗していることからパケットフィルタリング機能が動作していることが確認できました。
[user01@centsv-02 ~]$ ping 192.168.3.203 -c 5
PING 192.168.3.203 (192.168.3.203) 56(84) bytes of data.
--- 192.168.3.203 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 3999ms
[user01@centsv-02 ~]$ ssh user01@192.168.3.13
user01@192.168.3.13's password:
Last login: Mon Sep 25 07:40:57 2017 from 192.168.2.202
Thanks for using Official Template (CentOS).
====================================================
* Time Zone *
Default TimeZone is UTC.
* Stack (Application Set) *
Default install apps is following.
- chrony
- acpid
- cloud-init
You can update those apps to latest version with
#yum update
* To Change this message *
please edit "/etc/motd".
====================================================
[user01@centsv-03 ~]$
送信元ポート番号(ポート番号範囲指定)を利用した拒否設定¶
送信元ポート番号の範囲を指定して該当する通信のみファイアウォールのインターフェイスで遮断し、その他の通信に関しては転送する設定を行います。
サンプル設定のシナリオ
- 送信元ポート番号(22から23)の通信だけ遮断したい
- 送信元ポート番号(22から23)以外の通信はすべて転送したい
- インターフェイス(ge-0/0/1)にインプットするトラフィックに対して有効化したい
シナリオにおける設定のながれ
CLIにて入力するコマンド
user01@vSRX-02# set firewall filter Return_SSH_TELNET_DENY term 1 from protocol tcp
user01@vSRX-02# set firewall filter Return_SSH_TELNET_DENY term 1 from source-port 22-23
user01@vSRX-02# set firewall filter Return_SSH_TELNET_DENY term 1 then discard
user01@vSRX-02# set firewall filter Return_SSH_TELNET_DENY term 2 then accept
user01@vSRX-02# set interfaces ge-0/0/1 unit 0 family inet filter input Return_SSH_TELNET_DENY
正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
ge-0/0/1 {
unit 0 {
family inet {
filter {
input Return_SSH_TELNET_DENY;
}
address 192.168.2.102/24;
}
}
}
}
firewall {
filter Return_SSH_TELNET_DENY {
term 1 {
from {
protocol tcp;
source-port 22-23;
}
then {
discard;
}
}
term 2 {
then accept;
}
}
}
動作確認結果
以下の検証結果ログから、検証構成図にある仮想ルーター(192.168.1.201)から 仮想ルーター(192.168.2.202)のポート番号80宛ての通信は成功しますが、仮想ルーター(192.168.1.201)から 仮想ルーター(192.168.2.202)のポート番号22,23あての通信は失敗しておりパケットフィルタリング機能が動作していることが確認できました。
user01@vRouter-01:~$ wget http://192.168.2.202
--2017-09-28 03:43:29-- http://192.168.2.202/
Connecting to 192.168.2.202:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1057 (1.0K) [text/html]
Saving to: ‘index.html’
index.html 0%[ ] 0 --.-KB/s
index.html 100%[=====================>] 1.03K --.-KB/s in 0s
2017-09-28 03:43:29 (113 MB/s) - ‘index.html’ saved [1057/1057]
user01@vRouter-01:~$ ssh user01@192.168.2.202
^C
user01@vRouter-01:~$
user01@vRouter-01:~$ telnet 192.168.2.202
Trying 192.168.2.202...
^C
user01@vRouter-01:~$
送信元ポート番号(ポート番号範囲指定)を利用した許可設定¶
送信元ポート番号の範囲を指定して該当する通信のみ許可して、その他の通信に関してはファイアウォールのインターフェイスで遮断する設定を行います。
サンプル設定のシナリオ
- 送信元ポート番号(22から23)の通信だけ転送したい
- 送信元ポート番号(22から23)以外の通信はすべて遮断したい
- インターフェイス(ge-0/0/1)にインプットするトラフィックに対して有効化したい
シナリオにおける設定のながれ
CLIにて入力するコマンド
user01@vSRX-02# set firewall filter Return_SSH_TELNET_PERMIT term 1 from protocol tcp
user01@vSRX-02# set firewall filter Return_SSH_TELNET_PERMIT term 1 from source-port 22-23
user01@vSRX-02# set firewall filter Return_SSH_TELNET_PERMIT term 1 then accept
user01@vSRX-02# set firewall filter Return_SSH_TELNET_PERMIT term 2 then discard
user01@vSRX-02# set interfaces ge-0/0/1 unit 0 family inet filter input Return_SSH_TELNET_PERMIT
正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
ge-0/0/1 {
unit 0 {
family inet {
filter {
input Return_SSH_TELNET_PERMIT;
}
address 192.168.2.102/24;
}
}
}
}
firewall {
filter Return_SSH_TELNET_PERMIT {
term 1 {
from {
protocol tcp;
source-port 22-23;
}
then accept;
}
term 2 {
then {
discard;
}
}
}
}
動作確認結果
以下の検証結果ログから、検証構成図にある仮想ルーター(192.168.1.201)から仮想ルーター(192.168.2.202)ポート番号22,23あての通信は成功しますが、仮想ルーター(192.168.1.201)から 仮想ルーター(192.168.2.202)宛てのPingやwget(ポート番号80)宛ての通信は失敗しておりパケットフィルタリング機能が動作していることが確認できました。
仮想ルーター(192.168.1.201)から仮想ルーター(192.168.2.202)宛てのSSHならびにTELNETのアクセス結果
user01@vRouter-01:~$ ssh user01@192.168.2.202
Welcome to Brocade Vyatta Network OS
user01@192.168.2.202's password:
Welcome to Brocade Vyatta Network OS
Version: 5.2R4
Description: Brocade Vyatta Network OS 5600 5.2R4 Standard
Last login: Thu Sep 28 03:32:37 2017 from 192.168.1.201
user01@vRouter-02:~$
user01@vRouter-02:~$ exit
logout
Connection to 192.168.2.202 closed.
user01@vRouter-01:~$
user01@vRouter-01:~$ telnet 192.168.2.202
Trying 192.168.3.203...
Connected to 192.168.2.202.
Escape character is '^]'.
Welcome to Brocade Vyatta Network OS
vRouter-02 login: user01
Password:
Welcome to Brocade Vyatta Network OS
Version: 5.2R4
Description: Brocade Vyatta Network OS 5600 5.2R4 Standard
user01@vRouter-02:~$
仮想ルーター(192.168.1.201)からサーバーインスタンス(192.168.2.12)宛てのPingとwget(ポート番号80)の通信結果
user01@vRouter-01:~$ ping 192.168.2.12 count 5
PING 192.168.2.12 (192.168.2.12) 56(84) bytes of data.
--- 192.168.2.12 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4004ms
user01@vRouter-01:~$
user01@vRouter-01:~$ wget http://192.168.2.202
--2017-09-28 03:51:44-- http://192.168.2.202/
Connecting to 192.168.2.202:80...
^C
user01@vRouter-01:~$