Menu

Konfiguracja firewall dla NAT

/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
:
Napisz do mnie