
#!/bin/sh # Firewall rules # Sätt upp standardregler /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT # Rensa bort gamla brandväggsregler /sbin/iptables -F /sbin/iptables -t nat -F # Rensa bort gamla kedjor /sbin/iptables -X
#!/bin/sh # eth1 utsida # eth0 insida # Om maskeringen är kompilerad som modul # aktivera raden nedan (genom att ta bort # i början på raden) #modprobe iptable_nat # För att ESTABLISHED, RELATED ska fungera bra för FTP-trafik ladda # nedanstående modul. Om den ligger fast i kärnan kommentera bort raden. modprobe ip_conntrack_ftp modprobe ip_nat_ftp # Slå på routing echo "1" > /proc/sys/net/ipv4/ip_forward # Firewall rules # Min egna IP-adress på eth1 (yttre interface) MEeth1=`/sbin/ifconfig eth1 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'` # Min broadcastadress på eth1 MYBROADCASTeth1=`/sbin/ifconfig eth1 |sed -n '/inet/s/^.*Bcast:\([0-9.]*\).*/\1/p'` # Min egna IP-adress på eth0 (inre interface) MEeth0=`/sbin/ifconfig eth0 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'` # Min broadcastadress på eth0 MYBROADCASTeth0=`/sbin/ifconfig eth0 |sed -n '/inet/s/^.*Bcast:\([0-9.]*\).*/\1/p'` # Skapa kedjan logdrop som loggar och kastar trafiken /sbin/iptables -N logdrop /sbin/iptables -A logdrop -j LOG /sbin/iptables -A logdrop -j DROP # Logga och kasta nya TCP-paket som inte är SYN-paket iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN " iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN " iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP # FORWARDREGLER # Spärra trafik som kommer till broadcastadressen /sbin/iptables -A FORWARD --in-interface eth1 --destination $MYBROADCASTeth0/32 -j logdrop /sbin/iptables -A FORWARD --in-interface eth0 --destination $MYBROADCASTeth1/32 -j logdrop # Släpp ut trafik från interna nätet, och släpp in svarstrafik /sbin/iptables -A FORWARD --in-interface eth0 -j ACCEPT /sbin/iptables -A FORWARD --in-interface eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Lägg på maskering på utgående trafik som ska ut till Internet så att # det ser ut som att det är brandväggens utsida som surfar /sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to $MEeth1 # # Om du får din adress på yttre interfacet, eth1, dynamiskt via # t.ex. dhcp ska följande rad användas istället för SNAT-regeln ovan: # /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # Notera att MASQUERADE gör av med lite mer CPU-kraft än SNAT. # # Om du får din adress dynamiskt på eth1 lägg även till följande rad: # echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Logga och spärra resten /sbin/iptables -A INPUT -j logdrop /sbin/iptables -A FORWARD -j logdrop
Spara de två filerna och gör de exekverbara med:
chmod a+x /etc/rc.d/init.d/firewall-start
chmod a+x /etc/rc.d/init.d/firewall
Om din dator normalt bootar till run level 3 går du till katalogen
/etc/rc.d/rc3.d (RedHat och RedHat-liknande system) med kommandot:
cd /etc/rc.d/rc3.d
Om du använder grafisk inloggning, dvs din dator bootar normalt till
run level 5 går du istället till katalogen /etc/rc.d/rc5.d
(RedHat och RedHat-liknande system) med kommandot:
cd /etc/rc.d/rc5.d
I andra Linuxsystem kan katalogerna rc3.d respektive rc5.d ligga
till exempel direkt under /etc och där får du istället göra:
cd /etc/rc3.d respektive
cd /etc/rc5.d
Är du osäker på vilken run level din dator bootar till kan du titta i
filen /etc/inittab efter följande rad:
id:3:initdefault:
siffran 3 innebär att datorn normalt bootar till run level 3.
Nästa steg är att sätta upp symboliska länkar för att få
brandväggsreglerna att automatiskt sättas upp vid boot.
Först sätts standardreglerna upp innan nätverket tas upp och sedan
sätts brandväggsregler upp efter att nätverket har kommit upp.
Gör:
ln -s ../init.d/firewall-start S01firewall-start
ln -s ../init.d/firewall S12firewall
# Tillåt att prata med sig själv /sbin/iptables -A INPUT --in-interface lo --source 127.0.0.0/8 -j ACCEPT # Släpp fram svarstrafik /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Dessa regler läggs in innan reglerna för att spärra och logga
resterande trafik.
Copyright © 2010
This document is covered by the GNU Free Documentation License, Version 1.1