iptables設定
★natテーブル
外部的には1つのグローバルIPアドレスで、内部ネットワークから複数のローカルコンピュータがアクセスできるようにする機能をIPマスカレードと呼ぶ。上流に対して、あたかも一台で通信しているように見せかける。
内部から外部宛に出した要求に対する応答は全て通過させるが、それ以外の外部からのアクセスを遮断することができ、セキュリティを高めることができる。
iptablesのnatテーブルを用いてそれら設定を行なってゆく。
IPマスカレードを行なうマシンに二枚のNICを挿し、外部NICをeth0、内部NICをeth1とする。
(こういった何枚かNICを挿す場合、外部のものを数字の小さなものにするのが通例)
■コマンド
コマンドの基本構造
# /sbin/iptables <オプション> <チェーン> (<ルール> <ルール指定>) (-j) <ターゲット> |
オプション
-A 設定の追加
-D 設定の削除
-P デフォルトポリシーの設定
-L 現在の設定を表示する
-F チェーンからポリシー以外の設定を削除
-I 新しいルールを特定の位置に挿入
チェーン
POSTROUTING 送信元を変換
PREROUTING 宛先を変換
OUTPUT 出力パケット
ルール
-s 送信元IPアドレス
-d 宛先IPアドレス
--dport 受け入れるポート番号
-p プロトコル(tcp,udp,icmpなど)
-i 受信インターフェース
-o 送信インターフェース
ターゲット(-j)
ACCEPT 許可
DROP 破棄・不許可
REJECT 拒否
MASZUERADE IPマスカレード
DNAT 終点アドレスが固定されるNAT
■IPマスカレードの設定
NATテーブルは明示的に指定してやらなければならない。例えばNATテーブルを見るには次のコマンドを使う。
# /sbin/iptables –t nat –nL |
NATテーブルのチェーンは
・ POSTROUTING(送信元を変換)
・ PREROUTING(宛先を変換)
・ OUTPUT(送信を制御)
の2種類である。
まずは、内部アドレスである10.1.0.0/24のセグメントを送信元(-s)とするIPアドレスをマスカレードさせる。
# /sbin/iptables –t nat –A POSTROUTING –s 10.1.0.0/24 –j MASQUERADE |
POSTROUTINGチェーンを使用しているのが分かるだろう。MASQUERADEオプションを付け、これらのセグメントをiptablesの機能でIPマスカレードさせている。
次に、外部から来るパケットを遮断しなくてはならない。それには次のコマンドを使う。
# /sbin/iptables –t nat –A PREROUTING –i eth0 –j DROP |
今度は宛先を変換するためPREROUTINGを使用している。
# /etc/init.d/iptables save |
これでiptabelsが保存される。(/etc/sysconfig/iptablesに保存)
なお、設定を消去する時はチェーン一つずつに対し、-Fを使って
# /sbin/iptables -t nat -F
POSTROUTING |
のように初期化する。