Kasper <student@tecballerup.dk> wrote:
>I mit iptables script har jeg brugt denne linie for at lukke for TCP
>pakker : /sbin/iptables -A INPUT -p tcp --syn -j DROP
Formaalet med reglen er at sikre sig, at man kun modtager pakker,
der er svar paa trafik, man selv har startet.
Det er fint nok, men at goere det ved at checke paa syn er kun en
noedloesning, som man foer i tiden under f.eks. ipchains var
noedt til at bruge, fordi ipchains ikke havde stateful
inspection.
Som du selv har oplevet, fungerer det ikke med udp, fordi
udp-trafik ikke gennemfoerer en forhandling med syn-pakker.
Saa i stedet synes jeg, at du skulle udnytte, at iptables koerer
med aegte stateful inspection, som groft sagt betyder, at
iptables holder regnskab med, hvad der er kommet ud, og kun
tillader trafik at komme ind, hvis det er svar paa det, der er
kommet ud. Den teknik fungerer ogsaa med udp-pakker.
Et saet regler kunne se saaledes ud (sakset fra eksemplet paa
www.sslug.dk/sikkerhed/ , med alt andet end iptables klippet vaek
for overskuelighedens skyld - men det betyder ikke, at alt det
andet kan undvaeres):
# Default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
# Create a common chain for the INPUT and FORWARD handling
iptables -N block
iptables -F block
# Allow traffic on established connections
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
# Indsat af Allan Olesen:
# Den her har jeg modificeret lidt, da jeg ikke bryder mig
# om det originale scripts sortlistning af interfaces.
# Hvidlistning er bedre. Fjern kommenteringen foran eth0
# hvis eth0 er et rent lokalnet-interface uden adgang
# fra internettet.
#iptables -A block -m state --state NEW -i eth0 -j ACCEPT
iptables -A block -m state --state NEW -i lo -j ACCEPT
# Indsat til aere for Kaspers ssh-adgang udefra.
# De to naeste liner skal samles til een linie:
iptables -A block -m state --protocol tcp --state NEW
--destination-port 22 -j ACCEPT
# Block anything else
iptables -A block -j LOG
# Activate the new chain
iptables -A INPUT -j block
iptables -A FORWARD -j block
--
Allan