vine-users ML アーカイブ



[vine-users:061813] Re: iptables を使ったルータの構築について

  • From: 長南洋一 <cyoichi@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:061813] Re: iptables を使ったルータの構築について
  • Date: Tue, 12 Aug 2003 10:25:25 +0900 (JST)
長南です。

開通おめでとうございます。

寺西さんのメールより [vine-users:061791]
>
> 「疑問」
> 
> eth0とeth1の設定を入れ替えたら動作したのか疑問です。dmesgから判断すると
> どちらのNICもも正しく認識されているようですが、eth1をLAN側にしたとき、
> eth1を通してローカル側との接続が出来ないのなら、これをWAN側に接続した
> なら、WAN側との接続も出来ないような気がしますが。(netcfg、iptableの
> 設定は何度も確認しましたし、間違えはなかったと思います)

dmesg でわかるのは、カードが認識されているかどうかだけです。そのカードが
実際にどう設定されていて、ルーティングがどうなっているかを(言い換えれば、
netcfg の設定がきちんと反映しているかどうかを)調べるのが、/sbin/ifconfig
や netstat -r。ですから、eth0/eth1 入れ換え前の両コマンドの結果があれば、
何かわかったかもしれません。それでもわからないかもしれませんけれど。

ともあれ、ルータが使えるようになったとのことなので、ちょっとお節介気味
ですが、最初のメールで気になったことを書いておきます。

まず、/sbin/chkconfig --list iptables を実行してみてください。

  $ /sbin/chkconfig --list iptables
  iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

上のように、2 3 4 5 あたりが on になっていたら、マシンの起動時に 
/etc/rc.d/init.d/iptables start が実行されるようになっています。
この場合、/etc/sysconfig/iptables が存在すれば、上記スクリプトの中で
iptables-restore が実行され、その設定が読み込まれます。

寺西さんがお作りになった rc.ip-masq は、その中で 
/sbin/iptables-save > /etc/sysconfig/iptables をやっています(メールの
原文では iptable になっていますが、スクリプトのコメントは iptables。
iptables でしょうね)。そこで、再起動時からは /etc/rc.d/init.d/iptables が
/etc/sysconfig/iptables に書き出された設定を自動的に再現することになります。

そんなわけで、rc.ip-masq のルール設定部分は一度実行するだけで充分です。
起動するたびに実行しなければならないのは、モジュールをロードしたり、
/proc/sys/net/ipv4/ip_forward に 1 を書き込んでいる部分だけです(後者は
/etc/sysctl.conf で net.ipv4.ip_forward = 1 になっていれば、必要ないはず)。

言い換えれば、rc.ip-masq が今のままの形になっていると、起動ごとに
iptables の設定が二度行われてしまうということです。別に害はないかも
しれませんが。

# 細かいことですが、この場合、rc.ip-masq の「clear rules」部分で 
# /sbin/iptables -F -t nat もやっておかないと、マスカレードの設定が
# 二重三重になってしまうのではないでしょうか。

起動時に /etc/rc.d/init.d/iptables を実行しないようになっている場合や、
/etc/sysconfig/iptable( s がない)に設定を保存している場合は、もちろん
別の話です。rc.ip-masq ですべてを設定してよいわけです。

# ただし、この場合は、/etc/rc.d/init.d/network でネットワークが
# 起動してから、rc.local 経由で iptables の設定が有効になるまで、
# ネットワークが無防備状態になるそうです。/etc/rc.d/init.d/iptables が
# 起動時に実行される場合、network よ先に実行されるようになっていることに
# 注目。

最後に、政さんにならって、役に立った参考文献を上げておきます(私も
iptables については修行中ですが)。

  /usr/doc/JF/packet-filtering-HOWTO.txt.gz
  「UNIX MAGAZINE」2002 年 10 月号、白崎博生「Linux 2.4 のnetfilter」。
  /etc/rc.d/init.d/iptables(参考文献かな)

-- 
長南洋一
cyoichi@xxxxxxxxxxxxxxx