DSST Linux FireWall - فایروال لینوکس
این برنامه همونطور که از اسمش مشخصه فایروال تحت لینوکس هست و بر پایه iptables نوشته شده.
پورت های مورد نیاز سرور در اون اضافه شده اما اگر نیاز به تغیراتی بود خودتون مختار هستید. (اوپن سورس هست)
لطفا کپی رایت برنامه رو حذف نکنید.
اموزش نصب :
ابتدا در محیط ترمینال لینوکس خود به یوزر root لاگین کنید و سپس :
کد:
wget http://dsst.ir/dsst.tar.gz
tar -zxf 'dsst.tar.gz'
cd dsst
chmod +x install.sh
./install.sh
نصب به پایان میرسد.
برای اجرا :
کد:
service dsst (start/stop/restart)
برای رفتن فایروال به حالت خودکار :
کد:
chkconfig --add dsst
chkconfig --level 345 dsst on
اگر عمل بالا انجام نشه بعد از ریبوت سرور سرویس مجدد اجرا نخواهد شد اما قوانین در iptables باقی میمونند.
موفق باشید.
پاسخ : DSST Linux FireWall - فایروال لینوکس
Uninstall به چه صورت هست؟
پاسخ : DSST Linux FireWall - فایروال لینوکس
برای uninstall هم : service dsst stop chkconfig dsst off با همین به طور کامل استاپ میشه و برای حذف نهایی : rm -rf /etc/init.d/dsst برای نسخه بعدی un-installer هم نوشته میشه اگه نظری - پیشنهادی چیزی بود که میتونست به بهبود این اسکریپت کمک کنه حتما بیان کنید. موفق باشید.
پاسخ : DSST Linux FireWall - فایروال لینوکس
رو Centos 5.9 - 6.4 تست شد و درست کار کرد.
رو fedora - redhat هم درست کار کرد.
رو suse هم درست کار کرد.
رو debian 7 و ubunto 13 هم تست شد اما ارور هایی مبنی بر نصب نبودن پلاگین های xtables دریافت شد که با نصب اونا درست میشه اگه کسی دبیان یا اوبونتو داره پلاگین هاشو نصب کنه تست کنه نتیجه رو بگه.
free bsd هم کلا نداشتم تست کنم :d اگه کسی داشت تست کنه و نتیجه رو بگه.
پاسخ : DSST Linux FireWall - فایروال لینوکس
خب چه ویژگی هایی داره چه مزیت هایی داره ؟
پاسخ : DSST Linux FireWall - فایروال لینوکس
نقل قول:
نوشته اصلی توسط
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
یک سری پورت ها بسته میشند
و بعضی ها فقط برای لوکال
میتونه مفید باشه.
پاسخ : DSST Linux FireWall - فایروال لینوکس
اولا که یک سری پورت بسته نمیشه یک سری پورت باز میشه و بقیه پورت ها به طور پیش فرض deny میشه.
دوما اگه فقط پورت بود که ...
محدودیت هایی روی پروتکل icmp میذاره و از حملات synflood هم جلوگیری میکنه.
packet هارو در دقیقه محدود میکنه که باعث میشه علاوه بر اینکه سرعت کم نشه همون تاثیر محدودیت در ثانیه رو بگذاره.
به طور کلی تا حد زیادی از حملات ddos جلوگیری میکنه.
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
این قسمتم که کلا حساب نکردین دیگه :D
عمل *****ینگ بسته ها رو هم انجام میده.
پاسخ : DSST Linux FireWall - فایروال لینوکس
من به طور معمول رو سرور هام همیشه دیداس دارم سعی می کنم تست کنم بینم چقدر کارایی داره!
پاسخ : DSST Linux FireWall - فایروال لینوکس
برای سرور مجازی Open Vz این ارور رو میده! فکر نکنم اکی باشه برای این نوع مجازی ساز!
کد:
FATAL: Module ip_tables not found.
iptables v1.4.7: can't initialize iptables table `filter': iptables who? (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
پاسخ : DSST Linux FireWall - فایروال لینوکس
منم به طور معمول دیداس دارم
خودم یه دیداسر نوشتم تست زدم روش بعد از چند ثانیه ایپی سرور هایی که باهاش اتک دادم بلاک کرد.
جمع رم کل سرور ها تقریبا گیگ بود :D
روی open vz تست نکردم چون نداشتم اما اروری که قرار دادین مربوط به نصب نبودن ماژول های iptables هست برای اطلاعات بیشتر و اموزش نصب و اسم دقیق پکیج هاش میتونید سرچ کنید.
اما در کل در open vz منابع نرم افزاری نیز شیر هستند یعنی rpm ایپی تیبلز هم با سرور اصلی یکی هست پس اگه سرور اصلی iptables اش یه طور دیگه باشه شما نمیتونید خارج از محدوده اون رول بدین.