/etc/init.d/firewall_server
#! /bin/bash
#--------------------------------------------------------------------------------------
clear_all() {
# Zezwalam na caly ruch
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
}
#--------------------------------------------------------------------------------------
set_forward() {
# Konfiguracja ruchu z sieci wewnetrznej przechodzacy przez ten router
#
# Zamykam caly ruch
iptables -P FORWARD DROP
iptables -F FORWARD
# Selektywne zezwolenie na laczenie sie polaczeniem wychodzacym
for ((i=2;i<7;i++)) do
iptables -A FORWARD -o eth1 -p tcp --dport 80 -s 192.168.1.${i} -d 254.254.254.5 -j REJECT
iptables -A FORWARD -i eth1 -p tcp --dport 80 -s 192.168.1.${i} -d 0.0.0.0 -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp --sport 80 -d 192.168.1.${i} -s 0.0.0.0 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 443 -s 192.168.1.${i} -d 0.0.0.0 -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp --sport 443 -d 192.168.1.${i} -s 0.0.0.0 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 25 -s 192.168.1.${i} -d 0.0.0.0 -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp --sport 25 -d 192.168.1.${i} -s 0.0.0.0 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 110 -s 192.168.1.${i} -d 0.0.0.0 -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp --sport 110 -d 192.168.1.${i} -s 0.0.0.0 -j ACCEPT
done
for ((i=10;i<21;i++)) do
iptables -A FORWARD -i eth1 -p tcp --dport 80 -s 192.168.2.${i} -d 0.0.0.0 -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp --sport 80 -d 192.168.2.${i} -s 0.0.0.0 -j ACCEPT
done
# Ustawiam czas zycia pakietow wychodzacych z sieci wewnetrznej na 128 przeskokow
iptables -t mangle -F FORWARD
iptables -t mangle -A FORWARD -j TTL --ttl-set 128
}
#--------------------------------------------------------------------------------------
set_nat() {
# Uruchamiam translacje adresow na interface eth1 docelowo eth0
# uzupelnieniem reguly jest konfiguracjia iproute dodajaca trasy w tablicy routingu
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 254.254.254.2
}
#--------------------------------------------------------------------------------------
case "$1" in
start|"")
set_forward
set_nat
exit 3
;;
stop)
clear_all
exit 3
;;
restart)
clear_all
set_forward
set_nat
exit 3
;;
*)
echo "Usage: firewall_server [start|stop|restart]" >&2
exit 3
;;
esac
: