ip route コマンドで特定IP/NWのトラフィックを拒否する方法

インターネットにサーバを公開していると特定のIPから辞書攻撃を受けたり、WEBページへのアタックを受けて重くなる等の事案が少なからず発生します。例えば以下のログ(/var/log/secure)は、中国と思われるIPアドレスからSSHの認証を試みる通信が来ていることを示します。もちろん中国からこのサーバにログインすることはありません。よってこれは攻撃を受けている状態、といえます。

Apr 30 09:41:48 rproxy sshd[1574]: Failed password for root from 183.3.202.178 port 21465 ssh2
Apr 30 09:41:50 rproxy sshd[1574]: Failed password for root from 183.3.202.178 port 21465 ssh2
Apr 30 09:41:53 rproxy sshd[1574]: Failed password for root from 183.3.202.178 port 21465 ssh2

拒否したいIPが特定できれば、Linuxのルーティングテーブル操作を行うことで簡単に拒否設定が可能です。設定にはipコマンドを利用します。なお、ルーティングテーブルの操作は、rootでの操作権限が必要となります。

ルーティングテーブルの確認

現在のルーティングテーブルの確認する場合は以下コマンドを実行します。

[root@rproxy ~]# ip route show
unreachable 183.79.135.206
blackhole 183.3.202.178
10.24.96.0/24 dev eth0 proto kernel scope link src 10.24.96.210
169.254.0.0/16 dev eth0 scope link metric 1002
default via 10.24.96.254 dev eth0

または

[root@rproxy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
183.79.135.206 - 255.255.255.255 !H 0 - 0 -
183.3.202.178 0.0.0.0 255.255.255.255 UH 0 0 0 *
10.24.96.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.24.96.254 0.0.0.0 UG 0 0 0 eth0

一時的な拒否方法/永続的な拒否設定

以下のコマンドで拒否用の静的ルーティングルールを追加します。blackholeは送出I/Fをblackhole(null)とすることで応答パケットを結果的に捨てさせます。unreachableは不到達フラグをルーティング情報として保持させ、応答を行わせないようにしています。

ip route add xx.xx.xx.xx/yy blackhole

または

ip route add xx.xx.xx.xx/yy unreachable

上記コマンドは再起動によってクリアされるため、恒久的な設定を行う場合は専用のファイルで静的ルート設定を行います。(なければ作成します。)記述内容に関しては、基本的に維持したいルールをip route show コマンドで確認し、該当行をそのままコピペするだけでOKです。これでサーバ再起動後も静的ルーティングの設定が維持されます。

[root@rproxy ~]# ip route show
unreachable 183.79.135.206 ←拒否ルール
blackhole 183.3.202.178 ←拒否ルール
10.24.96.0/24 dev eth0 proto kernel scope link src 10.24.96.210
8.8.8.0/24 via 10.24.96.254 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
default via 10.24.96.254 dev eth0

設定ファイルは[/etc/sysconfig/network-scripts/route-インターフェース名]です。

[root@rproxy ~]# cat /etc/sysconfig/network-scripts/route-eth0
unreachable 183.79.135.206
blackhole 183.3.202.0/24

設定した拒否用静的ルーティングの削除

設定したルートを削除する場合は以下のコマンドを利用します。

[root@rproxy ~]# ip route del xx.xx.xx.xx

または

[root@rproxy ~]# ip route del xx.xx.xx.xx/yy

以上です。

Copyright © 2021 たぐたぐ.com. All rights reserved.