iptables設定

 

用語・概念

ルール 一致するパケットとターゲット、つまり、各パケットを判定した上で、処理方法を決定する基準
チェイン 順番にチェックされるルールの一覧
ポリシー 組み込みチェインにマッチするルールがない場合、デフォルトの処理としてACEPTまたはDROPが実行される。
テーブル 特定の目的で使用されるセット

 

テーブル

    使用されるチェイン
filter トラフィックをブロック INPUT,FORWARD,OUTPUT
nat 宛先またはパケットの見かけ上の送信元を変更 PREROUTING,OUTPUT,POSTROUTING
mangle   PREROUTING,OUTPUT

 

チェイン(フィルタテーブル)

INPUT 入力(受信)パケット
ファイアウォールを宛先としたパケットが処理される
OUTPUT 出力(送信)パケット
ファイヤフォール上のサービスから送信されるパケット
FORWARD フォワードするパケット
別のマシンから送信され、ファイアウォール宛ではなく、別の場所に転送されるパケットを処理
PREROUTING 受信時を変換するチェイン(NAT制御時使用)
POSTROUTING 送信時に変換するチェイン(NAT制御時使用)

 

 

パラメータ

-p プロトコル(tcp,udp,icmp,all)を指定
-s 送信元(source)IPを指定。ネットマスクとホスト名も指定可
-d 接続先(destination)IPを指定。ネットマスクとホスト名も指定可
-j パケットが条件にマッチしたときのターゲットを指定
-m matchnameマッチすると
–state 接続状態
–sport  
–dport  

 

ターゲット

ACCEPT パケットを許可
DROP パケットを破棄
REJECT パケットを拒否、ICMPエラーパケットを送信
LOG パケットに関する情報が、syslogに記録されチェインないの次のルールに進む

 

iptablesコマンド

オプション

-A チェインの最後にルールを追加
-D チェインからルールを削除
-P チェインのポリシーを指定したターゲットに設定
-F チェインから全てのルールを削除
-I ルール n番目のルールとしてチェインに挿入
番号を指定しないと最初のルールとして表示される

 

ルール(マッチング基準)の構文

-s xxx.xxx.xxx/xx 送信元のIPまたはネットワークを
-d 10.0.0.1 宛先のIPまたはネットワークを
-p udp –sport 68 –dport –67 UDP/TCPとポート
-p icmp –icmp-type echo-reply ICMPとタイプ
-i eth0 受信ネットワークインタフェース
-o eth0 送信ネットワークインタフェース
-m state –state ESTABLISHED,RELATED ステート追跡

 

ステート追跡とは

以前に発生した通信に関する情報を保存して、マッチングを決定する

接続が許可された後、タイムアウトが発生するか、接続切断されるか、または別のマッチングトラフィックが発生するまで(タイマーのリセット)、情報はステート追跡テーブルに保存される。これはカーネルメモリをより多く消費するが、ルールの設計を簡略化できる

ステート 定義
NEW パケットが新しい通信を開始し、ステート追跡テーブルにルールを追加
ESTABLISHED ステート追跡テーブル内のルールにマッチする全てのパケット
RELATED トラフィックに何らかの方法で関連するトラフィック
INVALID パケットを識別できない。通常これらのパケットは拒否または破棄される

 

 

 

iptables設定

image

 

iptablesIP許可設定

vi /etc/sysconfig/iptables
-A INPUT-FILTER -s <add ip address> -m state --state NEW -m tcp -p tcp -j ACCEPT
-A INPUT-FILTER -j REJECT --reject-with icmp-host-prohibited

 

この場合、REJECTの下に許可設定を書くと反映されない

 

現在のiptables許可制限リスト

/sbin/iptables -L –n

 

 

 

mysqlの許可設定をしてみた

どこでもmysqlがアクセスできた

bash-2.05$ telnet 157.7.198.205 3306
Trying 157.7.198.205...
Connected to 157.7.198.205.
Escape character is '^]'.
4
5.1.69肚6KUKXX0%!gXep'ln`y_PT

 

vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp -s 157.7.198.205 --dport 3306 -j ACCEPT

 

service iptables restart 

 

[root@negabaro log]# iptables –L
ACCEPT     tcp  --  v157-7-198-205.myvps.jp  anywhere            state NEW tcp dpt:mysql

アクセスできなくなった

bash-2.05$ telnet 157.7.198.205 3306
Trying 157.7.198.205...
quit

REJECT設定はいれてなかったが、アクセスできなくなったので書いてなくても最後にREJECTの設定が含まれているようだ。

 

iptablesログ

/etc/sysconfig/iptables

に設定した内容に従う「LOG設定」を行う必要がある

vi /etc/syslog.conf
kern.*                                                  /var/log/firewall.log      ==>
/etc/rc.d/init.d/syslog restart
tail -f /var/log/firewall.log

 

http://d.hatena.ne.jp/fat47/20120706/1341559968

 

 

参考ページ:

http://www.rapidsite.jp/support/manual/vps_s/e_7622.html

http://www.nina.jp/server/redhat/iptables/iptables.html

http://k.daum.net/qna/openknowledge/view.html?qid=0FVUh&category_id=QC&q=reject

http://www.keih.jp/server/ubuntu/iptables%E3%81%A7%E3%83%AD%E3%82%B0%E3%82%92%E5%8F%96%E3%82%8B/

http://enigma777.egloos.com/3279347

http://boanin.tistory.com/56

http://freekang.tistory.com/148

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です