iptablesで防壁を建てる

/ Linux/Unix / Comment[0]
iptablesとはLinuxカーネルに実装されているファイアウォール機能
こいつを使ってここに防壁を建てよう

オプション
-A 指定チェインにルールを追加
-D 指定チェインからルールを削除
-N チェインを作成
-X チェインを削除
-F テーブル初期化

パラメータ
-p プロコトル プロトコルを指定
-s IPアドレス 送信元のアドレス
-d IPアドレス 送信先のアドレス
-i デバイス パケットが入ってくるインターフェイス
-o デバイス パケットが出ていくインターフェイス

アクション
ACCEPT 許可
DROP 破棄
REJECT 拒否
LOG ログを取る
MASQUERADE マスカレード
SNAT 送信元のアドレスの変換
DNAT 送信先のアドレスの変換
REDIRECT 特定ポートにリダイレクト


シェルスクリプトを書いて適用させるという方法が一番やり易い

$ vi iptables.sh
#予め定義されているルールを削除
iptables -F
iptables -X

#基本全てドロップさせる
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#ログを取らせる
iptables -A INPUT -j LOG --log-prefix "IPTABLES-IN:"
iptables -A OUTPUT -j LOG --log-prefix "IPTABLES-OUT:"

#一応ループバックを許可
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#ウェブブラウジング出来るようにする
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

#名前解決出来るようにする
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#ICMPを許可する
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

#ssh(37383ポート)を許可
iptables -A INPUT -p tcp --sport 37383 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 37383 -j ACCEPT

#10.0.0.0/8からのsshアクセスを許可する
iptables -A INPUT -p tcp -s 10.0.0.0/8 --dport 37383 -j ACCEPT
iptables -A OUTPUT -p tcp -s 10.0.0.0/8 --sport 37383 -j ACCEPT

シェルスクリプトを実行して適用
# bash ./iptables.sh
するとこうなる
・ログを取る
・基本全てドロップ
・10.0.0.0/8からのSSHを許可
・ICMPを許可
・ニコニコを許可
・名前解決を許可

ログはカーネルメッセージとしてdmesgコマンドで見ることが出来る
$ dmesg|grep IPTABLES
[42387.990554] IPTABLES-OUT:IN= OUT=eth0 SRC=192.168.1.2 DST=112.71.35.51 LEN=31 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=23397 DPT=21591 LEN=11 
[42388.089404] IPTABLES-IN:IN=eth0 OUT= MAC=hoge:hoge SRC=199.59.148.30 DST=192.168.1.2 LEN=89 TOS=0x00 PREC=0x00 TTL=44 ID=61873 DF PROTO=TCP SPT=443 DPT=35869 WINDOW=31 RES=0x00 ACK PSH URGP=0
[42388.710432] IPTABLES-IN:IN=eth0 OUT= MAC=hoge:hoge SRC=199.59.148.30 DST=192.168.1.2 LEN=89 TOS=0x00 PREC=0x00 TTL=44 ID=26788 DF PROTO=TCP SPT=443 DPT=35870 WINDOW=31 RES=0x00 ACK PSH URGP=0
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可