IPTables uporaben primer skripte - Firewall :)
Skripta napisana za blokiranje ddos napadov in zaznavanje razlicnih tehnik skeniranja portov. Skripta ne blokira vsa vrata!! Blokira le port za sshd server v primeru Bruteforce napada! Tako če želite, da skripta deluje še za druge servise, ki jih poganjate jo boste morali malo prilagoditi...
Trenutno sem zazal en ddos napad in iz njega potegnil to da vsak paket vsebuje enak TTL oz Time To Live za paket z vrednostjo 44. Zato tega ni problem blokirat.
Npr. tako:
Ob naslednjih napadim bom skripto posodobil...
Skripta:
Trenutno sem zazal en ddos napad in iz njega potegnil to da vsak paket vsebuje enak TTL oz Time To Live za paket z vrednostjo 44. Zato tega ni problem blokirat.
Npr. tako:
iptables -A INPUT -p TCP -s 0/0 -m ttl --ttl-eq=44 -j DROP
Ob naslednjih napadim bom skripto posodobil...
Skripta:
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# external interface
I=\"eth0\"
# server ports
SSHD=\"21\"
SQL=\"3306\"
# dovolimo 3 konekta z istega ipja v eni minuti na ta port
iptables -N SSH
iptables -A SSH -p TCP --dport $SSHD -i $I -m state --state NEW -m recent \
--set
iptables -A SSH -p TCP --dport $SSHD -i $I -m state --state NEW -m recent \
--update --seconds 60 --hitcount 4 -j LOG --log-prefix \"**HACK SSHD ( bruteforce? ): \" --log-level 4
iptables -A SSH -p TCP --dport $SSHD -i $I -m state --state NEW -m recent \
--update --seconds 60 --hitcount 4 -j DROP
iptables -N SQL
iptables -A SSH -p TCP --dport $SQL -i $I -j LOG --log-prefix \"*mySQL user: \" --log-level 1
iptables -A SSH -p TCP --dport $SQL -i $I -j DROP
iptables -N XMASScan
iptables -A XMASScan -p TCP --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix \"**NMAP XMAS SCAN: \" --log-level 7
iptables -A XMASScan -j DROP
iptables -N NULLScan
iptables -A NULLScan -p TCP --tcp-flags ALL NONE -j LOG --log-prefix \"**NMAP NULL SCAN: \" --log-level 7
iptables -A NULLScan -j DROP
iptables -N SYNRSTScan
iptables -A SYNRSTScan -p TCP --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix \"**NMAP SYN/RST SCAN: \" --log-level 7
iptables -A SYNRSTScan -j DROP
iptables -N SYNFINScan
iptables -A SYNFINScan -p TCP --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix \"**NMAP SYN/FIN SCAN: \" --log-level 7
iptables -A SYNFINScan -j DROP
# dovolimo vse na interfacu localhost
iptables -A INPUT -p ALL -i lo -j ACCEPT
iptables -A OUTPUT -p ALL -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# dovolimo vse z dolocenih ipjov
iptables -A INPUT -p ALL -s 192.168.123.123/32 -j ACCEPT
iptables -A INPUT -p ALL -s 192.168.123.151/32 -j ACCEPT
iptables -A INPUT -p ALL -s 213.161.22.50/32 -j ACCEPT # SM WEB - raven.triera.net
#iptables -A INPUT -p ALL -s 0/0 -j ACCEPT
iptables -A INPUT -p TCP -j SSH
# DROPING SPOFED DDOS ATTACK BY TTL=44 CAPTURED BY TCPDUMP
iptables -A INPUT -p TCP -s 0/0 -m ttl --ttl-eq=44 -j DROP
#Checking and droping XMAS, NULL, SYN/RST, SYN/FIN scan types
iptables -A INPUT -p tcp -s 0/0 -j XMASScan
iptables -A INPUT -p tcp -s 0/0 -j NULLScan
iptables -A INPUT -p tcp -s 0/0 -j SYNRSTScan
iptables -A INPUT -p tcp -s 0/0 -j SYNFINScan
# Zavrzemo IANA rezervirane privatne naslove. Ponavadi uporabljeni za spoofanje:)?
#iptables -A INPUT -s 70.0.0.0/8 -j DROP
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 192.168.0.0/16 -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
#iptables -A INPUT -j LOG --log-prefix \"*NORMAL LOG-INPUT: \"
#iptables -A FORWARD -j LOG --log-prefix \"*NORMAL LOG-FORWARD: \"
# vse ostalo zavrzemo!
#iptables -A INPUT -p ALL -j DROP
#sleep 30
#iptables -F
#iptables -X
#iptables -t nat -F
#iptables -t nat -X
Komentarji
Kaki komentar je welcome da se dodamo kay pa to ne
Drugač pa..super skripta..good work
nwm čas bo pokazal rezultate
tu pa je log od tcpdump_a v času napada:
http://desktop.m5it.org/ddos1.txt
Čudno je to da meje dosal sam z par racunalnikov vsaj zgleda tak.. more bit neki LUZER
upam da bere to BIK
a nima folk kj bol "pametnega" za poceT
Rfc.: http://books.google.si/books?id=PyqjvNNltqYC&pg=PA114&lpg=PA114&dq=iptables+SYN,RST+SYN,RST&source=bl&ots=XCjL8yXz6J&sig=hqgGfrCQHMx24AguLdTNYfgV3xU&hl=sl&sa=X&oi=book_result&resnum=5&ct=result#PPA115,M1
LP