+ + IP マスカレードの設定 + +


++ Contents ++

[5.1] /etc/network/option の編集
[5.2] /etc/hosts の編集
[5.3] /etc/network/interfaces の編集
[5.4] ipchains 解説



[5.1] /etc/network/option の編集


ip_forward=no

となっている部分を

ip_forward=yes

に書き換える。


[5.2] /etc/hosts の編集

内部ネットワークでのDNSは、/etc/hosts ファイルの設定に よって決められている。

/etc/hosts ファイルに

192.168.10.1 ����postel.ep.sci.hokudai.ac.jp ���� postel

と書き込み、IPアドレスとホスト名の対応を書いておく。

[5.3] /etc/network/interfaces の設定

もともと書いてあるものの下に以下のものを加える。

iface eth1 inet static
address 192.168.0.1 netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
geteway 133.87.45.1

up ipchains -P forward DENY
up ipchains -A forward -s 192.168.10.0/24 -j MASQ
up ipchains -M -S 21600 0 0
up /sbin/depmod -a
up /sbin/modprobe ip_masq_ftp

「gateway 133.87.45.1 」 にはルータ(この場合は postel )のゲートウェイアドレスとおなじものを 設定する。


[5.4] ipchains 解説

ipchains は、ファイヤーウォールを細かく設定していくコマンドである。

[5.4.1] 設定カテゴリ

まず、ipchains の設定チェインは、以下の3つにわけられる、

inputはいってくるパケットに対するチェイン
outputでていくパケットに対するチェイン
forwardルーティングするパケットに対するチェイン
各チェインのデフォルトは、ACCEPT(すなわち、すべて許可)となっているので、これに規制をかけてファイヤーウォールを構築していく。今回、postel はルーターであるため、ファイヤーフォールの設定は、 forward のみ行う。

[5.4.2] ターゲット

ipchains でのターゲットは以下の通りである。
ACCEPT通信を許可
DENY通信を不許可(送信元へ不許可を伝えない)
REJECT通信を不許可(送信元へ不許可を伝える)
MASQあたかもそのPCから発信されたかのようにマスカーレードされる。受信時も自動的にマスカーレードを外される。(input、outputでは使用不可)
REDIRETリモートホスト宛へ送信されたパケットもローカルのソケットへ向ける。(output、forwardでは使用不可)

[5.4.3] 書式

ipchains での書式は次のようになる
ipchains -A(--append) chain rule [option]
 チェインの最後尾にルールを追加する
ipchains -D(--delete) chain rule(ruleNo.) [option]
 ルールを削除する
ipchains -R(--replace) chain ruleNo. rule [option]
 ルールを置き換える
ipchains -I(--insert) chain ruleNo. rule [option]
 ルール番号を指定してルールを追加する
ipchains -L(--list) chain [option]
 ルール一覧を表示する
ipchains -F(--flush) chain [option]
 ルールをすべて消去する
ipchains -Z(--zero) chain [opition]
 パケットカウンタ、バイトカウンタを0に初期化する
ipchains -N(--new-chain) chain [option]
 新たにチェインを定義する
ipchains -x(--delete-chain) chain [option]
 ユーザーが定義チェインんを削除する。
ipchains -P(--policy) target
 ポリシーを指定したターゲットに設定する
ipchains -M(--masquerading) -L [option]
 マスカレードされている接続を表示する
ipchains -M(--masquerading) -S(--set tcp tcpfin udp) [option]
 マスカレードでのタイムアウト時間(秒)を設定する。Oを入れると変更しない
ipchains -C(--check) chain rule [option]
 与えられたパケットを照合する
ipchains -h(--help)
 コマンド書式の説明を表示する
ipchains -V(--version)
 ipchains のバージョン番号を表示する

[5.4.4] ルール

通信のルールは次のように定める。

-s "発信元" -d "発信先" -j target

発信元、発信先は、以下のように指定する

IPaddress[/mask] [port[:port]] (ex.192.168.0.1/24 80:80)

ただし、各パラメーターの前に"!"をつけるとそれ以外のものを指定したことになる。また、すべてのIP アドレスやポートを指定する場合は、そのパラメーターを省略して良い。


[5.4.5] 今回の設定は?

ということで、やっと今回の設定。設定時に書いたのは以下の三行

up ipchains -P forward DENY
up ipchains -A forward -s 192.168.10.0/24 -j MASQ
up ipchains -M -S 21600 0 0

まず、一行目。

up ipchains -P forward DENY

これは、-P forward でルーティングするときのポリシーを決めている。基本的にipchainsを用いてファイヤーウォールの細かい設定を行う場合は、ポリシーは DENY(通信を不許可) である。

デフォルトの設定ではすべて ACCEPT となっているが、その状態から使わない通信を不許可にしていく作業はミスを誘いやすい。最初にDENYで壁を作り、そこに許可していい通信のみの穴をあけるのである。


次に、二行目。

up ipchains -A forward -s 192.168.10.0/24 -j MASQ

これは、-A forward で、ルーティングを許可する通信を記述してある。

どのような通信を許可しているのかというと、-s 192.168.10.0/24 -j MASQ より、"192.168.10.0/24 というIPアドレスから、すべてのIPアドレスへの通信をマスカレードする"ことである。

また、ポート番号は省略されているので、すべてのポートの通信を許可していることになる。


最後に、三行目。

up ipchains -M -S 21600 0 0

これは、-M -S で、最後に通信してから何秒後に通信を接続するかが記してある。

これらの数字は前から、TCP接続, 終了通知(FINパケット)を受けたTCP接続, UDP接続 で、デフォルトでは15分, 2分, 5分となっている。TCP接続の15分では短いので、ここでは6時間にのばしている。


<< Cap.4 || UP || Cap.6 >>
last up : 2002/05/27 (C.Mitsuda)