Linux関連のFirewall、っていうかパケットフィルタリングの定番、iptablesを使ってみます。
Ubuntu Server 16.04.2 LTS で構築しています。
# sudo apt install iptables
# sudo iptables -L # sudo iptables --list -n -v
# sudo iptables --list Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
# sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# sudo iptables -A INPUT -p tcp -s 192.168.0.10/32 --dport 22 -j ACCEPT
# sudo apt list iptables-persistent # sudo apt install iptables-persistent
保存と、読み込み
# sudo /etc/init.d/netfilter-persistent save # sudo /etc/init.d/netfilter-persistent reload
設定は
# sudo cat /etc/iptables/rules.v4
ココに反映されるようですね。
# sudo iptables -F // defaultのポリシー以外の初期化。INPUTが DROPだとココで接続切れるので注意。 # sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //セッション確立後の応答パケットとかなどは許可 # sudo iptables -P INPUT DROP // 自分への送信先のばあい、はすべて破棄 # sudo iptables -P FORWARD DROP // ルーティング?時はすべて破棄 # sudo iptables -P OUTPUT ACCEPT // 自分からの送信のばあい、はすべて許可 # sudo iptables -A INPUT -p icmp -j ACCEPT // pingなどICMPは許可 # sudo iptables -A INPUT -i lo -j ACCEPT // loopback 自分から自分への通信は許可。
あとは個別に、使ってるポートだけ穴開け。
# sudo iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
これでいいかな?
$ sudo iptables -L --line-number
で行番号を表示して、
$ sudo iptables -D INPUT 2 ←行番号
で個別に削除可能
この記事は
現在のアクセス:1554