rpmfind.netからダウンロードしてきた最新版のrpmファイルをインストールします。
我が家のサーバのipchainsの設定です。
例えば、ファイル名をipchains.shとして適切な所有者に実行権を与え、/tmpの下に保存したとします。実行するにはその所有者(ここではrootとします)で、
ただし、再起動してしまうと設定情報が消えてしまいますので、
外部ネットワークのインターフェースにに割り当てられたIPアドレスがプライベートアドレスなら、「外部インターフェイスで破棄するIPアドレスを定義」の箇所で該当するアドレスをコメントアウトしてください。
# rpm -ivh ipchains-1.3.9-5.i386.rpmLinux IPCHAINS-HOWTO、Linux IP Masquerade HOWTOを参照するのもいいでしょう。
我が家のサーバのipchainsの設定です。
#!/bin/sh
###############################################################################
## 環境設定
##
## iptablesのパス
IPCHAINS="/sbin/ipchains"
##
## 内部ネットワークのインターフェイス
INT_IF="eth0"
##
## 外部ネットワークのインターフェイス
EXT_IF="eth1"
##
## 内部ネットワークのIPアドレス
INT_NET="192.168.0.0/24"
###############################################################################
## モジュールの組み込み
##
# /sbin/modprobe ip_masq_cuseeme
# /sbin/modprobe ip_masq_ftp
# /sbin/modprobe ip_masq_irc
# /sbin/modprobe ip_masq_quake
# /sbin/modprobe ip_masq_raudio
# /sbin/modprobe ip_masq_vdolive
###############################################################################
## チェーンの初期化
$IPCHAINS -F
###############################################################################
## デフォルトポリシーの定義
$IPCHAINS -P input DENY
$IPCHAINS -P output ACCEPT
$IPCHAINS -P forward DENY
###############################################################################
## ローカルループバックからのパケットはすべて受け入れる
$IPCHAINS -A input -i lo -j ACCEPT
##
## 内部ネットワークからのパケットを受け入れる
$IPCHAINS -A input -i $INT_IF -s $INT_NET -j ACCEPT
##
## 外部ネットワークからユーザーポートへのパケットを受け入れる(TCPの接続要求を除く)
$IPCHAINS -A input -i $EXT_IF -p tcp ! --syn --dport 1024: -j ACCEPT
$IPCHAINS -A input -i $EXT_IF -p udp --dport 1024: -j ACCEPT
##
## ICMPのパケットは受け入れる
$IPCHAINS -A input -p icmp -j ACCEPT
###############################################################################
## 外部インターフェイスで破棄するIPアドレスを定義
## 内部ネットワークのIPアドレスを騙るパケットを破棄
$IPCHAINS -I input -i $EXT_IF -s $INT_NET -j DENY
##
## ループバックアドレス、プライベートアドレスからのパケットを破棄
$IPCHAINS -I input -i $EXT_IF -s 127.0.0.0/8 -j DENY
$IPCHAINS -I output -i $EXT_IF -s 127.0.0.0/8 -j DENY
$IPCHAINS -I input -i $EXT_IF -s 10.0.0.0/8 -j DENY
$IPCHAINS -I output -i $EXT_IF -s 10.0.0.0/8 -j DENY
$IPCHAINS -I input -i $EXT_IF -s 172.16.0.0/12 -j DENY
$IPCHAINS -I output -i $EXT_IF -s 172.16.0.0/12 -j DENY
$IPCHAINS -I input -i $EXT_IF -s 192.168.0.0/16 -j DENY
$IPCHAINS -I output -i $EXT_IF -s 192.168.0.0/16 -j DENY
##
## ループバックアドレス、プライベートアドレス宛のパケットを破棄
$IPCHAINS -I input -i $EXT_IF -d 127.0.0.0/8 -j DENY
$IPCHAINS -I output -i $EXT_IF -d 127.0.0.0/8 -j DENY
$IPCHAINS -I input -i $EXT_IF -d 10.0.0.0/8 -j DENY
$IPCHAINS -I output -i $EXT_IF -d 10.0.0.0/8 -j DENY
$IPCHAINS -I input -i $EXT_IF -d 172.16.0.0/12 -j DENY
$IPCHAINS -I output -i $EXT_IF -d 172.16.0.0/12 -j DENY
$IPCHAINS -I input -i $EXT_IF -d 192.168.0.0/16 -j DENY
$IPCHAINS -I output -i $EXT_IF -d 192.168.0.0/16 -j DENY
##
## Windowsネットワーク(NetBIOS over TCP/IP)の送信パケットを破棄
$IPCHAINS -A output -i $EXT_IF -p tcp --dport 137:139 -j DENY
$IPCHAINS -A output -i $EXT_IF -p udp --dport 137:139 -j DENY
$IPCHAINS -A output -i $EXT_IF -p tcp --dport 445 -j DENY
$IPCHAINS -A output -i $EXT_IF -p udp --dport 445 -j DENY
###############################################################################
## 接続を受け入れるサービスを定義(FTP、SSH、SMTP、DNS、WWW、POP3、NTPを公開する例)
# FTP
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 21 -j ACCEPT
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 20 -j ACCEPT
# SSH
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 513:1023 --dport 22 -j ACCEPT
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 22 -j ACCEPT
# SMTP
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 25 -j ACCEPT
# DNS
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 53 -j ACCEPT
$IPCHAINS -A input -i $EXT_IF -p udp --sport 1024: --dport 53 -j ACCEPT
$IPCHAINS -A input -i $EXT_IF -p udp --sport 53 --dport 53 -j ACCEPT
# WWW
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 80 -j ACCEPT
# POP3
$IPCHAINS -A input -i $EXT_IF -p tcp --sport 1024: --dport 110 -j ACCEPT
# NTP
$IPCHAINS -A input -i $EXT_IF -p udp --sport 123: --dport 123 -j ACCEPT
###############################################################################
###############################################################################
## IPマスカレードの設定
$IPCHAINS -A forward -i $EXT_IF -s $INT_NET -j MASQ
$IPCHAINS -A forward -j REJECT
## IP転送を有効にする
echo 1 > /proc/sys/net/ipv4/ip_forward
丸ごとカット&ペーストでファイルを作成してください。
例えば、ファイル名をipchains.shとして適切な所有者に実行権を与え、/tmpの下に保存したとします。実行するにはその所有者(ここではrootとします)で、
# /tmp/ipchains.shとすれば実行できます。
ただし、再起動してしまうと設定情報が消えてしまいますので、
# /etc/rc.d/init.d/ipchains saveで、データを保存してください。
外部ネットワークのインターフェースにに割り当てられたIPアドレスがプライベートアドレスなら、「外部インターフェイスで破棄するIPアドレスを定義」の箇所で該当するアドレスをコメントアウトしてください。