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アドレスを定義」の箇所で該当するアドレスをコメントアウトしてください。