Iptables: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 75: | Zeile 75: | ||
iptables -A INPUT -p ALL -j services | iptables -A INPUT -p ALL -j services | ||
iptables -A INPUT -p ALL -j bad_packets | iptables -A INPUT -p ALL -j bad_packets | ||
iptables -A INPUT -p ALL -j DROP | |||
#OUTPUT: Alles was raus geht wird erlaubt | #OUTPUT: Alles was raus geht wird erlaubt | ||
Zeile 81: | Zeile 82: | ||
#Speichern | #Speichern | ||
/etc/rc.d/iptables save | /etc/rc.d/iptables save | ||
Version vom 25. Dezember 2007, 03:03 Uhr
iptables
Der Kernel selber hat mit 'Netfilter' einen sehr mächtigen und sicheren Paketfilter. Der Paketfilter untersucht die Paket die deinen Rechner verlassen, oder erreichen. Mit anderen Worten... er reagiert auf Netzwerkpaket je nach Art, Quelle, Ziel usw. zum Beispiel mit Zurückweisung. Das entsprechende Programm zur Steuerung des Paketfilters lautet 'iptables'.
Das entsprechende Paket wird mittels folgendem Aufruf installiert.
# pacman -S iptables
Definiere ein paar Regeln, und starte /etc/rc.d/iptables save Das Script ruft 'iptables-save' auf, und speichert Deine erstellten Regeln in /etc/iptables/iptables.rules.
Jetzt kannst Du iptables starten.
# /etc/rc.d/iptables start
Das Script ruft iptables-restore auf, und lädt Deine Regeln. Du kannst die Firewall natürlich im DAEMONS Feld in /etc/rc.conf eintragen, damit es nach jedem boot automatisch geladen wird.
# DAEMONS=(...iptables network...)
Hier ein Script um iptables für einen Rechner der direkt am Internet hängt einzurichten.
#!/bin/bash #Ports: Hier eintragen welche Ports geöffnet werden sollen SERVICES_UDP="" #freigegebene UDP-Ports SERVICES_TCP="22 80" #freigegebene TCP-Ports (Hier sshd und http) #Alle vorhandenen Regeln löschen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X #Grundregeln iptables -P OUTPUT ACCEPT iptables -P INPUT DROP iptables -P FORWARD DROP #Sicherheit iptables -N bad_packets iptables -A bad_packets -p ALL -m state --state INVALID -j DROP #kaputte Pakete droppen iptables -A bad_packets -p tcp -j REJECT --reject-with tcp-reset #Antispoofing iptables -A bad_packets -p udp -j REJECT --reject-with icmp-port-unreachable #Antispoofing iptables -A bad_packets -p icmp -m limit --limit 2/s -j ACCEPT #ICMP iptables -A bad_packets -p icmp -m limit --limit 4/s -j REJECT #ICMP iptables -A bad_packets -p icmp -j DROP #ICMP iptables -A bad_packets -p ALL -j RETURN iptables -N service_sec iptables -A service_sec -p tcp --syn -m limit --limit 1/s -j ACCEPT #SYN-Flood Attacken iptables -A service_sec -p tcp ! --syn -m state --state NEW -j DROP #TCP-SYN-Pakete ohne Status NEW droppen iptables -A service_sec -p tcp --tcp-flags ALL NONE -m limit --limit 1/h -j ACCEPT #Portscanner ausschalten iptables -A service_sec -p tcp --tcp-flags ALL ALL -m limit --limit 1/h -j ACCEPT #Portscanner ausschalten iptables -A service_sec -p ALL -j RETURN #Dienste iptables -N services for port in $SERVICES_TCP ; do iptables -A services -p tcp --dport $port -j service_sec iptables -A services -p tcp --dport $port -j ACCEPT done for port in $SERVICES_UDP ; do iptables -A services -p udp --dport $port -j service_sec iptables -A services -p udp --dport $port -j ACCEPT done iptables -A services -p ALL -j RETURN #INPUT iptables -A INPUT -p ALL -i lo -j ACCEPT iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p ALL -j services iptables -A INPUT -p ALL -j bad_packets iptables -A INPUT -p ALL -j DROP #OUTPUT: Alles was raus geht wird erlaubt iptables -A OUTPUT -p ALL -j ACCEPT #Speichern /etc/rc.d/iptables save
Weitere Quellen