PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables-script kontrollieren?



Ryanika
13.10.03, 10:09
moin moin,

mag vielleicht einer von euch mal mein script anschauen, ob das so ok ist?
habe es soweit ich es wusste ausgetestet.
die firewall läuft auf einem client rechner und geht über einen router ins internet.

danke schonmal


#Firewall intern, erstellt am 10.10.2003
#!/bin/bash
echo "executing script"

#################################
##
#setzen von Variablen
##
################################

#Internetschnittstelle
local=lo
iface_int=eth0

#Ausschalten des Routing
echo "1" >/proc/sys/net/ipv4/ip_forward

#Default-Policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#Löschen aller Regeln
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

#erlaube alles von Lokal
iptables -A INPUT -i $local -j ACCEPT
iptables -A FORWARD -o $local -j ACCEPT
iptables -A OUTPUT -o $local -j ACCEPT

#erlaube bereits initialisierte TCP und UDP Pakete
iptables -A INPUT -i $iface_int -p ALL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $iface_int -p ALL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#erlaube notwendige ICMP Pakete
iptables -A INPUT -i $local -p ICMP --icmp-typ 0 -j ACCEPT
iptables -A INPUT -i $local -p ICMP --icmp-typ 3 -j ACCEPT
iptables -A INPUT -i $local -p ICMP --icmp-typ 5 -j ACCEPT
iptables -A INPUT -i $local -p ICMP --icmp-typ 11 -j ACCEPT
iptables -A OUTPUT -o $local -p ICMP -j ACCEPT
iptables -A OUTPUT -o $iface_int -p ICMP -j ACCEPT

#internet ermöglichen
iptables -A INPUT -i $iface_int -j ACCEPT
iptables -A OUTPUT -o $iface_int -j ACCEPT

HangLoose
13.10.03, 12:22
moin

dann will ich mir mal wieder nen bussy abholen ;).


#erlaube alles von Lokal
iptables -A INPUT -i $local -j ACCEPT
iptables -A FORWARD -o $local -j ACCEPT
iptables -A OUTPUT -o $local -j ACCEPT

die forward regel kannst du löschen, das gibt es für das loopbackdevice nicht.


#erlaube bereits initialisierte TCP und UDP Pakete
iptables -A INPUT -i $iface_int -p ALL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $iface_int -p ALL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

auch hier kann die forwardregel wieder raus. die forwardchain brauchst du nur, wenn du einen router hast und pakete ins lan weitergeleitet werden sollen.
ausserdem muss das NEW aus dieser regel raus( das wird weiter unten gesetzt). mit dem NEw ist momentan alles erlaubt, kannst ja mal nen portscan machen. mit established, related werden dann nur pakete durchgelassen, die zu einer bestehenden verbindung gehören.

#internet ermöglichen
iptables -A INPUT -i $iface_int -j ACCEPT
iptables -A OUTPUT -o $iface_int -j ACCEPT

um internet zu ermöglichen brauchst du jetzt eine outputregel. die inputregel brauchst du hier nicht, die hast du ein stückchen weiter oben mit established,related schon definiert.
du könntest jetzt noch beikommen und für jeden service eine eigene regel erstellen, z.b.

iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT #WWW
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT #DNS
iptables -A OUTPUT -p tcp --dport pop3 -m state --state NEW -j ACCEPT #mail



Gruß HL

Ryanika
13.10.03, 16:06
:-X

verstanden - danke

lieben gruss

Uta

ne0k1ng
13.10.03, 17:56
Vielleicht hab ich ja was falsch verstanden, aber schaltet man das Routing nicht mit echo "0" >/proc/sys/net/ipv4/ip_forward aus?

cu ne0k1ng

HangLoose
13.10.03, 18:08
Original geschrieben von ne0k1ng
Vielleicht hab ich ja was falsch verstanden, aber schaltet man das Routing nicht mit echo "0" >/proc/sys/net/ipv4/ip_forward aus?

cu ne0k1ng

ne stimmt, hab ich übersehen.


Gruß HL