さっしーブログ

埼玉県在住のシステムエンジニアです。基本的には技術的な内容を中心に発信していきます。

iptables-persistentのルールファイル(rule.v4、rule.v6)書き方まとめ

目次

 

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
 
 
以上