All pastes #359183 Raw Edit

Mine

public text v1 · immutable
·published 2007-02-16 16:32 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.6
192.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"
# по умолчанию все в append
ACTION="A"

#поехали
case "$1" in
serv_stop)
service iptables stop
#Так надо
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
serv_start)
#Так надо
echo 1 > /proc/sys/net/ipv4/ip_forward
service iptables save
service iptables start
chkconfig iptables on
;;
all_drop)
$0 serv_stop
#Очистка всех правил
iptables -F -t nat
iptables -F -t filter

#Правила по умолчанию
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

$0 serv_start
;;
rule)
$0 serv_stop
echo "метод $ACTION сеть"
#  Секция входящего (по отношению к серверу) трафика
#Для этой машины (сервера)
iptables -$ACTION INPUT -j ACCEPT -i lo

for 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}/32
done
# собственно сама таблица NAT
#iptables -t nat -$ACTION POSTROUTING -o eth1 -j MASQUERADE
#iptables -t nat -$ACTION POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
iptables -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_PORT
iptables -$ACTION FORWARD -s  ${addr} -p tcp --dport $THIS_PORT -d $PROXY_IP -j ACCEPT
done
$0 serv_start
;;
rule_on)
ACTION="A"
$0 rule
;;
rule_off)
ACTION="D"
$0 rule
;;
show)
iptables -L -t nat
iptables -L -t filter
;;
*)
echo "m_rule (all_go | all_drop | rule_on | rule_off | show)"
exit;;
esac
exit