• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Firewall Script geht nicht - finde den/die Fehler nicht...

Hallo,

das script soll auf all den aufgelisteten Ports die Verbdinungen durch lassen. Ich hab mal eingehend und ausgehend aktiviert also das alles durch kommt von den ports nur es blockt mir trotzdem alles.

Ich hänge im netzwerk, also hinter einem Rechner der Inet hat.

Was fehlt bzw. was ist falsch?

Code:
IPTABLES="/sbin/iptables"
HIGHPORT="1024:65535"

echo -e $IPTABLES

black="\E[30m"
red="\E[31m"
green="\E[32m"
yellow="\E[33m"
blue="\E[34m"
magenta="\E[35m"
cyan="\E[36m"
white="\E[37m"

#echo -e $farbe . "test" <- Farbliche ausgabe in der Shell

#Der Highport ist immer die andere Seite der Kommunikationsverbindung. Der Server hört auf einen Port, aber der Client fragt von einem bestimmten Port an. Diese Ports liegen immer im Bereich 1024-65535. Die nennt man Highports.

# -A				->	Hinzufügen
# iptables -X allowed		->	Alles erlauben 
# -P [INPUT, OUTPUT] DROP 	->	Alles wird geblockt was keine berechtigungen hat
# -p 				->	protokol -> tcp. udp, icmp
# -sport			->	sourceport
# -dport			->	destinationport

start() {

	echo -en "${black}firewall wird zurückgesetzt..." 
	# iptables zurücksetzen
	$IPTABLES -F INPUT
	$IPTABLES -F OUTPUT
	$IPTABLES -F FORWARD

	$IPTABLES -P INPUT ACCEPT
	$IPTABLES -P OUTPUT ACCEPT
	$IPTABLES -P FORWARD ACCEPT

	echo -en "${green}\t\t\tJa!\n"

	#Policy setzen - es wird alles verworfen
	$IPTABLES -P INPUT DROP
	$IPTABLES -P OUTPUT DROP
	$IPTABLES -P FORWARD DROP

	#============================================================
	#Eingehende SSH Verbindung erlauben
	#============================================================

	echo -en "${black}SSH erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 22 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 22 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\t\tJa!\n"

	#============================================================
	#Eingehende FTP Verbindung erlauben
	#============================================================

	echo -en "${black}FTP erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 21 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 21 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\t\tJa!\n"

	#============================================================
	#Eingehende Apache HTTP Verbindung erlauben
	#============================================================

	echo -en "${black}HTTP erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 80 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 80 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende http Verbindung erlauben
	#============================================================

	echo -en "${black}http erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport http --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport http --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende https Verbindung erlauben
	#============================================================

	echo -en "${black}https erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport https --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport https --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende SMTP Verbindung erlauben
	#============================================================

	echo -en "${black}SMTP erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 25 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 25 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende POP3 Verbindung erlauben
	#============================================================

	echo -en "${black}POP3 erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 110 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 110 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende IMAP Verbindung erlauben
	#============================================================

	echo -en "${black}IMAP erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 143 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 143 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende DNS Verbindung erlauben
	#============================================================

	echo -en "${black}DNS erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 53 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 53 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p udp --dport 53 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p udp --sport 53 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\t\tJa!\n"

	#============================================================
	#Eingehende VHCS-Daemon Verbindung erlauben
	#============================================================

	echo -en "${black}VHCS-Daemon erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 9876 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 9876 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\tJa!\n"

	#============================================================
	#Eingehende SMB - Samba Verbindung erlauben
	#============================================================

	echo -en "${black}SMB erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 137:139 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 137:139 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\t\tJa!\n"

	#============================================================
	#Eingehende MSN Verbindungen erlauben
	#============================================================

	echo -en "${black}MSN erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 1863 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 1863 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\t\tJa!\n"

	#============================================================
	#Eingehende ICQ Verbindung erlauben
	#============================================================

	echo -en "${black}ICQ erlauben..." 

	#Pakete vom Client zum Server
	$IPTABLES -A INPUT -p tcp --dport 5190 --sport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	#Pakete vom Server zum Client
	$IPTABLES -A OUTPUT -p tcp --sport 5190 --dport $HIGHPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT;

	echo -en "${green}\t\t\tJa!\n"

}

stop() {

	echo -en "${black}Firewall stoppen..." 

	# iptables zurücksetzen
	$IPTABLES -F INPUT
	$IPTABLES -F OUTPUT
	$IPTABLES -F FORWARD

	$IPTABLES -P INPUT ACCEPT
	$IPTABLES -P OUTPUT ACCEPT
	$IPTABLES -P FORWARD ACCEPT

	echo -en "${green}\t\t\tJa!\n${black}"

}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  *)
	echo $"Usage: $0 {start|stop}"
	exit 1
esac

lg Richi
 
Sieht soweit gut aus. Ok, bei den Antwortpaketen brauchst das "NEW" nicht.

SMTP sieht noch ein wenig Fratze aus. Ich habs nur überflogen aber es scheint so das der Server zwar Mails annehmen darf, aber keine Verschicken kann, weil er sich nicht zum Port 25 des nächsten Mailservers verbinden darf.

Auf dem Loopback solltest Du allen Trafik erlauben, sonst streiken manche Programme.

Wenn die Firewall läuft mach mal ein iptables -L -v damit werden die aktuellen Regeln angezeigt.
 
Das mit new überall hab ich nur deshalb gesezt weil nichts funktioniert hat und noch immer nicht geht *hmpf* <- somit von jeder Seite zu lassen... aber daran lags wohl nicht...

es soll halt den Lokalen Rechner von Intenet UND Netzwerk schützen.
Nur irgednwie geht danach nichts mehr es ist halt alles geblockt.

Naja ich werd mal weiter versuchen :(

Code:
[root@richi richi]# /sbin/iptables -L -v
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain INPUT (policy DROP 13 packets, 3831 bytes)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:ssh state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:ftp state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:http state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:http state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:https state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:smtp state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:pop3 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:imap state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:domain state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp spts:1024:65535 dpt:domain state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:sd state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpts:netbios-ns:netbios-ssn state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:1863 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:1024:65535 dpt:5190 state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:ssh dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:ftp dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:http dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:http dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:https dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:smtp dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:pop3 dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:imap dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:domain dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp spt:domain dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:sd dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spts:netbios-ns:netbios-ssn dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:1863 dpts:1024:65535 state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:5190 dpts:1024:65535 state NEW,RELATED,ESTABLISHED

Chain RH-Firewall-1-INPUT (0 references)
 pkts bytes target     prot opt in     out     source               destination 
    4   200 ACCEPT     all  --  lo     any     anywhere             anywhere    
 3293 2917K ACCEPT     all  --  eth0   any     anywhere             anywhere    
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere            icmp any
    0     0 ACCEPT     ipv6-crypt--  any    any     anywhere             anywhere
    0     0 ACCEPT     ipv6-auth--  any    any     anywhere             anywhere
    0     0 ACCEPT     udp  --  any    any     anywhere             224.0.0.251         udp dpt:5353
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:ipp
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited
 
Oben