#!/bin/sh # # 因為此 script 在真實的商業網站中測試﹐故所有真實 IP 均已刪除。 # 引用時請自行增加。 # /sbin/depmod -a /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc /sbin/modprobe ip_masq_autofw /sbin/modprobe ip_masq_cuseeme /sbin/modprobe ip_masq_portfw /sbin/modprobe ip_masq_quake /sbin/modprobe ip_masq_vdolive /sbin/modprobe ip_masq_user /sbin/modprobe ip_masq_mfw # HI="1024:65535" ALL="0.0.0.0/0" PRIV_NET="" LOCAL_HOME="127.0.0.1" OUTER_IF="eth1" OUTER_IP="" # INNER_IF="eth0" INNER_IP="" ipchains -F ipchains -X # ipchains -P input DENY ipchains -P output DENY ipchains -P forward DENY # ipchains -A input -i lo -j ACCEPT ipchains -A output -i lo -j ACCEPT ipchains -A input -i $INNER_IF -j ACCEPT ipchains -A output -i $INNER_IF -j ACCEPT # ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL telnet -t 0x01 0x10 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL www -t 0x01 0x10 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL ftp -t 0x01 0x10 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL https -t 0x01 0x10 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL ftp-data -t 0x01 0x08 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL nntp -t 0x01 0x02 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL pop-3 -t 0x01 0x02 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL imap -t 0x01 0x02 ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -d $ALL smtp -t 0x01 0x02 # ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -s $ALL ssh -t 0x01 0x10 ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -s $ALL ssh -t 0x01 0x10 ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF ! -y -d $ALL ssh -t 0x01 0x10 ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -d $ALL ssh -t 0x01 0x10 # ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF ! -y -s $ALL # ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -d $ALL domain ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -s $ALL domain # ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -s $ALL ftp-data # ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -s $ALL telnet # ipchains -A forward -j MASQ -s $PRIV_NET -d $ALL # ipchains -A input -p udp --dport $HI -j ACCEPT ipchains -A output -p udp --dport $HI -j ACCEPT ipchains -A forward -p udp --dport $HI -s $PRIV_NET -d $ALL -j MASQ EXT_WWW_IP="" EXT_WWW_IP1="" EXT_WWW_IP2="" EXT_WWW_IP3="" EXT_FTP_IP="" EXT_SMTP_IP="" EXT_SMTP_IP1="" EXT_POP_IP="" EXT_IMAP_IP="" INT_WWW_IP="" INT_WWW_IP1="" INT_WWW_IP2="" INT_WWW_IP3="" INT_FTP_IP="" INT_SMTP_IP="" INT_SMTP_IP1="" INT_POP_IP="" INT_IMAP_IP="" # ipmasqadm portfw -f # ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP 80 -R $INT_WWW_IP 80 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP 80 -R $INT_WWW_IP 80 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP 443 -R $INT_WWW_IP 443 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP 443 -R $INT_WWW_IP 443 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP1 80 -R $INT_WWW_IP1 80 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP1 80 -R $INT_WWW_IP1 80 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP1 443 -R $INT_WWW_IP1 443 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP1 443 -R $INT_WWW_IP1 443 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP2 80 -R $INT_WWW_IP2 80 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP2 80 -R $INT_WWW_IP2 80 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP2 443 -R $INT_WWW_IP2 443 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP2 443 -R $INT_WWW_IP2 443 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP3 80 -R $INT_WWW_IP3 80 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP3 80 -R $INT_WWW_IP3 80 ipmasqadm portfw -a -P tcp -L $EXT_WWW_IP3 443 -R $INT_WWW_IP3 443 ipmasqadm portfw -a -P udp -L $EXT_WWW_IP3 443 -R $INT_WWW_IP3 443 ipmasqadm portfw -a -P tcp -L $EXT_FTP_IP 20 -R $INT_FTP_IP 20 ipmasqadm portfw -a -P tcp -L $EXT_FTP_IP 21 -R $INT_FTP_IP 21 ipmasqadm portfw -a -P tcp -L $EXT_SMTP_IP 25 -R $INT_SMTP_IP 25 ipmasqadm portfw -a -P tcp -L $EXT_SMTP_IP1 25 -R $INT_SMTP_IP1 25 ipmasqadm portfw -a -P tcp -L $EXT_POP_IP 110 -R $INT_POP_IP 110 ipmasqadm portfw -a -P udp -L $EXT_POP_IP 110 -R $INT_POP_IP 110 ipmasqadm portfw -a -P tcp -L $EXT_IMAP_IP 143 -R $INT_IMAP_IP 143 ipmasqadm portfw -a -P udp -L $EXT_IMAP_IP 143 -R $INT_IMAP_IP 143 ipmasqadm portfw -a -P tcp -L $EXT_IMAP_IP 220 -R $INT_IMAP_IP 220 ipmasqadm portfw -a -P udp -L $EXT_IMAP_IP 220 -R $INT_IMAP_IP 220 # ipmasqadm autofw -A -r udp 6970 7170 -c tcp 7070 ipmasqadm autofw -A -r udp 6970 7170 -c tcp 7075 ipmasqadm autofw -A -r udp 22555 22555 ipmasqadm autofw -A -r udp 8000 8000 ipmasqadm autofw -A -r tcp 13223 13223 ipmasqadm autofw -A -r udp 21845 21845 -c tcp 21845 # ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 www -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 www -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 https -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 https -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 www -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 www -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 https -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 https -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 www -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 www -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 https -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 https -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 www -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 www -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 https -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 https -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_FTP_IP/32 ftp-data -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_FTP_IP/32 ftp -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_SMTP_IP/32 smtp -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_SMTP_IP1/32 smtp -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_POP_IP/32 pop-3 -d $ALL --dport $HI ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_POP_IP/32 pop-3 -d $ALL --dport $HI ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap2 -d $ALL ipchains -A input -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap2 -d $ALL ipchains -A input -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap3 -d $ALL # ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 www -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 www -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 https -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP/32 https -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 www -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 www -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 https -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP1/32 https -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 www -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 www -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 https -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP2/32 https -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 www -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 www -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 https -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_WWW_IP3/32 https -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_FTP_IP/32 ftp-data -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_FTP_IP/32 ftp -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_SMTP_IP/32 smtp -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_SMTP_IP1/32 smtp -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_POP_IP/32 pop-3 -d $ALL --dport $HI ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_POP_IP/32 pop-3 -d $ALL --dport $HI ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap2 -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap2 -d $ALL ipchains -A output -p TCP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap3 -d $ALL ipchains -A output -p UDP -j ACCEPT -i $OUTER_IF -b -s $EXT_IMAP_IP/32 imap3 -d $ALL # ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP/32 www -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP/32 www -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP/32 https -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP/32 https -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP1/32 www -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP1/32 www -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP1/32 https -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP1/32 https -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP2/32 www -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP2/32 www -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP2/32 https -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP2/32 https -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP3/32 www -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP3/32 www -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_WWW_IP3/32 https -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_WWW_IP3/32 https -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_FTP_IP/32 ftp-data -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_FTP_IP/32 ftp -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_SMTP_IP/32 smtp -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_SMTP_IP1/32 smtp -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_POP_IP/32 pop-3 -d $ALL --dport $HI ipchains -A forward -p UDP -j MASQ -s $INT_POP_IP/32 pop-3 -d $ALL --dport $HI ipchains -A forward -p TCP -j MASQ -s $INT_IMAP_IP/32 imap2 -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_IMAP_IP/32 imap2 -d $ALL ipchains -A forward -p TCP -j MASQ -s $INT_IMAP_IP/32 imap3 -d $ALL ipchains -A forward -p UDP -j MASQ -s $INT_IMAP_IP/32 imap3 -d $ALL # ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 23 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 23 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1100 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1100 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1101 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1101 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1102 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1102 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1103 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1103 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1104 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1104 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1105 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1105 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1106 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1106 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1107 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1107 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1108 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1108 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 1109 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 1109 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 53 -p tcp ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 53 -d $ALL -p tcp ! -y ipchains -A input -j ACCEPT -i $OUTER_IF -s $ALL -d $OUTER_IP/32 53 -p UDP ipchains -A output -j ACCEPT -i $OUTER_IF -s $OUTER_IP/32 53 -d $ALL -p UDP