#!/bin/sh EXTERNAL_INTERFACE="eth3" LOOPBACK_INTERFACE="lo" IPADDR="91.170.xx.xx" ANYWHERE="any/0" LOOPBACK="127.0.0.0/8" CLASS_0="192.168.0.0/24"; CLASS_ALL="192.168.0.0/16"; BROADCAST_SRC="0.0.0.0" BROADCAST_DEST="255.255.255.255" PRIVPORTS="0:1023" UNPRIVPORTS="1024:65535" ALLPORTS="0:65535" PASSIVPORTS="15000:20000" XWINDOW_PORTS="6000:6063" SOCKS_PORTS="1080" NETBIOSUDP_PORTS="137:138" CS_SERVER_PORT="27015:27018" # отключить перенаправление IP echo 0 > /proc/sys/net/ipv4/ip_forward # Сбрасываем цепочки правил iptables -F iptables -F -t nat iptables -t mangle -F iptables -F FORWARD # Устанавливаем политики по умолчанию: запрет входящих запросов и разрешение исходящих iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #разрешение неограниченного через LOOPBACK iptables -A INPUT -i $LOOPBACK_INTERFACE -j ACCEPT iptables -A OUTPUT -o $LOOPBACK_INTERFACE -j ACCEPT #запрещаем фрагменты пакетов iptables -A INPUT -f -i $EXTERNAL_INTERFACE -j DROP iptables -A INPUT -f -i $EXTERNAL_INTERFACE2 -j DROP #разрешим необходимые пакеты для нормальной работы ICMP iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type 4 -s $ANYWHERE -d $IPADDR -j ACCEPT iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type 12 -s $ANYWHERE -d $IPADDR -j ACCEPT iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type 3 -s $ANYWHERE -d $IPADDR -j ACCEPT iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type 11 -s $ANYWHERE -d $IPADDR -j ACCEPT iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type 0 -s $ANYWHERE -d $IPADDR -j ACCEPT #ping iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type 8 -s $ANYWHERE -d $IPADDR -j ACCEPT #Разрешаем наш proxy порт iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp -s $ANYWHERE --source-port $UNPRIVPORTS -d $IPADDR --destination-port 5623 -j ACCEPT iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp -s $ANYWHERE --source-port $UNPRIVPORTS -d $IPADDR --destination-port 5623 -j ACCEPT #Разрешаем 80 порт iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp -s $ANYWHERE --source-port $UNPRIVPORTS -d $IPADDR --destination-port 80 -j ACCEPT # Разрешаем принимать ответы на запросы iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #разрешаем взаимодействие в локальной сети, если упадет NETAMS #это правило для того чтобы если netams не запустится или упадет, # то мы будем иметь удаленный доступ на эту машину iptables -A FORWARD -p all -s $CLASS_0 -d $CLASS_ALL -j ACCEPT # Разрешаем трафик со стороны локальной сети и отсылаем его в Netams iptables -A FORWARD -p all -s $CLASS_0 -j QUEUE iptables -A FORWARD -p all -d $CLASS_0 -j QUEUE #Разрешаем обращение к нашему LAN0 из локальных сетей 0 и 3 10 iptables -A INPUT -s $CLASS_0 -i eth0 -j ACCEPT #проброс портов для работы MLDonkey на 192.168.0.17 для всех iptables -t nat -A PREROUTING -p tcp -d $IPADDR --destination-port 6881 -j DNAT --to-destination 192.168.0.17:6881 iptables -t nat -A PREROUTING -p tcp -d $IPADDR --destination-port 6882 -j DNAT --to-destination 192.168.0.17:6882 #Работа NAT для одного внешнего интерфейса iptables -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE -s $CLASS_0 -j SNAT --to-source $IPADDR # включить перенаправление IP echo 1 > /proc/sys/net/ipv4/ip_forward