Page 1 of 1

Simple iptables-Firewall, so okay?

Posted: 2006-09-02 15:28
by igel
Moin!

Ich habe mir eine kleine Firewall mit iptables geschrieben. Da ich mich aber nicht so gut auskenne, wäre es hilfreich, wenn da mal jemand drüber schauen könnte, ob ich nicht irgendwelche gravirenden Fehler gemacht habe. Danke!

Code: Select all

#!/bin/bash
IPTABLES=`which iptables`
DEV=eth0

test -f $IPTABLES || exit 0

case "$1" in
        start|restart)
                # Tabellen leeren
                $IPTABLES -F

                # Per Default alles reinkommende und weiterzuleitende DROPen
                # Ausgehendes ACCEPTen
                $IPTABLES -P INPUT DROP
                $IPTABLES -P OUTPUT ACCEPT
                $IPTABLES -P FORWARD DROP

                 # Bestehende Verbindungen ACCEPTen
                $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

                # Lokale Verbindungen ACCEPTen
                $IPTABLES -A INPUT -i lo -j ACCEPT

                # Diese Verbindungen ACCEPTen
                # SSH
                $IPTABLES -A INPUT -i $DEV -p tcp --dport 22 -j ACCEPT
                # SMTP
                $IPTABLES -A INPUT -i $DEV -p tcp --dport 25 -j ACCEPT
                # HTTP
                $IPTABLES -A INPUT -i $DEV -p tcp --dport 80 -j ACCEPT
                # HTTPS
                $IPTABLES -A INPUT -i $DEV -p tcp --dport 443 -j ACCEPT
                # IMAP/SSL
                $IPTABLES -A INPUT -i $DEV -p tcp --dport 993 -j ACCEPT

                # Zum Komfort, dies REJECTen
                # IMAP
                $IPTABLES -A INPUT -i $DEV -p tcp --dport 143 --syn -j REJECT
        ;;
        stop)
                $IPTABLES -F
                $IPTABLES -P INPUT ACCEPT
                $IPTABLES -P OUTPUT ACCEPT
                $IPTABLES -P FORWARD ACCEPT
        ;;
        *)
                echo Wrong usage!
                echo Usage: $0 {start,stop,restart}
        ;;
esac
iGEL

Re: Simple iptables-Firewall, so okay?

Posted: 2006-09-02 17:56
by lord_pinhead
1) gehören die Default Drops unter den Portfreigaben, also als letztes in der Kette

2)
$IPTABLES -P INPUT -i $DEV -j REJECT --reject-with tcp-reset
$IPTABLES -P OUTPUT -i $DEV -j ACCEPT
$IPTABLES -P FORWARD -i $DEV -j REJECT --reject-with tcp-reset

3) Drop ist schlecht, nutze Reject mit den richtigen Reject Codes
tcp: REJECT --reject-with tcp-reset
udp: REJECT --icmp-port-unreachable

Ausserdem, warum lässt du Imap extra nochmal blockieren, schalte doch einfach den Dienst ab :)

Re: Simple iptables-Firewall, so okay?

Posted: 2006-09-03 13:39
by croc
iGEL: Wenn du das vollendet hast, könntest du es bitte nochmal in der fertigen Fassung hier reinschreiben?

Re: Simple iptables-Firewall, so okay?

Posted: 2006-09-06 02:10
by time-walker
hi leute bin auch gerade dabei nen iptables script für meinen server zu basteln. meiner sieht so aus:

Code: Select all

#!/bin/sh

case "$1" in
start|restart)

        # Tabellen leeren
        IPTABLES -F

        #loopback
        IPTABLES -A INPUT -i lo -j ACCEPT

        #Bestehende Verbindungen accepten
        IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

        #Port freigaben
        #ssh
        IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
        #Apche
        IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

        #icmp
        #IPTABLES -A INPUT -i eth0 -p icmp -j ACCEPT

        #Default forward DROPen / OUTPUT ACCEPT
        IPTABLES -P INPUT DROP
        IPTABLES -P OUTPUT ACCEPT
        IPTABLES -P FORWARD DROP
;;
stop)

        IPTABLES -F
        IPTABLES -P INPUT ACCEPT
        IPTABLES -P OUTPUT ACCEPT
        IPTABLES -P FOTWARD ACCEPZ
;;
*)

        echo "Fehler /etc/init.d/$0 [start|restart|stop]"

esac;
gibts irgendwelche verbesserungsvorschläge ??


ich habe ne frage noch dazu, wie muss ich weiter vorgehen damit das script beim starten geladen wird ?