Toon posts:

Linux IP Tables firewall

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo

Ik heb een firewall gemaakt voor men router. (zie onderaan)
Daar ik nog een noob ben, ben ik niet overtuigd over de veiligheid van deze firewall/router.
Zou't even mogelijk zijn de tijd te nemen om hem even te bekijken en mij jullie commentaar te geven?
Wat moet er bij, wat moet eruit..

(ik gebruik nat)

Thx in advance
#variables :x
EXT=eth1
INT=eth0

#forwarding kernel level
echo 1 > /proc/sys/net/ipv4/ip_forward

#loading nat module (just to be shure :p)
modprobe iptable_nat

#telling iptables to use nat masquerading
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE

#drop everything from outside
iptables -P INPUT DROP

#accept output
iptables -P OUTPUT ACCEPT

#accept forwarding (nat, remember)
iptables -P FORWARD ACCEPT

#block some ports in & out
#

#netbus
iptables -A OUTPUT -o $EXT -p tcp --dport 31337 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 31337 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 31337 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 31337 -j DROP


iptables -A OUTPUT -o $EXT -p tcp --dport 31335 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 31335 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 31335 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 31335 -j REJECT


iptables -A OUTPUT -o $EXT -p tcp --dport 27444 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 27444 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 27444 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 27444 -j DROP


iptables -A OUTPUT -o $EXT -p tcp --dport 27665 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 27665 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 27665 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 27665 -j DROP


iptables -A OUTPUT -o $EXT -p tcp --dport 20034 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 20034 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 113 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 113 -j DROPT

#winnie
iptables -A OUTPUT -o $EXT -p tcp --dport 9704 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 9704 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 9704 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 9704 -j DROP


iptables -A OUTPUT -o $EXT -p tcp --dport 137 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 137 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 137 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 137 -j DROP


iptables -A OUTPUT -o $EXT -p tcp --dport 138 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 138 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 138 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 138 -j DROP


iptables -A OUTPUT -o $EXT -p tcp --dport 139 -j DROP
iptables -A OUTPUT -o $EXT -p tcp --sport 139 -j DROP

iptables -A FORWARD -i $EXT -p tcp --dport 139 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 139 -j DROP

#
#end

#no ident request
iptables -A FORWARD -i $EXT -p tcp --dport 113 -j REJECT
iptables -A INPUT -i $EXT -p tcp --dport 113 -j REJECT

#icmp rules
iptables -A INPUT -i $EXT -p icmp --icmp-type 8 -j DROP
iptables -A FORWARD -i $EXT -p icmp --icmp-type 8 -j DROP
iptables -A OUTPUT -o $EXT -p icmp --icmp-type 8 -j ACCEPT

#Forward all packets from eth1 (internal network) to eth0 (the internet).
iptables -A FORWARD -i $INT -o $EXT -j ACCEPT

#Forward packets that are part of existing and related connections from eth0 to eth1.
iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Permit packets in to firewall itself that are part of existing and related connections.
iptables -A INPUT -i $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Allow all inputs to firewall from the internal network and local interfaces
iptables -A INPUT -i $INT -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

#Accept all tcp SYN packets for protocol SSH
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 22 --syn -j ACCEPT

#For DHCP server
iptables -A INPUT -i $INT -p tcp --sport 68 --dport 67 -j ACCEPT
iptables -A INPUT -i $INT -p udp --sport 68 --dport 67 -j ACCEPT

iptables -A INPUT -i $EXT -p tcp --sport 68 --dport 67 -j DROP
iptables -A INPUT -i $EXT -p udp --sport 68 --dport 67 -j DROP

#For DNS server
iptables -A INPUT -i $INT -p tcp --sport 53 --dport 53 -j ACCEPT
iptables -A INPUT -i $INT -p udp --sport 53 --dport 53 -j ACCEPT

iptables -A INPUT -i $EXT -p tcp --sport 53 --dport 53 -j DROP
iptables -A INPUT -i $EXT -p udp --sport 53 --dport 53 -j DROP


#extra
iptables -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
iptables -A INPUT -s 0/0 -d 0/0 -p tcp --syn -j DROP

exit 1

  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:56
Verwijderd schreef op 27 april 2004 @ 02:19:
Zou't even mogelijk zijn de tijd te nemen om hem even te bekijken en mij jullie commentaar te geven?
Wat moet er bij, wat moet eruit..
Dat hangt nogal af van welke services/daemons je nodig hebt.

Verder, waar denk je zelf dat evt. problemen zouden kunnen zitten? Heb je getest of de firewall goed werkt met tools als nmap, nessus e.d.? Gezocht naar 'standaard' firewall scripts? Er staan er vele op internet, en door die door te lezen leer je al snel wat belangrijk is.

We zijn hier natuurlijk geen IT-consultancy group die je tegen betaling inhuurt om jouw specifieke setup te controleren, dus het 'even speciaal voor jou controleren van een bepaalde firewall setup' is misschien wel een beetje veel gevraagd. Maar wie weet heeft er iemand tijd over ;)

Voor de rest overigens welkom op Gathering of Tweakers :)

Verwijderd

Topicstarter
Ik weet dat ik misschien veel vraag 8)7

Een mening zou al leuk zijn :)

Thx :)

[ Voor 6% gewijzigd door Verwijderd op 28-04-2004 00:23 ]


Verwijderd

Zet alle chains op drop, dan hoef je alleen nog maar aan te geven wat _wel_ mag..
code:
1
2
3
4
#all policies on drop
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


Je kunt de 'forward' chain dan zien als 'wat mag er vanaf mijn netwerk naar internet'. Je moet dus wel specifiek regels aanmaken. Over het algemeen zijn de poorten 20,21,25,80,110 en 443 voldoende. (FTP, WWW, Email).

Er is erg veel informatie over dit onderwerp te vinden, ze de website van netfilter:
http://www.netfilter.org/

Als je geen dialup verbinding hebt (telefoonmodem) maar breedband, gebruik dan geen masquarading:
Masquerading
There is a specialized case of Source NAT called masquerading: it should only be used for dynamically-assigned IP addresses, such as standard dialups (for static IP addresses, use SNAT above).
Dit stukje komt uit een howto op de netfilter site :

http://www.netfilter.org/...n/HOWTO//NAT-HOWTO-6.html

[ Voor 42% gewijzigd door Verwijderd op 28-04-2004 00:45 ]


Verwijderd

Alles op drop (lekker drop!!!!) en dan accepts maken is het makkelijkst, maar tevens moeilijkst de troubleshooten als iets niet werkt (vooral voor beginnende iptafelaars).

Tevens een hint/tip, als de policy van een chain drop is, hoef je niet nog eens individuele porten te droppen. Wil je rejecten ipv droppen, dan moet je het wel doen (als je een icmp port unreachable wil terug sturen ipv drop (niks terugsturen)).

[ Voor 3% gewijzigd door Verwijderd op 28-04-2004 13:58 ]