iptables
iptablesのテーブルとチェーン
デフォルトテーブルはfilter
コマンドオプション -A <chain>
-A チェインルール追加
-P 指定チェインのポリシー(デフォルト操作)を指定したターゲットに設定
-L ルール表示
-I ルールナンバーを引数にとれる。ルールを途中に挿入できる。
-N ユーザ定義チェインを作成
-X ユーザ定義チェイン削除
-F テーブル初期化
パラメータ(rule 条件)
-j 条件にあった時のアクション指定
-p PROTOCOL:プロトコルを指定 tcp,udp,icmp
-s 送信元IPアドレス
- i パケットの入るインターフェース
-o パケットが出ていくインターフェース
-m マッチオプション 寄り詳細な条件指定ができる。
state
--state state パケットの状態指定 NEW,INVALID,ESTABLISHED,RELATED
NEW:新規接続パケット
INVALID:既存パケットに関係のないパケット
ESTABLISHED:確立済み接続のパケット
RELATED:新規接続パケット(既存パケットに関係あり)
limit --limit --limit-burst 指定回数分のアクセスを超えたらパケットを捨てる設定
hashlimit --hashlimit-burst 指定回数分のアクセスを超えたらパケットを捨てる設定
ipvs --ipvs
mac --mac-source マックアドレスの状態
アクション
ACCEPT 許可
DROP 破棄
MASQUERADE IPマスカレード
SNAT 送信元アドレス変換
DNAT 送信先アドレス変換
REJECT パケット拒否
ICMPメッセージ返信
REDIRECT 特定ポートにリダイレクト
examples
全てのパケットを落とすポリシー追加
code: example
ループバックアドレスは許可
code:example
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
httpの受信、送信の許可
httpの受信、送信の許可
code:example
ipables -A INPUT -i eth0 -p tcp --dport http -d 192.168.0.1 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport http -m state --state ESTABLISHED -j ACCEPT