Ergebnis 1 bis 5 von 5
  1. #1
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard [IPtables] gegen (D)DoS o.ä...

    Hallo, ich hoffe ich spreche ein Thema an, was viele Root- (oder Virtual-)Server besitzer betrifft.., es geht um iptables.

    Gibt es eine gute Regel gegen (D)DoS?
    Wie handhabt ihr aktiv und passives FTP in euerer "Firewall"?

    Oder habt ihr sonst allgemein nützliche Infos?!
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  2. #2
    NoClose Wurm
    Registriert seit
    04.10.2007
    Beiträge
    189

    Standard

    ich weiß zwar auch nicht mehr den richtigen befehl, aber man kann es recht bequem einstellen das eine ip nicht mehr als eine bestimmte anzahl an verbindungen offen haben darf und des es nur eine bestimmte anzahl an verbindungsversuche in einer bestimmten zeit angenommen werden, sonst gehts direkt in dev0 und stört nicht mehr so wirklich, ausser das bissl bandbreite durch traffic flöten geht
    "du kriegst nichma nen ps2 stecker in die buchse ohne den zu vergrackeln.."

    "... woher wilst du wissen das ich ne ps2 hab??"


  3. #3
    Gesperrt
    Registriert seit
    09.06.2007
    Beiträge
    1.115

    Standard

    Du kannst _nichts_ gegen DDoS machen!
    Es kommt immer auf die Anzahl der floodenden Bots an .. also wie groß das Netz ist.

  4. #4
    Be root - Use Linux Avatar von H4x0r007
    Registriert seit
    27.06.2007
    Beiträge
    1.878

    Standard

    Zitat Zitat von Trii
    Du kannst _nichts_ gegen DDoS machen!
    Doch... Du kaufst dir eine 2x so gute Leitung wie Rapidshare hat und da kommts auf die paar Gigabits die da verloren gehen gar nicht mehr an...

    b2t: Gegen wenig Bots (ca. 400-700) kannst du schon was machen mit iptables. Am besten ist es, dass du nur die Protokolle und Ports erlaubst, die du auch wirklich brauchst. Wenn du alle anderen Pakete verwirfst, bist du schonmal gegen Syn-Attacken geschützt, was nicht heißt, dass die Leitung nicht verstopft werden kann durch die hohe Menge an Anfragen.

    Zitat Zitat von Hu5eL
    Wie handhabt ihr aktiv und passives FTP in euerer "Firewall"?
    Bitte benutze kein FTP! Wenn dann SFTP!
    (Da im FTP-Protokoll deine Zugangsdaten unverschlüsselt übertragen werden und dass ist auch nicht unbedingt das gelbe vom Ei)
    Bald 14 Jahre auf Free-Hack. Krass wie die Zeit vergeht...
    "Drei Dinge sind unendlich - das Universum, die menschliche Dummheit und die WinRAR-Testversion"

  5. #5
    Stanley Jobson
    Registriert seit
    09.12.2006
    Beiträge
    671

    Standard

    Zitat Zitat von H4x0r007
    Doch... Du kaufst dir eine 2x so gute Leitung wie Rapidshare hat und da kommts auf die paar Gigabits die da verloren gehen gar nicht mehr an...
    lol witzpille.


    gegen dos gibts nur nen schutz. komplett alles sperren. was rein und was raus geht. und dann gezielt das freigeben was du brauchst. für regeln die falsche pakete oder so droppen hab ich auch länger gesucht.

    Code:
        # Tabelle flushen
        sudo iptables -F
        sudo iptables -t nat -F
        sudo iptables -t mangle -F
        sudo iptables -X
        sudo iptables -t nat -X
        sudo iptables -t mangle -X
    
        # Default-Policies setzen
        sudo iptables -P INPUT DROP
        sudo iptables -P OUTPUT DROP
        sudo iptables -P FORWARD DROP
        sudo iptables -t nat -P PREROUTING ACCEPT
        sudo iptables -t nat -P POSTROUTING ACCEPT
        sudo iptables -t nat -P OUTPUT ACCEPT
        sudo iptables -t mangle -P PREROUTING ACCEPT
        sudo iptables -t mangle -P OUTPUT ACCEPT
        sudo iptables -t mangle -P FORWARD ACCEPT
        sudo iptables -t mangle -P INPUT ACCEPT
        sudo iptables -t mangle -P POSTROUTING ACCEPT
    
    
      # Loopback-Netzwerk-Kommunikation und LAN zulassen
        sudo iptables -A INPUT -i lo -j ACCEPT
        sudo iptables -A OUTPUT -o lo -j ACCEPT
    
        # Setzt die MMS (Maximum Segment Size) auf weniger 40Bytes für SYN,RST SYN Packete
        sudo iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    
        #TCP-SYN-Pakete ohne Status NEW droppen
        sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    
        # Korrupte Pakete zurückweisen
        sudo iptables -A INPUT -m state --state INVALID -j DROP
        sudo iptables -A OUTPUT -m state --state INVALID -j DROP
    
        # falsche gesendete pakete    
        sudo iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
    
        #Limiting the incoming icmp ping request:
        sudo iptables -A INPUT -p icmp -m limit --limit  1/s --limit-burst 1 -j ACCEPT
    
        # ping
        sudo iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
        #sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #
        sudo iptables -A INPUT -p icmp -j DROP
        sudo iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
        #sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT #
        sudo iptables -A OUTPUT -p icmp -j DROP
    
      #ping of death
        sudo iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    
        #connection tracking/passive connection
        sudo iptables -A OUTPUT -p tcp --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
        sudo iptables -A OUTPUT -p udp --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
        sudo iptables -A INPUT -p tcp --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
        sudo iptables -A INPUT -p udp --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
        sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    
       #ssh brutefoce schutz
        sudo iptables -A INPUT -p tcp --sport $sshport -m state --state NEW -m recent --set --name SSH -j ACCEPT
        sudo iptables -A INPUT -p tcp --sport $sshport -m recent --update --seconds 60 --hitcount 4 --rttl  --name SSH -j ULOG --ulog-prefix SSH_brute_force
        sudo iptables -A INPUT -p tcp --sport $sshport -m recent --update --seconds 60  --hitcount 4 --rttl --name SSH -j DROP
    
        #synflood
        sudo iptables -A INPUT -m state --state NEW -p tcp -m tcp --syn -m recent --name synflood --set
        sudo iptables -A INPUT -m state --state NEW -p tcp -m tcp --syn -m recent --name synflood --update --seconds 1 --hitcount 60 -j DROP
    
        # portscanner
        sudo iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP: " --log-level 6
        sudo iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
        sudo iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
        sudo iptables -A FORWARD -p tcp --tcp-flags ALL NONE -m limit --limit 1/h -j ACCEPT 
        sudo iptables -A FORWARD -p tcp --tcp-flags ALL ALL -m limit --limit 1/h -j ACCEPT
        sudo iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
        sudo iptables -A INPUT   -m recent --name portscan --rcheck --seconds 86400 -j DROP
        sudo iptables -A FORWARD -m recent --name portscan --rcheck --seconds 86400 -j DROP
        sudo iptables -A INPUT   -m recent --name portscan --remove
        sudo iptables -A FORWARD -m recent --name portscan --remove
    
        # Schutz vor IP-Spoofing aktivieren
        for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
        echo 1 > $f
        done
    
    
       #maximal 20 verbindungen in einer minute erlauben
        #sudo iptables -A INPUT -j LOG --log-prefix "ACCESS LIMIT: " --log-level 6 -m limit --limit 20/m
        #sudo iptables -A INPUT -m limit --limit 20/m -j DROP
    
        # max. 3 neue Verbindungen in 5 Sekunden pro Quelladresse erlauben
        sudo iptables -A INPUT -m state --state NEW -m recent --set
        sudo iptables -A INPUT -m state --state NEW -m recent --update --seconds 5 --hitcount 3 -j DROP
    
        # 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
    
        # 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
    
        # ICMP Dead Error Messages protection.
        echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
    
        # TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
        echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
        echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
        echo 0 > /proc/sys/net/ipv4/tcp_sack
        echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
    
        # Required to enable IPv4 forwarding.
        echo "1" > /proc/sys/net/ipv4/ip_forward
    
        # This enables dynamic address hacking.
        echo "1" > /proc/sys/net/ipv4/ip_dynaddr
    
        # This enables SYN flood protection.
        echo "1" > /proc/sys/net/ipv4/tcp_syncookies
    
        # Ping flood protection
        echo 1 > /proc/sys/net/ipv4/icmp_ratelimit
    
        # This enables source validation by reversed path according to RFC1812.
        echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
    
        # This option allows a subnet to be firewalled with a single IP address.
        echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
    
        # This kernel parameter instructs the kernel to ignore all ICMP
        echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    
        # This option can be used to accept or refuse source routed
        echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
    
        # This option can disable ICMP redirects.  ICMP redirects
        echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
    
        # Reverse-Path-Filter
        echo "2" > /proc/sys/net/ipv4/conf/all/rp_filter
    
        # Proxy-ARP ausschalten
        echo "0" > /proc/sys/net/ipv4/conf/all/proxy_arp
    
        # This option accepts only from gateways in the default gateways list.
        echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
    
        # This option logs packets from impossible addresses.
        echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
    
        # BOOTP-Relaying ausschalten
        echo 0 > /proc/sys/net/ipv4/conf/all/bootp_relay
    hab ich mal aus meiner fw zusammengewürfelt.



    das problem ist bei ddos. das ein einziger bot so geringe bedrohung verursacht das es die firewall nicht interessiert. aber die firewall betrachtet ur einselne verbindungen. nie alle verbindungen gleichzeitig. und aus vielen kleinen störungen wird halt eine gewaltig große..

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •