目次
1. ルールファイルの書き方
前回紹介したiptables-persistentのルールファイルの書き方について以下にまとめる
初期のファイル内容は以下となる
*filter・・・・・・・・テーブル
:INPUT ACCEPT [9071:1398634]・・・・・・・・INPUTチェイン
:FORWARD ACCEPT [0:0]・・・・・・・・FORWARDチェイン
:OUTPUT ACCEPT [8891:1364817]・・・・・・・・OUTPUTチェイン
COMMIT・・・・・・・・上記の命令を確定させる。
※チェインをグループ化したものをテーブルと呼びます。
1-1.テーブルに定義できるキーワード
テーブルには以下の3つが用意されている。
- filter -> パケットのフィルタリングに使用
- nat -> アドレス変換に使用
- mangle -> パケットをNAT以外の目的で置き換えるときに使用
1-2.チェインの種類
パケットを検索する条件をまとめたものをチェインという。
チェインには下記のものが用意されている。
- INPUT入力(受信) -> パケットのチェイン
- OUTPUT出力(送信) -> パケットのチェイン
- FORWARD -> 転送パケットのチェイン
- PREROUTING -> 受信時に変換するチェイン
- POSTROUTING -> 送信時に変換するチェイン
1-3.テーブルごとによるチェインの制限
テーブルによって、使用できるチェインに制限があります。
テーブル名 filter nat mangle
利用できるチェイン FORWARD PREROUTING PREROUTING
INPUT POSTROUTING OUTPUT
OUTPUT OUTPUT
1-4.ルールファイルの構文
制御する定義を記載する場合は以下のように定義します。
[コマンド] [チェイン] [条件] [ターゲット]
1-5.定義のサンプル
*filter
# ループバックは許可する。
# ループバック以外の127.0.0.0/8への接続は拒否する。
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# 確立済の外部から内部への接続を許可する
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 内部から外部への接続はすべて許可する
-A OUTPUT -j ACCEPT
# 外部から内部へのHTTP(80)とHTTPS(443)の接続を許可する
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
COMMIT
以上