Firewall(iptables)

Post Reply
Message
Author
Firewall(iptables)

Firewall(iptables)

#1 Post by Firewall(iptables) »

hallo leute,

hab da mal eine kleine frage!

könnte mir jemand helfen, ich habe schwierigkeiten mit meiner firewall....

ich hab da mal ein iptables script erstellt, das folgende kriterien erfüllen sollte...

von innen nach aussen alles verboten ausser: http, https, nntp, smtp, dns, pop3
und von aussen nache innen ist alles verboten.
der ganze unerlaubte verkehr soll geloggt werden.

und die firewall sollte bei jedem start automatisch auch starten!
könnte mir da jemand helfen, denn es läuft nicht so wie es sollte!!!

*****************************************script******************************************
iptables -Z
iptables -X
iptables -F

echo 1 >> /proc/sys/net/ipv4/ip_forward

iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -P INPUT DROP

iptables -A OUTPUT -p tcp --sport 1024: --dport 80 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --sport 80 --dport 1024: ! --syn -j ACCEPT #HTTP

iptables -A OUTPUT -p tcp --sport 1024: --dport 25 -j ACCEPT #SMTP
iptables -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT #DNS
iptables -A OUTPUT -p tcp --sport 1024: --dport 53 -j ACCEPT #DNS
iptables -A OUTPUT -p tcp --sport 1024: --dport 110 -j ACCEPT #POP3
iptables -A OUTPUT -p tcp --sport 1024: --dport 119 -j ACCEPT #NNTP
iptables -A OUTPUT -p tcp --sport 1024: --dport 443 -j ACCEPT #HTTPS

iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG

iptables -A INPUT -j DROP
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -j DROP

iptables -A FORWARD -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #abgehende pakete
iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #ankommende pakete

iptables -A FORWARD -j LOG

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

*****************************************script ende*****************************************

gruss iriqi

User avatar
elwood67
Posts: 232
Joined: 19. May 2004 10:03
Location: Nürnberg

Was.....

#2 Post by elwood67 »

....geht denn nicht?
Ich habe mal kurz drüber geguckt.
Du schmeisst erst alle Pakte weg die rein wollen und dann die Verbindungsverwandten. Dreh mal die beiden Blöcke um, sonst hast Du keine Pakete mehr die reinkommen könnten.....oder??

Code: Select all

iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG

iptables -A FORWARD -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #abgehende pakete
iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #ankommende pakete

iptables -A INPUT -j DROP
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -j DROP
 
Gruß Jürgen
_______________________
Rechner: P4 mit Suse 9.2
_______________________
Und versammeln unsere eigene Armee, um diese Massenvernichtungswaffe zu entschärfen, die wir heute noch unseren Präsidenten nennen...

User avatar
Hans Solo
prolinux-forum-admin
Posts: 601
Joined: 20. Apr 2004 12:19
Location: AT
Contact:

#3 Post by Hans Solo »

etwas mehr informationen was denn nicht läuft wie es soll wären nicht
schlecht
-- in meiner Glaskugel schneit es gerade

ich bin zwar kein iptables crack

aber muss man nicht den netzwerkverkehr für das loopback device auch erlauben?

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

mfg
arno
[root@host]# cd /pub
[root@host]# more beer

User avatar
elwood67
Posts: 232
Joined: 19. May 2004 10:03
Location: Nürnberg

Script

#4 Post by elwood67 »

Hier mal ein allgemein gültiges Script:
Nehme gerne Verbesserungsvorschläge an.

Code: Select all

#! /bin/bash
###################### Variablen setzen

IIF=eth0       # interne Interface
EIF=eth1     # externe Interface
highPorts=1024:65535 
clientFuer="http https pop3 nntp dns smtp # was muss durch
prox_prot="tcp udp"  # benutzte Protokolle
TNET=10.140.80.0/24      # Trusted Net
ENET=0/0                 # Enemy Net


###################### Prüfung (und ggf. nachladen), ob die notwendigen Module ###################### geladen sind
modprobe ip_tables
modprobe ip_conntrack

###################### Abfrage der Eingabe
case $1 in


start)
	echo "Starte Firewall"

##################Loopback öffnen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT	
	
	
################## Alles, was nicht erlaubt ist, ist verboten
	iptables -P INPUT	DROP
	iptables -P FORWARD	DROP
	iptables -P OUTPUT	DROP


##################  Alle anderen (alte) Regeln löschen
	iptables -F
	

################## Regeln############################
#####################################################

################# stat. Regel

################# bestimmte ICMP durchlassen
	iptables -A INPUT -p icmp --icmp-type 3 -i $IIF -j ACCEPT
	

############# Ports öffnen für die  Client #
        for p in $clientFuer
        do
           	for a in $prox_prot
        	do
	        	if [ $a = "tcp" ]; then
		        	SYN='! --syn'
		                else
			        SYN=''
		        fi

  		iptables -A OUTPUT -p $a --sport $highPorts -d 0/0 --dport $p -o $IIF -j ACCEPT
		iptables -A INPUT  -p $a --sport $p -s 0/0 --dport $highPorts -i $IIF $SYN -j ACCEPT
	       done
           done 
	
################# dyn. Regeln
	iptables -N filter
	iptables -A filter -m state --state NEW -o $IIF -j ACCEPT
	iptables -A filter -m state --state ESTABLISHED,RELATED -j ACCEPT
	iptables -A filter -j LOG
	iptables -A filter -j DROP
	
	iptables -A INPUT -j filter
	iptables -A FORWARD -j filter
	iptables -A OUTPUT -j filter
	
################## Routing an
	echo 1 > /proc/sys/net/ipv4/ip_forward                  
	
;;
stop)
	echo "Stoppe Firewall"
	iptables -P INPUT	ACCEPT
	iptables -P FORWARD	ACCEPT
	iptables -P OUTPUT	ACCEPT
	iptables -F
################ Routing aus
	echo 0 > /proc/sys/net/ipv4/ip_forward	
	
;;
*)
	echo "Falsche Eingabe, bitte mit $0 [start|stop]"


;;
esac 
Gruß Jürgen
_______________________
Rechner: P4 mit Suse 9.2
_______________________
Und versammeln unsere eigene Armee, um diese Massenvernichtungswaffe zu entschärfen, die wir heute noch unseren Präsidenten nennen...

Post Reply