All pastes #359186 Raw Edit

Something

public shellscript v1 · immutable
·published 2007-02-16 16:33 UTC
rendered paste body
#!/bin/sh# настройка сетевого беспредела# eth0 - внутрення сеть eth1 - внешняя сеть (упыри)#заполняем нужные адресаexport lanlist="192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.5 192.168.0.6192.168.0.9 192.168.0.10 192.168.0.12 192.168.0.13 192.168.0.14 192.168.0.15 192.168.0.17 192.168.0.19 192.168.0.22 192.168.0.23 192.168.0.27 192.168.0.28 192.168.0.30 192.168.0.31 192.168.0.32 192.168.0.33 192.168.0.34 192.168.0.38 192.168.0.44 192.168.0.47 192.168.0.50 192.168.0.62 192.168.0.65 192.168.0.68 192.168.0.71 192.168.0.87 192.168.0.97"export inetlist="172.1.2.3 172.1.2.4"PROXY_IP="192.168.0.1"PROXY_PORT="8080"THIS_PORT="8081"# по умолчанию все в appendACTION="A"#поехалиcase "$1" inserv_stop)service iptables stop#Так надоecho 0 > /proc/sys/net/ipv4/ip_forward;;serv_start)#Так надоecho 1 > /proc/sys/net/ipv4/ip_forwardservice iptables saveservice iptables startchkconfig iptables on;;all_drop)$0 serv_stop#Очистка всех правилiptables -F -t natiptables -F -t filter#Правила по умолчаниюiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD DROP$0 serv_start;;rule)$0 serv_stopecho "метод $ACTION сеть"#  Секция входящего (по отношению к серверу) трафика#Для этой машины (сервера)iptables -$ACTION INPUT -j ACCEPT -i lofor addr in ${lanlist}do#Для клиентов#Секция входящего (по отношению к серверу) трафика#Клиентыiptables -$ACTION INPUT -j ACCEPT -p all -i eth0 -s ${addr}/32#  Секция перенаправления трафика#Клиенты#входiptables -$ACTION FORWARD -j ACCEPT -s ${addr}/32#выходiptables -$ACTION FORWARD -j ACCEPT -d ${addr}/32#  Секция исходящего (по отношению к серверу) трафика# Несмотря на то, что по умолчанию OUTPUT ACCEPT, прописываем всех явно#Клиентыiptables -$ACTION OUTPUT -j ACCEPT -p all -d ${addr}/32done# собственно сама таблица NAT#iptables -t nat -$ACTION POSTROUTING -o eth1 -j MASQUERADE#iptables -t nat -$ACTION POSTROUTING -s 192.168.0.0/24 -j MASQUERADEiptables -t nat -$ACTION POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 192.168.1.12#iptables -t nat -$ACTION POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE#$0 serv_start#;;#inet_rule)#$0 serv_stop#Заделываем проброс клиентво извне на проксиecho "метод $ACTION клиенты инета"for addr in ${inetlist}do#Заделываем проброс клиентво извне на проксиiptables -t nat -$ACTION PREROUTING -s  ${addr} -p tcp --dport $THIS_PORT -j DNAT --to $PROXY_IP:$PROXY_PORTiptables -$ACTION FORWARD -s  ${addr} -p tcp --dport $THIS_PORT -d $PROXY_IP -j ACCEPTdone$0 serv_start;;rule_on)ACTION="A"$0 rule;;rule_off)ACTION="D"$0 rule;;show)iptables -L -t natiptables -L -t filter;;*)echo "m_rule (all_go | all_drop | rule_on | rule_off | show)"exit;;esacexit