was haltet ihr von so einer konfiguration?
was kann man besser machen, oder was ist nicht so gut gelöst?
Code: Select all
#!/bin/sh -x
# Verbiete alles bevor benötigte Protokolle und Ports
# gezielt freigeschaltet werden
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -F
# Schalte Loopback Device zur internen Kommunikation frei!
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Debug - alles loggen:
#iptables -A INPUT -j LOG
#iptables -A OUTPUT -j LOG
# Logge fragwürdige Pakete
iptables -A INPUT -m state --state INVALID -j LOG
iptables -A INPUT -p tcp --tcp-flags ALL, FIN,URG,PSH -j LOG
iptables -A INPUT -p tcp --tcp-flags ALL, NONE -j LOG
iptables -A INPUT -p tcp --tcp-flags NONE, ALL -j LOG
iptables -A INPUT -p ICMP --icmp-type
destination-unreachable -j LOG
iptables -A INPUT -p ICMP --icmp-type source-quench -j LOG
iptables -A INPUT -p ICMP --icmp-type redirect -j LOG
iptables -A INPUT -p ICMP --icmp-type
address-mask-request -j LOG
# Verbiete unsinnige Pakete
#iptables -A INPUT -i eth0 -s 192.168.0.25 -j DROP
#iptables -A INPUT -i eth0 -s 127.0.0.0/255.0.0.0 -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
# ------------ SSH --------------------------
# Ausgehende Verbindung zu fremdem SSH-Server
iptables -A OUTPUT -p TCP -d 0/0 --dport 22
-s 0/0 --sport 1024:65535 -o eth0 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 22 -d 0/0 --dport
1024:3005 -m state --state RELATED,ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 22 -d 0/0 --dport
3007:65535 -m state --state RELATED,ESTABLISHED -i eth0 -j ACCEPT
# Eingehende Verbindung zum SSH Server des Webservers
iptables -A INPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 22 -i eth0 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0/0 --sport 22 -o eth0 -j ACCEPT
# ------------ http(s) --------------------------
# Zugriff auf den Webserver
iptables -A INPUT -p TCP -d 0/0 --dport 80 -s 0/0
--sport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p TCP -s 0/0 --sport 80 -d 0/0
--dport 1024:65535 -j ACCEPT
iptables -A INPUT -p TCP -d 0/0 --dport 443 -s 0/0
--sport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p TCP -s 0/0 --sport 443 -d 0/0
--dport 1024:65535 -j ACCEPT
# Ausgehender Zugriff auf fremde http Inhalte
iptables -A OUTPUT -p TCP -d 0/0 --dport 80
-s 0/0 --sport 1024:65535 -o eth0 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 80 -d 0/0 --dport
1024:3005 -m state --state RELATED,ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 80 -d 0/0 --dport
3006:65535 -m state --state RELATED,ESTABLISHED -i eth0 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 443
-s 0/0 --sport 1024:65535 -o eth0 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 443 -d 0/0 --dport
1024:3005 -m state --state RELATED,ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 443 -d 0/0 --dport
3006:65535 -m state --state RELATED,ESTABLISHED -i eth0 -j ACCEPT
# ------------ ftp --------------------------
# Eingehender Zugriff auf FTP-Server (aktiver Modus)
iptables -A INPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 20:21 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0/0 --sport 20:21 -j ACCEPT
# Passiver Modus; für eingehende Verbindung
iptables -A INPUT -p 6 -d 0/0 --dport 1024:3005
-s 0/0 --sport 1024:65535 -j ACCEPT
iptables -A INPUT -p 6 -d 0/0 --dport 3007:65535
-s 0/0 --sport 1024:65535 -j ACCEPT
# Ausgehender Zugriff auf vertrauenswürdigen FTP-Server
# Aktiver Modus, Server mit IP-Adresse identifizieren!
iptables -A OUTPUT -p TCP -d 82.165.36.79 --dport 20:21
-s 0/0 --sport 1024:65535 -j ACCEPT
iptables -A INPUT -p TCP -s 82.165.36.79 --sport 20:21
-d 0/0 --dport 1024:3005 -j ACCEPT
iptables -A INPUT -p TCP -s 82.165.36.79 --sport 20:21
-d 0/0 --dport 3007:65535 -j ACCEPT
# Ausgehender Zugriff auf fremde FTP-Server - passiver Modus
iptables -A OUTPUT -p TCP -d 0/0 --dport 21
-s 0/0 --sport 1024:65535 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 21 -d 0/0
--dport 1024:3005 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 21 -d 0/0
--dport 3006:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0/0 --sport 1024:65535 -j ACCEPT
iptables -A INPUT -p TCP -d 0/0 --dport 1024:65535 -s 0/0
--sport 1024:3005 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -d 0/0 --dport 1024:65535 -s 0/0
--sport 3007:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
# ------------ Mailserver --------------------------
# Einlieferung von Mails an Mail-Server
iptables -A INPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 25 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0/0 --sport 25 -j ACCEPT
# Versand von Mails des lokalen smtp Servers
iptables -A OUTPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 25:25 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 25:25 -d 0/0
--dport 1024:3005 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 25:25 -d 0/0
--dport 3007:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Zugriff auf pop3(s)
iptables -A INPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 995 -i eth0 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0.0.0.0/0 --sport 995 -o eth0 -j ACCEPT
# Zugriff auf pop3
iptables -A INPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 110 -i eth0 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0.0.0.0/0 --sport 110 -o eth0 -j ACCEPT
# ------------ auth/ident --------------------------
iptables -A INPUT -p TCP -d 0/0 --dport 113 -j REJECT
# ------------ DNS ---------------------------------
# Anfragen an externe Nameserver von Resolver / Bind9
iptables -A OUTPUT -p UDP -d 0/0 --dport 53
-s 0/0 --sport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 53
-s 0/0 --sport 1024:65535 -j ACCEPT
iptables -A INPUT -p UDP -s 0/0 --sport 53 -d 0/0
--dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 53 -d 0/0
--dport 1024:3005 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 53 -d 0/0
--dport 3007:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Eingehende Anfragen an lokalen Nameserver
iptables -A OUTPUT -p UDP -d 0/0 --dport 53
-s 0/0 --sport 53 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 53
-s 0/0 --sport 53 -j ACCEPT
iptables -A INPUT -p UDP -s 0/0 --sport 53
-d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 53
-d 0/0 --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP -d 0/0 --dport 1024:65535
-s 0/0 --sport 53 -j ACCEPT
iptables -A OUTPUT -p TCP -d 0/0 --dport 1024:65535
-s 0/0 --sport 53 -j ACCEPT
iptables -A INPUT -p UDP -s 0/0 --sport 1024:65535
-d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 --sport 1024:65535
-d 0/0 --dport 53 -j ACCEPT
# ------------ Timeserver --------------------------
iptables -A OUTPUT -p UDP -s 0/0 --sport 123
-d 82.165.36.79 --dport 123 -j ACCEPT
iptables -A INPUT -p UDP -d 0/0 --dport 123
-s 82.165.36.79 --sport 123 -j ACCEPT
# ------------ Ping --------------------------
iptables -A INPUT -p icmp -s 123.45.67.89
--icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp -d 123.45.67.89
--icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp
--icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp
--icmp-type echo-request -j ACCEPT
# ------------ Parameter-Problem ------
iptables -A INPUT -p icmp
--icmp-type parameter-problem -j ACCEPT
iptables -A OUTPUT -p icmp
--icmp-type parameter-problem -j ACCEPT