Filtrowanie ruchu sieciowego w Linux

    Istotne pliki w /proc:
    • /proc/sys/net/ipv4/*
    • /proc/sys/net/ipv4/conf/all
    • /proc/sys/net/ipv4/conf/default
    • /proc/sys/net/ipv4/conf/eth0
    Ustawienie przekazywania pakietów:
    root@asl24:~# cat /proc/sys/net/ipv4/ip_forward
    0
    root@asl24:~# echo "1" > /proc/sys/net/ipv4/ip_forward
    root@asl24:~# cat /proc/sys/net/ipv4/ip_forward
    1
    root@asl24:~#
    
    Wyczyszczenie reguł:
    iptables --flush
    
    Ustawienie domyślnej polityki dla wszystkich interfejsów:
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    
    Zezwolenie na ruch na interfejsie lokalnym:
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    
    Łańcuch wejściowy, zezwolenie na ruch przychodzący:
    # wejście z adresu 150.254.10.20
    iptables -A INPUT -i eth0 -p tcp -s 150.254.10.20/32 -j ACCEPT
    # wejście z sieci 150.254.78.0-150.254.79.255 na port 22
    iptables -A INPUT -i eth0 -p tcp -s 150.254.78.0/23 --dport 22 -j ACCEPT
    
    Zezwolenie na ruch wychodzący:
    iptables -A OUTPUT -o eth0 -p tcp -d 0.0.0.0/0 --dport 80 -j ACCEPT
    
    Dodanie regułek, które pozwolą na przejście pakietów powrotnych do reguł, które wpuściliśmy:
    iptables -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp -d 0.0.0.0/0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    
    Ustawienie translacji adresów:
    iptables -t nat -A PREROUTING -d 150.254.78.158 -j DNAT --to-destination 192.168.200.1
    iptables -t nat -A POSTROUTING -s 192.168.200.1 -j SNAT --to-destination 150.254.78.158