ein User von blocklist, an dieser Stelle noch mal ein recht herzliches Dankeschön!, hat uns ein Skript zur Verfügung gestellt, worüber man als Cronjob die aktuellen Listen von blocklist abholen und in die eigene Firewall importieren kann:
Code: Alles auswählen
#!/bin/bash
IPT="/sbin/iptables"
#WARNING !!!!READ THE FILE!!!!
#Get Blocklist from blocklist.de
#rember to use cronjob
#use all,ssh,mail,apache,ftp,asterisk,bots
#see http://blocklist.de for more info.
ID=all
URL=https://www.blocklist.de/lists/$ID.txt -O /etc/blocked.fw
clear
echo "Starting IPv4 Wall..."
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
modprobe ip_conntrack
BADIPS=$(egrep -v -E "^#|^$" /etc/blocked.fw)
PUB_IF="eth0"
#unlimited
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# DROP all incomming traffic
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# block all bad ips
for ip in $BADIPS
do
$IPT -A INPUT -s $ip -j DROP
$IPT -A OUTPUT -d $ip -j DROP
done
# sync
$IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Drop Syn"
$IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -j DROP
# Fragments
$IPT -A INPUT -i ${PUB_IF} -f -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fragments Packets"
$IPT -A INPUT -i ${PUB_IF} -f -j DROP
# block bad stuff
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL ALL -j DROP
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "NULL Packets"
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -j DROP # NULL packets
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "XMAS Packets"
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fin Packets Scan"
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -j DROP # FIN packet scans
$IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
# Allow full outgoing connection but no incomming stuff
$IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#// allow Services
#SSH
$IPT -A INPUT -p tcp --destination-port 22 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 22 -j ACCEPT
#OPENVPN
#$IPT -A INPUT -p tcp --destination-port 943 -j ACCEPT
#$IPT -A OUTPUT -p tcp --sport 943 -j ACCEPT
#SMTP
#$IPT -A INPUT -p tcp --destination-port 25 -j ACCEPT
#$IPT -A OUTPUT -p tcp --sport 25 -j ACCEPT
#POP3
#$IPT -A INPUT -p tcp --destination-port 110 -j ACCEPT
#$IPT -A OUTPUT -p tcp --sport 110 -j ACCEPT
#IMAP
#$IPT -A INPUT -p tcp --destination-port 139 -j ACCEPT
#$IPT -A OUTPUT -p tcp --sport 139 -j ACCEPT
#APACHE2
#$IPT -A INPUT -p tcp --destination-port 80 -j ACCEPT
#$IPT -A OUTPUT -p tcp --sport 80 -j ACCEPT
#// Drop/block Services
#SMB
$IPT -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
$IPT -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT
#PING
$IPT -A OUTPUT -p icmp --icmp-type echo-request -j DROP
#PORT SCANNING
$IPT -A INPUT -p tcp –tcp-flags ALL FIN -j DROP
$IPT -A INPUT -p tcp –tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
$IPT -A INPUT -p tcp –tcp-flags ALL FIN,PSH,URG -j DROP
# Log everything else
# *** Required for psad ****
$IPT -A INPUT -j LOG
$IPT -A FORWARD -j LOG
$IPT -A INPUT -j DROP
# Start ipv6 firewall
# echo "Starting IPv6 Wall..."
#/root/scripts/start6.fw
exit 0
Falls jemand weitere Skripte hat, kann er diese gerne hier einfügen.
Ich werden in den nächsten Wochen den Text ums Skript übersetzten.... sollte aber sonst selbsterklärend sein.
script hier downloaden