0
私はルート攻撃からDOSサーバーを保護したいので、自分のニーズに合わせてiptableルールをオンラインで編集したスクリプトが見つかりました。 問題:これらのiptableルールを有効にすると、接続は遅延されません.wgetやapt-get updateなどのものは、接続する前に3〜4秒待つ必要があります。 tf2-serverへの接続にも22秒かかります。 これらのルールがなければ、すべて正常に動作します。接続タイムアウトとiptableルール
# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# MY_REJECT-Chain
iptables -N MY_REJECT
# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -j DROP
# Reject packets from RFC1918 class networks (i.e., spoofed)
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
iptables -A INPUT -d 224.0.0.0/4 -j DROP
iptables -A INPUT -s 240.0.0.0/5 -j DROP
iptables -A INPUT -d 240.0.0.0/5 -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 239.255.255.0/24 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -d 194.97.114.3 -j DROP
# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
# SynFlood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# PortScan
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Ping-of-Death
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# HTTP Limit pro Minute
iptables -A INPUT -i eth0 -p tcp --dport 80 -j LOG --log-prefix "Apache Access" --log-level 6 -m limit --limit 3/m
# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# DNS
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 53 -j ACCEPT
# SSH
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT
# Web
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT
# VAC Friends Autopudate etc
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 6000:6003 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 7001:7002 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 27005 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 27010 -j ACCEPT
#Team Fortress 2
iptables -A INPUT -i eth0 -p udp --dport 27000 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27000 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27001 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27001 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27002 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27002 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27003 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27003 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27004 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27004 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27005 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27005 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27006 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27006 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27007 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27007 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27008 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27008 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27009 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27009 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27010 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27010 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27011 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27011 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27012 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27012 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27013 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27013 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27014 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27014 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27015 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27015 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27015 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27016 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27016 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27017 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27017 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27018 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27018 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27019 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27019 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27020 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27020 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27021 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27021 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27022 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27022 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27023 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27023 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27024 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27024 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27025 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27025 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27026 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27026 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27027 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27027 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27028 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27028 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27029 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27029 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 27030 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 27030 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 27015 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 27015 -j ACCEPT
# Teamspeak3
iptables -A INPUT -i eth0 -p udp --dport 9987 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 30033 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 10011 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 2008 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 9987 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 30033 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 10011 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 2008 -j ACCEPT
# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
# Speicherallozierung und -timing für IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time
# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1
# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2
事前のおかげで、 prpht