vielen dank. klar sollte das dport heissen. danke!dodolin wrote:Das letzte sollte wohl eher sport statt dport heissen. Ansonsten sieht es jetzt halbwegs ok aus.Code: Select all
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT $IPTABLES -A INPUT -p tcp --dport 53 -j ACCEPT $IPTABLES -A OUTPUT -p udp --sport 53 -j ACCEPT $IPTABLES -A OUTPUT -p tcp --dport 53 -j ACCEPT
die states kenne ich. ich beschäftige mich eine weile damit, aber es ist ja auch recht komplex... das hier scheinbar einige fachleute sind (HUT AB!) hier mal dsa ganze firewallscript... bitte macht mich nicht zu sehr nieder, es hat echt genug mühe gekostet. auch mal, um vielleicht für andere noch was feines zu liefern...
Code: Select all
#!/bin/sh
IPTABLES=/usr/sbin/iptables
HIGH_PORTS="1024:65535"
# Benoetigte Module hinzufuegen
/sbin/modprobe ip_conntrack
# Zuruecksetzen aller Regeln
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
# Alle bereits bestehenden Verbindungen erlauben
$IPTABLES -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Erlauben von Loopback-Verbindungen
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Erlauben von DNS
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 53 -j ACCEPT
#Erlauben von ident
$IPTABLES -A INPUT -p tcp --dport 113 -j ACCEPT -m limit --limit 2 --limit-burst 4
$IPTABLES -A OUTPUT -p tcp --sport 113 -j ACCEPT -m limit --limit 2 --limit-burst 4
# Erlauben von PING
$IPTABLES -A INPUT -m limit -p ICMP --limit 1 --limit-burst 2 -j ACCEPT
$IPTABLES -A OUTPUT -m limit -p ICMP --limit 1 --limit-burst 2 -j ACCEPT
#Erlauben von HTTP (Server und Client)
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 80 -j ACCEPT
#Erlauben von HTTPS (Server und Client) - vorbereitung
#$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp --sport 443 -j ACCEPT
#Erlauben von FTP (Client)
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 21 -j ACCEPT
#Erlauben von IMAP (Server und Client)
$IPTABLES -A INPUT -p tcp --dport 143 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 143 -j ACCEPT
#Erlauben von SSH (Server und Client)
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 22 -j ACCEPT
#Erlauben von SMTP (Server und Client)
$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 25 -j ACCEPT
#Erlauben von POP (Server und Client)
$IPTABLES -A INPUT -p tcp --dport 110 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 110 -j ACCEPT
# Erlauebn der Zeitsynchonisation
$IPTABLES -A INPUT -p udp --dport 123 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 123 -j ACCEPT
#Erlauben von MySQL (Server und Clients)
$IPTABLES -A INPUT -p tcp --dport 3306 -j DROP
#ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 3306 -j DROP
## die beiden hier oberhalb sind erstmal mit absicht aus // vorbereitung
#$IPTABLES -A INPUT -p udp --dport 3306 -j ACCEPT
#$IPTABLES -A OUTPUT -p udp --sport 3306 -j ACCEPT
#Erlauben von Webmin (auf port 10000) - vorbereitung
#$IPTABLES -A INPUT -p tcp --dport 10000 -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp --sport 10000 -j ACCEPT
# Erlauben aller hohen Ports fuer passives ftp etc
$IPTABLES -A OUTPUT -p TCP --sport $HIGH_PORTS -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $HIGH_PORTS -j ACCEPT
#nmap XMAS-Pakete droppen
#dies Pakete sind nicht normal und werden nur von Portscanner verwendet
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
#nmap NULL-Pakete droppen
#dies Pakete sind nicht normal und werden nur von Portscanner verwendet
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# portmap oeffnen
$IPTABLES -A INPUT -p tcp --dport 111 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 111 -j ACCEPT
#ICMP-Fehlermeldungen (Destination unreachable,source quench,TTL exceded,)
#Diese Regeln sollten nicht deaktivert werden, da es sonst Paketverluste gibt
$IPTABLES -A INPUT -p icmp --icmp-type 3 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 4 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 11 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 12 -j ACCEPT
# Schluss und Logging
$IPTABLES -A INPUT -j LOG
$IPTABLES -A OUTPUT -j LOG
$IPTABLES -A INPUT -p tcp --dport auth -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -j DROP
$IPTABLES -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -p udp -j REJECT
$IPTABLES -A INPUT -j DROP
# final anzeigen was man verbrochen hat
$IPTABLES -L >newtables.asc
