パケットフィルタリング&IPマスカレードの設定(ipchainsを利用)
saturnは「LAN(PCMCIAカード)の設定」でローカルLAN内のマシンと、
「ADSLの設定(pppoe)」でインターネットとやりとりができるようになりました。
そこで、ローカルLAN内のマシンが saturn を経由して、インターネットへアクセスできるように、
IPマスカレードの設定を行います。
また、外部から変なアクセスができないよう、パケットフィルタリングも設定して、
セキュリティを向上させます。
2.4のカーネルを使っているので、本当は iptables を使うべきなのでしょうが、
使い慣れているので、最初は2.2の ipchains を使いました。
現在は、iptables に変更しましたので、
「パケットフィルタリング&IPマスカレードの設定(iptablesを利用)」
をご覧ください。
あと、ipchains を使うには、カーネルが ipchains をサポートしている必要があります。
→カーネルのコンパイル
必要なパッケージ
- ipchains
- +α(他にも必要なものがありますが、dselectを使えば必要なものは勝手に入れてくれるでしょう)
まずは手動で設定
まずはコマンドを打ち込んで、希望の設定をしていきます。
- とりあえず今までの設定を削除する
$ ipchains -F
- inputの設定
$ ipchains -P input ACCEPT <デフォルトの設定>
$ ipchains -A input -i eth0 -j ACCEPT <LANからは全て通す>
$ ipchains -A input -i ppp0 -p tcp -d 0/0 www -y -j ACCEPT <WWWの接続は通す>
$ ipchains -A input -i ppp0 -p tcp -d 0/0 ssh -y -j ACCEPT <sshの接続は通す>
$ ipchains -A input -i ppp0 -p tcp -y -j DENY <他の接続要求は無視する>
- outputの設定
$ ipchains -P output ACCEPT <デフォルトの設定>
$ ipchains -A output -i ppp0 -p tcp -d 0/0 137:139 -j DENY
<Windowsの変なパケットは外へ出さない>
$ ipchains -A output -i ppp0 -p udp -d 0/0 137:139 -j DENY
<Windowsの変なパケットは外へ出さない>
- forwardの設定(IPマスカレード)
$ echo 1 > /proc/sys/net/ipv4/ip_forward <カーネルの IP forward を有効にする>
$ ipchains -P forward DENY <デフォルトの設定>
$ ipchains -A forward -s 192.168.AAA.0/24 -d 0/0 -j MASQ <IPマスカレードの設定>
これで、外部からWWWとssh以外の接続要求のパケットは全て無視し、
ローカルLANからIPマスカレードで、インターネットへアクセスできるようになりました。
設定を保存する
ipchainsコマンドを打ち込んで、希望の設定ができたら、その設定を保存します。
$ /etc/init.d/ipchains save
これで、/etc/ipchains.save に設定が保存されます。
起動時に設定されるようにする
起動時に、希望の設定になるように
/etc/default/ipchains と /etc/network/options ファイルを修正します。
- /etc/default/ipchains の修正ヶ所
ENABLED="yes"
- /etc/network/options の修正ヶ所
ip_forward=yes
戻る