Category: Command, Os, Redhat ES(CentOS) / Tags:
iptables – IPv4 のパケットフィルタと NAT を管理するツール (INPUTサンプル)
細かく設定するには、シェルとかで管理すべきみたいなのですが、基本のINPUTの部分だけをおさえておきます。
そこまで自信がないので、深くは信じないでください。(他のとみくらべてね)
# コメント行
* table名(filter nat mangle)のどれか、基本的には、filterを利用
:<チェーン名> <チェーンポリシー> [<パケットカウンタ>:<バイトカウンタ>]
COMMIT は設定反映といった感じ
オプション
-A で、追加。
-p プロトコル tcp,、udp、 icmp、 allが指定できる。
-m(–match) -pで暗黙のうちに指定されるが、-mで指定してもOK.-pとセットで使う。
–dport (-p tcp の場合のみ)送信先ポートまたはポート範囲の指定
-i インターフェイス eth0 eth1 とか
-s ipアドレス(送信元の指定)
-j [ACCEPT|DROP] 許可不許可 「-A INPUT -s-j ACCEPT 」で、そのIPアドレスから接続許可 “-m state” を指定した場合の拡張オプション
–state [NEW|"INVALID" |ESTABLISHED|RELATED] 接続状態
NEWは新規接続のパケット,”INVALID” は既存パケットと関係のないパケット,ESTABLISHEDは既存パケットと関係あるパケット,RELATEDは新規接続のパケットであるが、既存パケットに関係のあるパケットである。
これにより、いちいち応答パケットを許可する設定をしなくても済みます。
設定サンプル
#table名を記載
*filter
#とりえあず、INPUTは制限、OUTPUT FORWARDは、全てを許可
:INPUT DROP
:FORWARD ACCEPT
:OUTPUT ACCEPT
#下記は、ICMP用
#ICMPは送信したデータが届かなかったとき、また障害があったときに利用されるプロトコルです。
#0 = エコー応答Echo Reply(エコー応答)(pingなど)
#8 = エコー要求(pingなど)
-A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp –icmp-type 0 -j ACCEPT
# 接続済みは許可
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#接続許可IP
#local
-A INPUT -s 127.0.0.1 -j ACCEPT
#メンテナンスのIPとか
-A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT
#サービスベースでの接続 80番ポート
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# -mは指定しなくてもいける
-A INPUT -p tcp –dport 443 -j ACCEPT
# dnsはudpも指定
-A INPUT -p tcp –dport 53 -j ACCEPT
-A INPUT -p upd –dport 53 -j ACCEPT
# ntp はupdで
-A INPUT -p upd –dport 123 -j ACCEPT
#反映
COMMIT
という事で、必要部分だけ綺麗に書くと
*filter
:INPUT DROP
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp –dport 443 -j ACCEPT
-A INPUT -p tcp –dport 53 -j ACCEPT
-A INPUT -p upd –dport 53 -j ACCEPT
-A INPUT -p upd –dport 123 -j ACCEPT
COMMIT
-A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT
の部分は、もう少し制御して
-A INPUT -p tcp –dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT
とサービスまで絞り込んだ方がよりいいです。