google 等の検索エンジンからこのページへ来た方へ
お手数ですがトップページの
注意書きをお読み下さい。
IP アドレス、ドメイン名等は全て仮のものです。
# cd /usr/src/sys/i386/conf # vi SERVER01ここで次の 3 行を加えて下さい。
options IPFIREWALL # IPFW を有効にする options IPFIREWALL_VERBOSE # IPFW のログを有効にする options IPDIVERT # divert ソケットを有効にする編集が終わったらカーネルを再構築します。
# rm -rf ../../compile/SERVER01 # config SERVER01 # cd ../../compile/SERVER01 # make depend && make # make installこれが全て正常に終了したらリブートします。
gateway_enable="YES" # 複数インターフェース間でのパケット転送 natd_enable="YES" # natd を起動 natd_interface="if1" # 変換先アドレスを持つインターフェース natd_flags="" # natd 起動時のオプション firewall_enable="YES" # IPFW を有効にする firewall_script="/etc/firewall.local" # IPFW のルール設定用スクリプト firewall_logging="YES" # IPFW のログ機能を有効にするIPFW のルール設定用スクリプト /etc/firewall.local を作ります。
# IPFW のコマンド fwcmd="/sbin/ipfw -q" # 外側インターフェースの IP アドレス、ネットワークアドレス oif="if0" oip="1.2.3.x" onet="1.2.3.0" omask="255.255.255.0" # 内側インターフェースの IP アドレス、ネットワークアドレス iif="if1" iip="192.168.0.1" inet="192.168.0.0" imask="255.255.255.0" # 全てのルールのクリア ${fwcmd} -f flush # アドレス詐称パケットの破棄 ${fwcmd} add deny ip from ${inet}:${imask} to any in via ${oif} ${fwcmd} add deny ip from ${onet}:${omask} to any in via ${iif} # Net-BIOS の破棄 ${fwcmd} add deny udp from any to any 137-139 ${fwcmd} add deny udp from any 137-139 to any # プライベートアドレスやマルチキャストの破棄 (外→内) ${fwcmd} add deny ip from any to 10.0.0.0/8 via ${oif} ${fwcmd} add deny ip from any to 172.16.0.0/12 via ${oif} ${fwcmd} add deny ip from any to 192.168.0.0/16 via ${oif} ${fwcmd} add deny ip from any to 0.0.0.0/8 via ${oif} ${fwcmd} add deny ip from any to 169.254.0.0/16 via ${oif} ${fwcmd} add deny ip from any to 192.0.2.0/24 via ${oif} ${fwcmd} add deny ip from any to 224.0.0.0/4 via ${oif} ${fwcmd} add deny ip from any to 240.0.0.0/4 via ${oif} # NAT ${fwcmd} add divert natd all from any to any via ${oif} # プライベートアドレスやマルチキャストの破棄 (内→外) ${fwcmd} add deny ip from 10.0.0.0/8 to any via ${oif} ${fwcmd} add deny ip from 172.16.0.0/12 to any via ${oif} ${fwcmd} add deny ip from 192.168.0.0/16 to any via ${oif} ${fwcmd} add deny ip from 0.0.0.0/8 to any via ${oif} ${fwcmd} add deny ip from 169.254.0.0/16 to any via ${oif} ${fwcmd} add deny ip from 192.0.2.0/24 to any via ${oif} ${fwcmd} add deny ip from 224.0.0.0/4 to any via ${oif} ${fwcmd} add deny ip from 240.0.0.0/4 to any via ${oif} # ident パケットの破棄 ${fwcmd} add reset tcp from any to any 113 # ループバックの設定 ${fwcmd} add allow ip from any to any via lo0 ${fwcmd} add deny ip from any to 127.0.0.0/8 # 内側から外側への接続の許可 ${fwcmd} add allow tcp from any to any established ${fwcmd} add allow tcp from ${inet}:${inet} to any setup ${fwcmd} add allow tcp from ${oip} to any via ${oif} setup ${fwcmd} add allow udp from ${inet}:${inet} to any keep-state ${fwcmd} add allow udp from ${oip} to any via ${oif} keep-state ${fwcmd} add allow ip from any to any frag # 外側から WWW サーバへの接続の許可 ${fwcmd} add allow tcp from any to ${oip} 80 setup # 内→外へ通常の (Passive モード以外) の FTP を許可 # 20 番ポートへのコネクションはサーバ側から張る ${fwcmd} add allow tcp from any 20 to ${oip} setup # 外側から Mail サーバ (SMTP, POP) への接続を許可 ${fwcmd} add allow tcp from any to ${oip} 25 in via ${oif} setup ${fwcmd} add allow tcp from any to ${oip} 110 in via ${oif} setup # DNS サーバへの接続を許可 ${fwcmd} add allow tcp from any to ${oip} 53 via ${oif} setup ${fwcmd} add allow udp from any to ${oip} 53 via ${oif} # 動的ルール集合に対するパケットのチェック ${fwcmd} add check-state # 内側から外側への ping とその応答の許可 ${fwcmd} add allow icmp from any to any via ${iif} ${fwcmd} add allow icmp from any to any out via ${oif} icmptype 8 ${fwcmd} add allow icmp from any to any in via ${oif} icmptype 0 # 上記以外のパケットは破棄し、ログを取る ${fwcmd} add deny log ip from any to any # カウンタのリセット ${fwcmd} zero