
نوشته اصلی توسط
InterServer.ir
خب چه ویژگی هایی داره چه مزیت هایی داره ؟
از داخل سورس میتونید ببینید
کد:
#!/bin/bash
#
# ---------------------------------
# DSST Linux FireWall
# Licence : Linux
# ---------------------------------
#
# Title : DSST Linux FireWall
# Code : Bash
# Author : Sajjad13and11
# Home : DSST.Ir
# Gr33tz : Mr.Epsilon | Cr4ck3r | Mr Milad | Mr Defacer | _ALI_ |
# Gr33tz : Mr Killer| Dj.TiniVini | Security | Black King |
# Gr33tz : Am!r | Beni Vanda | E2MAEN | Mr.F@RDIN | Ir Anonymous | Mr Maj!d |
# Gr33tz : M.R.S.CO | Im4n | And All Of DSST.Ir Friends
# Note :
# You need Xtables addons : DROP - ALLOW - REJECT - INVALID
# You need :SYNFLOOD - LOCALOUTPUT - LOGDROPIN - INVDROP - ALLOWIN - DENYIN - ALLOWOUT - DENYOUT
# This script don't work on IPV6
# test this - uncommecnt mean if u have test the rule and don,t have a problem , uncomment it
#--------------------------------------------------------------------------------------------------#
case "$1" in
start):
echo " "
echo " ______ ______ ______ _________ "
echo "/_____/\ /_____/\ /_____/\ /________/\ "
echo "\:::_ \ \\::::_\/_\::::_\/_\__.::.__\/ "
echo " \:\ \ \ \\:\/___/\\:\/___/\ \::\ \ "
echo " \:\ \ \ \\_::._\:\\_::._\:\ \::\ \ "
echo " \:\/.:| | /____\:\ /____\:\ \::\ \ "
echo " \____/_/ \_____\/ \_____\/ \__\/ "
echo " "
echo " ___ ___ ___ ___ ___ ___ ___ ___ "
echo " /\ \ /\ \ /\ \ /\ \ /\__\ /\ \ /\__\ /\__\ "
echo " /::\ \ _\:\ \ /::\ \ /::\ \ /:/\__\ /::\ \ /:/ / /:/ / "
echo " /::\:\__\ /\/::\__\ /::\:\__\ /::\:\__\ /:/:/\__\ /::\:\__\ /:/__/ /:/__/ "
echo " \/\:\/__/ \::/\/__/ \;:::/ / \:\:\/ / \::/:/ / \/\::/ / \:\ \ \:\ \ "
echo " \/__/ \:\__\ |:\/__/ \:\/ / \::/ / /:/ / \:\__\ \:\__\ "
echo " \/__/ \|__| \/__/ \/__/ \/__/ \/__/ \/__/ "
echo " "
sleep 3
echo "[*] Configure Iptables Input... "
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
iptables -A INPUT -s 8.8.4.4 ! -i lo -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -s 8.8.4.4 ! -i lo -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -s 8.8.4.4 ! -i lo -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A INPUT -s 8.8.4.4 ! -i lo -p udp -m udp --sport 53 -j ACCEPT
iptables -A INPUT -s 8.8.8.8 ! -i lo -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -s 8.8.8.8 ! -i lo -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -s 8.8.8.8 ! -i lo -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A INPUT -s 8.8.8.8 ! -i lo -p udp -m udp --sport 53 -j ACCEPT
iptables -A INPUT ! -i lo -j LOCALINPUT
iptables -A INPUT ! -i lo -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j SYNFLOOD
iptables -A INPUT ! -i lo -p tcp -j INVALID
iptables -A INPUT ! -i lo -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT ! -i lo -p tcp -m state --state NEW -m tcp --dport 30000:35000 -j ACCEPT
iptables -A INPUT ! -i lo -p udp -m state --state NEW -m udp --dport 20 -j ACCEPT
iptables -A INPUT ! -i lo -p udp -m state --state NEW -m udp --dport 21 -j ACCEPT
iptables -A INPUT ! -i lo -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
iptables -A INPUT ! -i lo -p icmp -m icmp --icmp-type 8 -m limit --limit 60/min -j ACCEPT
iptables -A INPUT ! -i lo -p icmp -m icmp --icmp-type 0 -m limit --limit 60/min -j ACCEPT
iptables -A INPUT ! -i lo -p icmp -m icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT ! -i lo -p icmp -m icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT ! -i lo -j LOGDROPIN
sleep 1
echo "[*] Configure Iptables OUTPUT ... "
iptables -A OUTPUT -d 8.8.4.4 ! -o lo -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.4.4 ! -o lo -p udp -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.4.4 ! -o lo -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.4.4 ! -o lo -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.8.8 ! -o lo -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.8.8 ! -o lo -p udp -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.8.8 ! -o lo -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -d 8.8.8.8 ! -o lo -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT ! -o lo -j LOCALOUTPUT
iptables -A OUTPUT ! -o lo -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 587 -m owner --gid-owner mail -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 587 -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 587 -j DROP
iptables -A OUTPUT -p tcp -m tcp --dport 465 -m owner --gid-owner mail -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 465 -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 465 -j DROP
iptables -A OUTPUT -p tcp -m tcp --dport 25 -m owner --gid-owner mail -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 25 -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 25 -j DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -j INVALID
iptables -A OUTPUT ! -o lo -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 113 -j ACCEPT
iptables -A OUTPUT ! -o lo -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m state --state NEW -m udp --dport 20 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m state --state NEW -m udp --dport 21 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m state --state NEW -m udp --dport 113 -j ACCEPT
iptables -A OUTPUT ! -o lo -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
iptables -A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT ! -o lo -j LOGDROPOUT
sleep 1
echo "[*] Configure Iptables INVALID ... "
iptables -A INVALID -m state --state INVALID -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,ACK FIN -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags PSH,ACK PSH -j INVDROP
iptables -A INVALID -p tcp -m tcp --tcp-flags ACK,URG URG -j INVDROP
#test it - uncomment#iptables -A INVALID ! -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j INVDROP
iptables -A INVDROP -j DROP
sleep 1
echo "[*] Configure Iptables LOCALINPUT ... "
iptables -A LOCALINPUT ! -i lo -j ALLOWIN
iptables -A LOCALINPUT ! -i lo -j DENYIN
iptables -A LOCALOUTPUT ! -o lo -j ALLOWOUT
iptables -A LOCALOUTPUT ! -o lo -j DENYOUT
sleep 1
echo "[*] Configure Iptables LOGDROPIN ... "
iptables -A LOGDROPIN -p tcp -m tcp --dport 67 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 67 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 68 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 68 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 111 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 111 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 113 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 113 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 135:139 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 135:139 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 445 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 445 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 500 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 500 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 513 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 513 -j DROP
iptables -A LOGDROPIN -p tcp -m tcp --dport 520 -j DROP
iptables -A LOGDROPIN -p udp -m udp --dport 520 -j DROP
iptables -A LOGDROPIN -p tcp -m limit --limit 60/min -j LOG --log-prefix "DSST: *TCP_IN Blocked* "
iptables -A LOGDROPIN -p udp -m limit --limit 60/min -j LOG --log-prefix "DSST: *UDP_IN Blocked* "
iptables -A LOGDROPIN -p icmp -m limit --limit 60/min -j LOG --log-prefix "DSST: *ICMP_IN Blocked* "
iptables -A LOGDROPIN -j DROP
sleep 1
echo "[*] Configure Iptables LOGDROPOUT ... "
iptables -A LOGDROPOUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 30/min -j LOG --log-prefix "Firewall: *TCP_OUT Blocked* " --log-uid
iptables -A LOGDROPOUT -p udp -m limit --limit 60/min -j LOG --log-prefix "DSST: *UDP_OUT Blocked* " --log-uid
iptables -A LOGDROPOUT -p icmp -m limit --limit 60/min -j LOG --log-prefix "DSST: *ICMP_OUT Blocked* " --log-uid
iptables -A LOGDROPOUT -j DROP
sleep 1
echo "[*] Configure Iptables PORTFLOOD ... "
iptables -A PORTFLOOD -m limit --limit 60/min -j LOG --log-prefix "DSST: *Port Flood* "
iptables -A PORTFLOOD -j DROP
sleep 1
echo "[*] Configure Iptables SYNFLOOD ... "
iptables -A SYNFLOOD -m limit --limit 60/min --limit-burst 300 -j RETURN
iptables -A SYNFLOOD -m limit --limit 60/min -j LOG --log-prefix "DSST: *SYNFLOOD Blocked* "
iptables -A SYNFLOOD -j DROP
sleep 1
echo "[*] Save Iptables Rules ... "
service iptables save
echo "[*] Configure Complete [OK]"
echo "[*] DSST Linux FireWall "
echo "[*] IF you have been get an error for xtables [please install xtables addons] "
exit 0
;;
stop)
echo "[*] Stoping Firewall ... "
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t filter -F
echo "[*] Firewall Was Stopped"
exit 0
;;
restart)
echo "[*] restarting Firewall ... "
/etc/init.d/dsst stop
/etc/init.d/dsst start
;;
*)
echo "Usage: service dsst {start|stop|restart}"
exit 1
;;
esac
یک سری پورت ها بسته میشند
و بعضی ها فقط برای لوکال
میتونه مفید باشه.