Бърз скрипт за рутиране на интернет

Това е моя скрипт, който използвам в момента за рутиране на интернет. Тъй като някои доставчици следят ttl-а на пакетите (включително и моя) използвам един специален ред, койго го увеличава с 1.

#!/bin/sh

# път до iptables
ipt=/sbin/iptables

# позволяваме мрежовото препращане
echo 1 > /proc/sys/net/ipv4/ip_forward

# изчистваме всички iptables правила
$ipt -F
$ipt -X
$ipt -F -t mangle
$ipt -X -t mangle
$ipt -F -t nat
$ipt -X -t nat

# редовете за рутиране
$ipt -A OUTPUT -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu
$ipt -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu
# следващия ред е този, за който споменах по-горе (за ttl-a)
$ipt -t mangle -A PREROUTING -i ppp0 -j TTL –ttl-inc 1
$ipt -t nat -I POSTROUTING -o ppp0 -j MASQUERADE

Скрипта ще рутира интернет на всички компютри зад сървъра. Заменете „-o ppp0″ с адаптера от който пристига интернета или с друг флаг и ip адрес.

За спиране на ping-а към въпросната машина

# ping (1 – пингването е забранено; 0 – пингването е позволено)
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

За препращане на портове

# Единичен порт
$ipt -t nat -A PREROUTING -p tcp -d 87.118.190.129 –dport 8080 -j DNAT –to 192.168.1.2:80
# Повече портове
$ipt -t nat -A PREROUTING -p tcp -d 87.118.190.129 –dport 5000:7000 -j DNAT –to 192.168.1.2