LinuxでIPアクセスを拒否する設定

root権限にて。
設定をしくじると、自分もSSHできなくなるので注意。

●CentOS6まで
1つのIP
route add xx.xx.xx.xx gw 0.0.0.0 reject ←default gatewayの場合
または
route add -host xx.xx.xx.xx gw zz.zz.zz.zz reject

ネットワーク
route add xx.xx.xx.xx/xx gw zz.zz.zz.zz reject
または
route add -net xx.xx.xx.xx netmask yy.yy.yy.yy gw zz.zz.zz.zz reject

192.168.0/24 は -net 192.168.0.0 -netmask 255.255.255.0 として解釈される。

再起動などを実施したあとでも有効にしたい場合は
/etc/sysconfig/network-scripts/route-インターフェース名(-eth0とか)
に記述。


●CentOS7以降
1.確認
ip route show all

2.拒否
blackholeは送出I/Fをnull)とすることで応答パケットを破棄。
unreachableは不到達フラグをルーティング情報として保持させ、応答を行わない。

ip route add blackhole xx.xx.xx.xx/yy
または
ip route add unreachable xx.xx.xx.xx/yy

再起動などを実施したあとでも有効にしたい場合は
/etc/sysconfig/network-scripts/route-インターフェース名(-eth0とか)
に記述。

3.削除
現在のルーティングを確認後に、
ip route del xx.xx.xx.xx
または
ip route del xx.xx.xx.xx/yy

●参考
net-toolsとiproute2のコマンド対応早見表
https://orebibou.com/2014/12/ip-tools%E3%81%A8iproute2%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%AF%BE%E5%BF%9C%E6%97%A9%E8%A6%8B%E8%A1%A8/ (俺的備忘録 なんかいろいろ)

ぐっどらっこ。