Seuraavassa esimerkki kahden verkkokortin palomuurista ja NAT:ista. Verkokortit on määritelty niin, että eth0 on sisäverkkon puoli ja eth1 on ulkoverkon puoli. Sisäverkkoon tulee käyttöön 192.168.1.0/24 -osoiteavaruus.
#!/bin/bash # # # Palomuuri # # Ensin pyyhitään kaikki vanhat säännöt iptables --flush iptables -t nat --flush # # tehdään koneesta reititin echo 1 > /proc/sys/net/ipv4/ip_forward # # tehdään sääntö sisääntulevalle liikenteelle ja estetään se iptables -P INPUT DROP # tehdään sääntö ulosmenevälle liikenteelle ja sallitaan se iptables -P OUTPUT ACCEPT # tehdään sääntö edelleenohjattavalle liikenteelle ja # estetään se iptables -P FORWARD DROP # # tehdään NAT WAN-portista iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j \ MASQUERADE # # forwardoidaan etätyöpöytä sisäverkon koneeelle, jonka IP \ # päättyy 14:aan iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j \ DNAT --to 192.168.1.14:3389 # # # ********************************************** # * * # * TÄSTÄ ALKAA VARSINAISET PALOMUURISÄÄNNÖT * # * * # ********************************************** # ------------- # | lo loopback | # ------------- # # loopbackin päästö iptables -A INPUT -i lo -p all -j ACCEPT # # ---------- # | eth0 LAN | # ---------- # # kaikki liikenne päästetään sisään eth0:sta iptables -A INPUT -i eth0 -p all -j ACCEPT # LAN-porttiin päästetään kaikki muilta verkkokorteilta # edelleenohjattu liikenne iptables -A FORWARD -i eth0 -p all -j ACCEPT # # ---------- # | eth1 WAN | # ---------- # # SISÄÄNPÄÄSTÖ # ------------ # sallitaan muodostettuihin yhteyksiin kuuluvat (ESTABLISHED) # ja niihin liittyvät (RELATED) yhteydet: iptables -A INPUT -i eth1 -m state --state \ ESTABLISHED,RELATED -j ACCEPT # sallitaan pingi iptables -A INPUT -i eth1 -p icmp -j ACCEPT # sallitaaan SSH tietystä ip:stä iptables -A INPUT -i eth1 -p tcp --dport 22 -s 80.111.222.111 \ --syn -m state --state NEW -j ACCEPT # sallitaan HTTP kaikkialta iptables -A INPUT -i eth1 -p tcp --dport 80 --syn -m state \ --state NEW -j ACCEPT # # EDELLEENOHJAUS # -------------- # Sisäänpäin sallitaan vain jo muodostetut yhteydet # ja niihin liittyvät paketit: iptables -A FORWARD -i eth1 -m state --state \ RELATED,ESTABLISHED -j ACCEPT # # Etätyöpöydän edelleenohjausta varten on tehtävä oma sääntö iptables -A FORWARD -i eth1 -p tcp --dport 3389 --syn -m \ state --state NEW -j ACCEPT