#!/bin/bash # 各種変数の設定 IPTABLES=/usr/local/sbin/iptables MODPROBE=/sbin/modprobe LOCAL_NET='192.168.129.201/24' CLIENT_A='192.168.129.1' # よく分からない $MODPROBE iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward $MODPROBE ip_conntrack_ftp $MODPROBE ip_nat_ftp $MODPROBE ipt_MASQUERADE $MODPROBE iptable_filter # フィルタの初期化 $IPTABLES -t filter -F FORWARD $IPTABLES -t nat -F POSTROUTING $IPTABLES -t nat -F PREROUTING $IPTABLES -F INPUT $IPTABLES -F FORWARD $IPTABLES -F OUTPUT # ユーザー定義フィルタの初期化と削除 $IPTABLES -F ppp-in $IPTABLES -X ppp-in # フィルタを削除したい時は下の行のコメントを外して実行する #exit # 基本ポリシーの設定 $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT ############################### フィルタの定義 ################################ #フィルタ作成 $IPTABLES -N ppp-in # 外側からsshで入りたい場合は下の行のコメントを外す #$IPTABLES -A ppp-in -p tcp --dport ssh -j ACCEPT # ルータ上で動いてるhttpサーバを外側に向けて公開したい場合は # 下の行のコメントを外す #$IPTABLES -A ppp-in -p tcp --dport 80 -j ACCEPT # ポートフォワード(NAT)の設定例 # # CLIENT_Aで立ち上がってるウェブサーバを外に公開する場合 #$IPTABLES -A ppp-in -p tcp --dport 80 -j ACCEPT #$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 80 -j DNAT \ # --to-destination $CLIENT_A # # CLIENT_AでAoE等のDirectPlayを用いたゲームをする場合 #$IPTABLES -A ppp-in -p tcp --dport 2300:2400 -j ACCEPT #$IPTABLES -A ppp-in -p udp --dport 2300:2400 -j ACCEPT #$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 2300:2400 -j DNAT \ # --to-destination $CLIENT_A #$IPTABLES -t nat -A PREROUTING -p udp -i ppp0 --dport 2300:2400 -j DNAT \ # --to-destination $CLIENT_A #$IPTABLES -A ppp-in -p tcp --dport 47624 -j ACCEPT #$IPTABLES -A ppp-in -p udp --dport 47624 -j ACCEPT #$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 47624 -j DNAT \ # --to-destination $CLIENT_A #$IPTABLES -t nat -A PREROUTING -p udp -i ppp0 --dport 47624 -j DNAT \ # --to-destination $CLIENT_A # 確立してるセッションのパケットと、その関連パケットは通す $IPTABLES -A ppp-in -m state --state ESTABLISHED,RELATED -j ACCEPT \ --modprobe=$MODPROBE # その他のパケットは叩き落す $IPTABLES -A ppp-in -j DROP ############################################################################## # ローカル側からデフォルトフリーの設定 $IPTABLES -A INPUT -s $LOCAL_NET -j ACCEPT $IPTABLES -A FORWARD -s $LOCAL_NET -j ACCEPT # IPマスカレーディング $IPTABLES -t nat -A POSTROUTING -s $LOCAL_NET -d ! $LOCAL_NET -j MASQUERADE # 作成したフィルタを当てる $IPTABLES -A INPUT -i ppp0 -j ppp-in $IPTABLES -A FORWARD -i ppp0 -j ppp-in $IPTABLES -L