boom123
06.08.10, 09:45
hey leute,
bin grade dabei nen packetfilter firewall script für unseren rooti (debian lenny) zu schreiben. da bei uns aber ma das erste interface (eth0) geschrottet wurde, und das anschließend der hoster auf eth1 umgestellt hat, weiss ich jetzt nicht ob das so hinhaut!
hier mal mein script:
#!/bin/sh
# Firewall Script by B00M
echo "Initialisiere Firewall ..."
# Banliste für blacklisted Users
BLACKLIST=/etc/blacklist.txt
# Module laden ...
modprobe ip_conntrack_ftp
# Firewall Regeln löschen
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -Z
# Eigene Chains erstellen
iptables -N DROPIT
iptables -N ACCEPTIT
# Loopback-Kommunikation
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Stateful Inspection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROPIT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Eigene Chains DROPIT und ACCEPTIT konfigurieren
iptables -A DROPIT -j LOG --log-prefix "FW-DROP: "
iptables -A DROPIT -j DROP
iptables -A ACCEPTIT -j LOG --log-prefix "FW-ACCEPT: "
iptables -A ACCEPTIT -j ACCEPT
# SSH (in)
iptables -A INPUT -p tcp --dport ssh -j ACCEPTIT
# SSH (out)
#iptables -A OUTPUT -p tcp --dport ssh -j ACCEPTIT
# ICMP
iptables -A INPUT -p icmp -j ACCEPTIT
iptables -A OUTPUT -p icmp -j ACCEPTIT
# DNS
#iptables -A INPUT -p udp --dport 53 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 53 -j ACCEPTIT
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPTIT
#iptables -A OUTPUT -p tcp --dport 53 -j ACCEPTIT
# WWW (Port80)
iptables -A INPUT -p tcp --dport 80 -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPTIT
# WWW (Port443 - SSL/HTTPS)
#iptables -A INPUT -p tcp --dport 443 -j ACCEPTIT
#iptables -A OUTPUT -p tcp --dport 443 -j ACCEPTIT
# MAIL
iptables -A INPUT -p tcp --dport 25 -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 110 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 143 -j ACCEPTIT
# Webmin
iptables -A INPUT -p tcp --dport xxxx -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport xxxx -j ACCEPTIT
# FTP
iptables -A INPUT -p tcp --dport xx -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport xx -j ACCEPTIT
# Ban blacklisted IPs
for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
echo "Blocking $x..."
iptables -A INPUT -t filter -s $x -j DROP
done
da bei uns zwar ein mailserver läuft, der aber NUR zum senden, und nicht zum empfangen benutzt wird, bräuchte ich glaub ich auch das "iptables -A OUTPUT -p tcp --dport 25 -j ACCEPTIT" nicht, oder? oder sollte eher DROPIT sein? das die firewall ankommende packete gleich verwirft?
den code für die blackliste hab ich mal irgendwo im netz gefunden. kann ich das so übernehmen?
thx schonmal!
bin grade dabei nen packetfilter firewall script für unseren rooti (debian lenny) zu schreiben. da bei uns aber ma das erste interface (eth0) geschrottet wurde, und das anschließend der hoster auf eth1 umgestellt hat, weiss ich jetzt nicht ob das so hinhaut!
hier mal mein script:
#!/bin/sh
# Firewall Script by B00M
echo "Initialisiere Firewall ..."
# Banliste für blacklisted Users
BLACKLIST=/etc/blacklist.txt
# Module laden ...
modprobe ip_conntrack_ftp
# Firewall Regeln löschen
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -Z
# Eigene Chains erstellen
iptables -N DROPIT
iptables -N ACCEPTIT
# Loopback-Kommunikation
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Stateful Inspection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROPIT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Eigene Chains DROPIT und ACCEPTIT konfigurieren
iptables -A DROPIT -j LOG --log-prefix "FW-DROP: "
iptables -A DROPIT -j DROP
iptables -A ACCEPTIT -j LOG --log-prefix "FW-ACCEPT: "
iptables -A ACCEPTIT -j ACCEPT
# SSH (in)
iptables -A INPUT -p tcp --dport ssh -j ACCEPTIT
# SSH (out)
#iptables -A OUTPUT -p tcp --dport ssh -j ACCEPTIT
# ICMP
iptables -A INPUT -p icmp -j ACCEPTIT
iptables -A OUTPUT -p icmp -j ACCEPTIT
# DNS
#iptables -A INPUT -p udp --dport 53 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 53 -j ACCEPTIT
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPTIT
#iptables -A OUTPUT -p tcp --dport 53 -j ACCEPTIT
# WWW (Port80)
iptables -A INPUT -p tcp --dport 80 -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPTIT
# WWW (Port443 - SSL/HTTPS)
#iptables -A INPUT -p tcp --dport 443 -j ACCEPTIT
#iptables -A OUTPUT -p tcp --dport 443 -j ACCEPTIT
iptables -A INPUT -p tcp --dport 25 -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 110 -j ACCEPTIT
#iptables -A INPUT -p tcp --dport 143 -j ACCEPTIT
# Webmin
iptables -A INPUT -p tcp --dport xxxx -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport xxxx -j ACCEPTIT
# FTP
iptables -A INPUT -p tcp --dport xx -j ACCEPTIT
iptables -A OUTPUT -p tcp --dport xx -j ACCEPTIT
# Ban blacklisted IPs
for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
echo "Blocking $x..."
iptables -A INPUT -t filter -s $x -j DROP
done
da bei uns zwar ein mailserver läuft, der aber NUR zum senden, und nicht zum empfangen benutzt wird, bräuchte ich glaub ich auch das "iptables -A OUTPUT -p tcp --dport 25 -j ACCEPTIT" nicht, oder? oder sollte eher DROPIT sein? das die firewall ankommende packete gleich verwirft?
den code für die blackliste hab ich mal irgendwo im netz gefunden. kann ich das so übernehmen?
thx schonmal!