Yamaha RTX ルータのファイアウォール設定

スポンサーリンク

Yamaha RTXでファイアウォールルール(フィルタルール)を設定する場合の操作をまとめます。Yamaha RTXのファイアウォールはデフォルトの挙動は戻り方向を自動的に許可しないステートレスファイアウォールです。もし、戻り方向を自動的に許可したいならばdynamicオプションを指定します。

設定まとめ

ファイアウォールルールの定義 (ステートレス)

以下のようなコマンドでファイアウォールルールを定義する事ができます。

# ip filter <フィルタ番号> <タイプ> <送信元IPアドレス> [ <宛先IPアドレス> [ <プロトコル> [ <送信元ポート番号> [<宛先ポート番号>]]]]

タイプは通信を許可するか拒否するかなどの指定です。指定可能なタイプは以下の通りです。

許可する (ログ記録あり)

拒否する (ログ記録あり)

タイプ 挙動
pass 許可する (ログ記録なし)
pass-log
pass-nolog 許可する (ログ記録なし)
reject 拒否する (ログ記録あり)
reject-log
reject-nolog 拒否する (ログ記録なし)

上記以外にも「restrict」「restrict-log」「restrict-nolog」という指定もあります。詳細は「9.1.10 IP パケットのフィルタの設定」を参照ください

例えば、icmpを全て許可するならば以下のような指定です。

ip filter 100000 pass * * icmp 

例えば、192.168.100.0/24に対してicmpを許可するならば以下のような指定です。

ip filter 100100 pass * 192.168.100.0/24 icmp 

例えば、udp tracerouteが使用するポート番号33434から33523までを許可するならば以下のような指定です。

ip filter 100200 pass * * udp * 33434-33523

ファイアウォールルールの定義 (ステートフル)

戻り方向を許可するならば、ip filterの後にdynamicを付与します。

# ip filter dynamic <フィルタ番号> <送信元IPアドレス>  <宛先IPアドレス> <プロトコル>

dynamicは全てのプロトコル番号やポート番号を指定できるわけではありません。公式ドキュメントで「ニーモニック / IPプロトコル」のみが指定可能です

戻り方向も含めてsshを許可する例は以下の通りです。

ip filter dynamic 200000 * 200.0.0.0/8 ssh 

戻り方向も含めてtcpを許可する例は以下の通りです。

ip filter dynamic 200100 * 200.0.0.0/8 tcp

ファイアウォールルールの適用

あらかじめ作成したファイアウォールルールを適用するには以下のコマンドを使用します。

ip lan2 secure filter <方向> <フィルタ列> [ dynamic <フィルタ列> ]

例えば、lan2のin(ingress)方向にフィルタを適用するには以下のように指定します。

ip lan secure filter in 100010 100020 100030

例えば、lan2のout(egress)方向に通常のフィルタとダイナミックフィルタを同時に適用するには以下のように指定します。

ip lan secure filter out 100010 100020 100030 dynamic 200010 200020

動作確認

動作確認の構成

以下の環境で動作確認を行います。

+-----------------+
| Rocky Linux 8.4 |
|      host201    |
+-------+---------+
 ens192 | .201
        |
        | 201.201.201.0/24
        |
 ens224 | .200
+-------+---------+
| Rocky Linux 8.4 |
|      host200    |
+-------+---------+
 ens192 | .200
        |
        | 200.200.200.0/24
        | 
   lan2 | .1 
+-------+---------+ 
|  Yamaha RTX 810 | 
|       R1        |
+-------+---------+
   lan1 | .1
        |
        | 192.168.100.0/24
        |
 ens192 | .100
+-------+---------+
| Rocky Linux 8.4 |
|      host100    |
+-------+---------+
 ens224 | .100
        |
        | 192.168.101.0/24
        |
 ens192 | .101
+-------+---------+
| Rocky Linux 8.4 |
|      host101    |
+-----------------+

初期設定

lan2へのip addressとstatic routeが設定されている状態で動作確認をします。

[R1:RTX810]
ip route default gateway 200.200.200.200
ip route 192.168.0.0/16 gateway 192.168.100.100
ip lan1 address 192.168.100.1/24
ip lan2 address 200.200.200.1/24
telnetd host lan
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24

host100, host200はルーティングを許可する設定を投入します。

/sbin/sysctl -w net.ipv4.ip_forward=1

host100, host101, host200, host201はfirewalldを無効化します。

systemctl disable firewalld.service --now

動作確認 (1) 片方向の通信許可

WANからLANへの通信方向に対して、host101が属するセグメント(192.168.101.0/24)へのicmpを許可し、さらにhost100が属するセグメント(192.168.100.0/24)へのudp tracerouteを許可します。

[R1:RTX810]
ip filter 100000 pass * 192.168.101.0/24 icmp
ip filter 100010 pass * 192.168.100.0/24 udp * 33434-33523
ip lan2 secure filter in 100000 100010

host100へのpingは失敗するものの、host101へのpingは成功する事を確認します。

[Host200:Rocky8.4]
[root@host200 ‾]# ping -c 3 192.168.100.100
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.

--- 192.168.100.100 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 81ms

[root@host200 ‾]# 
[root@host200 ‾]# 
[root@host200 ‾]# 
[root@host200 ‾]# ping -c 3 192.168.101.101
PING 192.168.101.101 (192.168.101.101) 56(84) bytes of data.
64 bytes from 192.168.101.101: icmp_seq=1 ttl=62 time=1.07 ms
64 bytes from 192.168.101.101: icmp_seq=2 ttl=62 time=0.844 ms
64 bytes from 192.168.101.101: icmp_seq=3 ttl=62 time=0.867 ms

--- 192.168.101.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 42ms
rtt min/avg/max/mdev = 0.844/0.926/1.068/0.103 ms
[root@host200 ‾]# 

host100へのtracerouteは成功するものの、host101へのtracerouteは失敗する事を確認します。

[Host200:Rocky8.4]
[root@host200 ‾]# traceroute -n 192.168.100.100
traceroute to 192.168.100.100 (192.168.100.100), 30 hops max, 60 byte packets
 1  200.200.200.1  0.773 ms  0.685 ms  0.650 ms
 2  192.168.100.100  1.004 ms  0.990 ms  0.977 ms
[root@host200 ‾]# 
[root@host200 ‾]# 
[root@host200 ‾]# traceroute -n 192.168.101.101
traceroute to 192.168.101.101 (192.168.101.101), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  *^C
[root@host200 ‾]# 

動作確認 (2) 戻り含む通信許可

LANからWANへの通信方向に対して、host201へのsshを許可します。dynamicオプションを付与し戻り方向も自動的に許可するようにします。

[R1:RTX810]
ip filter dynamic 200000 * 201.201.201.201 ssh
ip lan2 secure filter out dynamic 200000 

host201へのpingは失敗するものの、sshは成功する事を確認します。

[Host100:Rocky8.4]
[root@host100 ‾]# ping -c 3 201.201.201.201
PING 201.201.201.201 (201.201.201.201) 56(84) bytes of data.

--- 201.201.201.201 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 77ms

[root@host100 ‾]# 
[root@host100 ‾]# 
[root@host100 ‾]# ssh 201.201.201.201
Last login: Sat Jul  3 19:47:19 2021 from 200.200.200.1
[root@host201 ‾]# 
タイトルとURLをコピーしました