Hallo,
sorry das ich den Thread nun hochpushe, allerdings wurde ich opfer eines Botnetzes..
Deswegen ging mein Serrver für ca 2 Stunden ausser gefecht (port 80) .. Seit dem hab ich mich mehr um die Sicherheit informiert..
Fail2ban ist installiert sowie Iptables.
Sobald ich diese aber lade, kann ich keinsterweise mit meinem Root verbinden... Sind die Regeln auch richtig?
Beim Synflood gibs mehre varianten ich weiss nun nicht genau welche ich nehmen soll.
Kann da eine mal drüberschauen? Mir tipps geben.. Wäre sehr nett
Bash
#!/bin/bash
IPTABLES=/sbin/iptables
# Logging options.
LOG="LOG --log-level debug --log-tcp-sequence --log-tcp-options"
LOG="$LOG --log-ip-options"
# Defaults for rate limiting
RLIMIT="-m limit --limit 5/s --limit-burst 30"
#in /etc/sysctl.conf einfügen
# net.ipv4.tcp_syncookies=1
# net.ipv4.conf.all.rp_filter = 1
# net.ipv4.conf.default.rp_filter = 1
# net.ipv4.ip_default_ttl = 61
# net.ipv4.tcp_fin_timeout = 30
# net.ipv4.tcp_syn_retries = 4
# net.ipv4.tcp_synack_retries = 4
# Kernel configuration. ENDE
#Leeren der Regeln usw.
$IPTABLES -F
$IPTABLES -X
#######################################################################LOG
# LOG packets, then ACCEPT.
$IPTABLES -N ACCEPTLOG
$IPTABLES -A ACCEPTLOG -j $LOG $RLIMIT --log-prefix "ACCEPT "
$IPTABLES -A ACCEPTLOG -j ACCEPT
# LOG packets, then DROP.
$IPTABLES -N DROPLOG
$IPTABLES -A DROPLOG -j $LOG $RLIMIT --log-prefix "DROP "
$IPTABLES -A DROPLOG -j DROP
# LOG packets, then REJECT.
# TCP packets are rejected with a TCP reset.
$IPTABLES -N REJECTLOG
$IPTABLES -A REJECTLOG -j $LOG $RLIMIT --log-prefix "REJECT "
$IPTABLES -A REJECTLOG -p tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A REJECTLOG -j REJECT
#Pakete von bekannten Verbindungen zulassen
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Drop any other ICMP traffic.
$IPTABLES -A INPUT -p icmp -j DROPLOG
$IPTABLES -A OUTPUT -p icmp -j DROPLOG
$IPTABLES -A FORWARD -p icmp -j DROPLOG
# Explicitly log and reject everything else.
#------------------------------------------------------------------------------
# Use REJECT instead of REJECTLOG if you don't need/want logging.
$IPTABLES -A INPUT -j REJECTLOG
$IPTABLES -A OUTPUT -j REJECTLOG
$IPTABLES -A FORWARD -j REJECTLOG
#######################################################################
# localhost ein und ausgehende verbindung (loopack)
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Ungültiger Traffic ein und ausgehend blocken
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
#Standart Regeln
$IPTABLES -P INPUT DROP # Deny all incoming connections
$IPTABLES -P OUTPUT ACCEPT # Allow all outgoing connections
$IPTABLES -P FORWARD DROP # Deny all forwaring
# PORT Scanners blocken
$IPTABLES -A INPUT -m state --state NEW -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -m state --state NEW -p tcp --tcp-flags ALL NONE -j DROP
#Ping blockieren
$IPTABLES -A INPUT -p icmp -j DROP
#SYN-Food
# $IPTABLES -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 30 -j DROP
#$IPTABLES -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 30 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --syn -m limit --limit 5/second --limit-burst 30 -j LOGDROP
# $IPTABLES -A INPUT -p tcp --syn --dport 80 -d ! 127.0.0.1 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset
# $IPTABLES -N syn-flood
# $IPTABLES -A syn-flood $RLIMIT -j RETURN
# $IPTABLES -A syn-flood -j LOG --log-prefix "SYN flood: "
# $IPTABLES -A syn-flood -j DROP
# $IPTABLES -N SYN_FLOOD
# $IPTABLES -A SYN_FLOOD -m limit --limit 5/second --limit-burst 30 -j RETURN
# $IPTABLES -A SYN_FLOOD -j REJECT
# $IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
# $IPTABLES -N SYN_FLOOD
# $IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
# $IPTABLES -A SYN_FLOOD -m limit --limit 5/s --limit-burst 30 -j RETURN
# $IPTABLES -A SYN_FLOOD -j DROPLOG
# Allow outgoing DNS requests. Few things will work without this.
$IPTABLES -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
# Apache2 HTTP (Webserver)
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
# Apache2 HTTPS (Webserver)
#$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
#$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
# SMTPS (Mailserver)
# $IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 465 -j ACCEPT
# Pop3 (Mailserver)
#$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 995 -j ACCEPT
#$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 995 -j ACCEPT
# SVN Server
# $IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 3690 -j ACCEPT
# SSH-Server
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 3426 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 3426 -j ACCEPT
# FTP Server.
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
# Mysql-Server
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT
#Webmin
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 3652 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 3652 -j ACCEPT
#Teamspeak3
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 9987 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 9987 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p udp --dport 9987 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport 9987 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p udp -m udp --dport 9987 -j ACCEPT #Teamspeak Zulassen
#IPs Allow (komplett)
$IPTABLES -A INPUT -s 185.5.173.122 -j ACCEPT
$IPTABLES -A INPUT -s 127.0.0.1 -j ACCEPT
#Block known-bad IPs (see http://www.dshield.org/top10.php).
# $IPTABLES -A INPUT -s 0.0.0.0/7 -j DROP
# $IPTABLES -A INPUT -s 2.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 5.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 7.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 10.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 23.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 27.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 31.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 36.0.0.0/7 -j DROP
# $IPTABLES -A INPUT -s 39.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 42.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 49.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 50.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 77.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 78.0.0.0/7 -j DROP
# $IPTABLES -A INPUT -s 92.0.0.0/6 -j DROP
# $IPTABLES -A INPUT -s 96.0.0.0/4 -j DROP
# $IPTABLES -A INPUT -s 112.0.0.0/5 -j DROP
# $IPTABLES -A INPUT -s 120.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 173.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 174.0.0.0/7 -j DROP
# $IPTABLES -A INPUT -s 176.0.0.0/5 -j DROP
# $IPTABLES -A INPUT -s 184.0.0.0/6 -j DROP
# $IPTABLES -A INPUT -s 192.0.2.0/24 -j DROP
# $IPTABLES -A INPUT -s 197.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 198.18.0.0/15 -j DROP
# $IPTABLES -A INPUT -s 223.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -s 224.0.0.0/3 -j DROP
#Blocks!
$IPTABLES -A INPUT -s 79.199.70.254 -j DROP
$IPTABLES -A INPUT -s 149.36.96.22 -j DROP
echo "Ip Tables Rules is loaded."
Alles anzeigen
Ein Spoiler wäre nützlich im forum