آموزش نصب و کانفیگ حرفه ای فایروال CSF در لینوکس

0

در این آموزش قصد داریم نحوه نصب فایروال CSF بر روی انواع سرور های لینوکسی و همچنین کانفیگ آن را به شما آموزش دهیم

این کانفیگ برای سرور های مجازی و سرور های اختصاصی معتبر می باشد

وبمستران هوشمند وبمستر حرفه ای متخصص سرور لینوکس کانفیگ حرفه ای سرور طراحی سایت دستور ssh در cmd تنظیمات و کانفیگ CSF تنظیمات فایروال سرور امنیت سرور لینوکس آموزش وردپرس آموزش نصب CSF آموزش مدیریت سرور لینوکس آموزش مانیتورینگ سرور آموزش کانفیگ سرور آموزش رایگان آموزش دستورات putty آموزش دایرکت ادمین CSF چیست

نحوه نصب فایروال CSF

ابتدا از طریق putty وارد سرور لینوکسی خود شوید ، سپس دستورات زیر را یکی یکی کپی کرده و منتظر بمانید تا پروسه آن به پایان رسد

wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

سپس برای تست ماژول های iptables مورد نیاز csf دستور زیر را وارد کنید :

perl /usr/local/csf/bin/csftest.pl

شما نباید از فایروال های دیگر در سرور خود استفاده نمایید تا تداخل ایجاد نشود ، برای مثال اگر شما قبلا از APF+BFD استفاده کرده اید باید آنها را با دستور زیر حذف کنید در غیر این صورت تداخل ایجاد خواهد شد :

sh /usr/local/csf/bin/remove_apf_bfd.sh

فایل پیکربندی فایروال csf در مسیر زیر می باشد :

/etc/csf/csf.conf

شما می توانید با رابط گرافیکی خود csf از سی پنل و دایرکت ادمین خود به این فایل دسترسی پیدا کنید و آن را ویرایش کنید و یا از دستور nano برای ویرایش آن استفاده کنید.

در کنترل پنل های سی پنل و دایرکت ادمین پس از نصب فایروال csf به طور خودکار تمام پورت های پیش فرض استاندارد در فایروال باز خواهد شد.

csf در هنگام نصب به طور خودکار پورت ssh شما را وارد لیست پورت های باز خواهد کرد.

شما باید اطمینان پیدا کنید که klogd در کرنل شما فعال باشد ، به طور مثال klogd در سرور های مجازی رد هت یا centos ورژن ۵ به طور پیش فرض غیر فعال است که با ویرایش فایل /etc/init.d/syslog آن را فعال کنید و اطمینان پیدا کنید که هر خط klogd به صورت comment نباشد ( در صورت استفاده از # در فایل تنظیم غیر فعال خواهد شد) اگر شما روی این فایل تغییر ایجاد کردید پس از آن حتما syslog را ری استارت کنید.

/etc/rc.d/init.d/syslog restart

توجه : قبل از ایجاد هر تغییری از تنظیمات فعلی این سایت حتما پشتیبان تهیه کنید.

پس از نصب باید از صحت عملکرد فایروال در سرور مطلع شوید، زیرا فایروال برای اینکه بدرستی کار کند، در هسته مرکزی لینوکس نیاز به برخی از ماژول‌ها دارد و برای تست این موضوع می‌توانید دستور زیر را اجرا نمایید:

# perl /etc/csf/csftest.pl
Testing ip_tables/iptable_filter…OK
Testing ipt_LOG…OK
Testing ipt_multiport/xt_multiport…OK
Testing ipt_REJECT…OK
Testing ipt_state/xt_state…OK
Testing ipt_limit/xt_limit…OK
Testing ipt_recent…OK
Testing ipt_owner…OK
Testing iptable_nat/ipt_REDIRECT…OK
RESULT: csf should function on this server
Looks 100% OK.

در صورتی که تمامی موارد ok بود و پیغام csf should function on this server مشاهده شد، یعنی فایروال درست کار می‌کند.

اولین گزینه که در csf.conf هست مربوط میشه به حالت فعال بودن آزمایشی یا آماده به کار

TESTING = “۰″

در این جا ما دو تا حالت داریم یکی صفر و یکی “یک” که اگه یک قرار بدیم مثل این میمونه که ما اصلا CSF رو نصب نکردیم و اگر ۰ قرار بدیم CSF فعال میشه پس ما صفر رو انتخاب میکنیم و میریم سراغ کانفیگ بعدی.

این مرحله مربوط میشه به مدت زمان بین چک کردن رول های خود CSF که بر حسب دقیقه هست در واقع یه Cron هست و CSF رو استارت میکنه

TESTING_INTERVAL = “۱″

و میتونه بین ۱ تا ۵ دقیقه باشه توصیه میشه روی ۱ قرار بدید چون هرچه مدت زمان بین چک کردن رول ها کمتر باشه بهتر است

AUTO_UPDATES = “۰″

این گزینه همون طور که از اسمش پیدا هست وظیفش اینه که به طورت اتوماتیک خودش رو آپدیت نگه داره که اگه “یک” قرار بدید غیر فعال میشه و خودش رو آپدیت نمیکنه ولی اگه “صفر” قرار بدید CSF به صورت اتوماتیک خودش رو آپدیت میکنه پس بهترین گزینه برای این کانفیگ ست کردن صفر هست چون ممکنه باگی توی CSF پیدا بشه و شما متوجه نشید برا همین ۰ انتخاب میکنیم

ETH_DEVICE = “eth0,eth1″

CSF به صورت اتوماتیک بر روی تمام کارت شبکه های سرور شما رول ها رو اعمال میکنه پس اگه خالی گذاشتید تمام کارت های شبکه شما پشت فایروال قرار میگیره ولی بعضی وقت ها ممکنه تعداد کارت های شبکه سرور شما چند تا باشه که شما میخواید فقط تعدادی از اون ها پشت CSF باشه برا همین توی این کانفیگ اون ها رو مشخص میکنیم و با علامت “,” از هم دیگه جداشون میکنیم .

ETH_DEVICE_SKIP = “eth2,eth3″

این کانفیگ همون طور که از اسمش پیدا هست میتونید اون کارت شبکه هایی که نمیخواید پشت فایروال قرار بگیره رو قرار بدید در واقع آزاد باشه

خوب حالا میخوایم بریم سراغ یه سری تنظیمات که خیلی مهم هست در واقع مدیریت پورت های سرور هست پس مواظب باشید دارید چه پورتی رو باز میزارید و چه پورتی رو میبندید

TCP_IN = “۲۰,۲۵,۵۳,۸۰,۱۱۰,۴۶۵″

همون طور که از اسمش پیدا هست پورت هایی رو میتونید اینجا باز کنید که از بیرون از سرور به سرور دسترسی داشته باشند در واقع پورت هایی که اجازه ورود به سرور رو دارند شما اگه نمیدونید چه پورتی برای چه کاری هست بهتر هست به تاپیک معرفی پورت ها یه سری بزنید و و ببینید چه پورتی برای چه کاری هست اینجا دیگه بستگی به شما داره که چه سرویس هایی روی سرور خودتون دارید و از چه پورت هایی دارید استفاده میکنید

کانفیگ بعدی مربوز میشه به :

TCP_OUT = “۲۰,۲۱,۲۲,۲۵,۳۷,۴۳,۵۳,۸۰,۱۱۰″

این کانفیگ هم مربوط میشه به پورت هایی که از سرور به بیرون باز باشد در واقع پورت هایی که از توی سرور به بیرون از سرور باز باشه خوب حالا این ها مربوط میشه به TCP پورت که با UDP تفاوت داره اشتباهی نگیرید

حالا میریم سراغ پورت های UDP

که UDP_IN پورت های UDP از بیرون به داخل رو باز میکنه

UDP_IN = “۵۳″

در مورد UDP_OUT پورت های UDP از داخل سرور به بیرون میخواید باز باشه

UDP_OUT = “۲۰,۲۱,۵۳,۱۱۳,۱۲۳,۸۷۳,۶۲۷۷″

وقتی پورت ها کانفیگ کردیم میریم سراغ پروتکول ICMP که این هم بستگی به افراد داره بعضی وقت ها افراد دوست دارند باز باشه این رو فعال می کنند بعضی ها هم نه و میبندند ولی در صورت باز بودن میتونند یه سری حملات روی سرور داشته باشند راستش اگه در سطح سرور بسته هم بشه و حمله فوی باشه فایده ایی نداره ولی اگه بسته باشه بهتر هست
پس در کانفیگ زیر که ICMP رو از بیرون به داخل کانفیک میکنه :

ICMP_IN = “۰″

اگر عدد “یک” رو بزاریم ICMP باز است و میتونند پینگ کنند و شما Rate آین هم معلوم میکنید ولی اگه ۰ باشه که کلا بسته میشه برای تنظیم Rate اون هم کانفیگ زیر رو ادیت میکنیم عموما ۱ در ثانیه ست میکنند

ICMP_IN_RATE = “۱/s”

شاید شما دوست داشتید ۲ یا … بیشتر بزارید
حالا میریم سراغ باز یا بستم ICMP از داخل سرور به بیرون که باز بزارید کاریش نداشته باشید چون سرویس های شما قطعا نیاز داره

ICMP_OUT = “۱″
ICMP_OUT_RATE = “۰″

اگر دقت کرده باشید من ICMP_OUT_RATE رو عدد ۰ گذاشتم به معنی بی نهایت هست یا نا محدود

SMTP_BLOCK = “۱″

همون طور که از اسمش پیدا هست در مورد SMTP هست , که این کانفیگ ایمیل هایی که غیر از یوزر روت با SMTP میخواد فرستاده بشه ، بلاک میکنه . در سرور های هاستینگ اصلا توصیه نمیشه چون SMTP تمام یوزر ها رو میبنده اگه سروری دارید که هاستینگ هست گزینه ۱ رو انتخاب کنید . اگه سروری دارید که اصلا سیستم میل استفاده نمیشه ۰ رو انتخاب کنید

SMTP_ALLOWLOCAL = “۱″

اگر SMTP_BLOCK فعال کرده باشید این گزینه اجازه میده تنها از روی خود سرور توسط SMTP ایمیل فرستاده بشه یعنی اگه با Localhost فرستاده شد اجازه خروج از سرور رو بده غیر از این مثلا اگه از بیرون وصل شدند و خواستند SMTP ایمیل یزندد بلاک کنه اگر شما گزینه صفر رو انتخاب کنید تنها از روی خود سرور اجازه فرستادن ایمیل با SMTP داده میشه و اگر ۱ اصلا غیر فعال میشه

SMTP_PORTS = “۲۵″

این گزینه مربوط به پورتی هست که شما تنظیم کردید SMTP باهاش کار کنه که بیشتر موارد ۲۵ هست

DROP = “DROP”

همون طور که میدونید IPTABLES دو مدل برای دفع پاکت ها داره یکی Drop که پاکت ها از اسمش معلومه ریزش پیدا میکنه و یه مدل دیگه Reject که یه پاکت میفرسه که این پاکت ریجکت شده که توصیه نمیشه چون مشکل ساز هست پس بهترین مدل همون Drop هست

DROP_LOGGING = “۰″

این کانفیگ اگه گزینه ۰ رو انتخاب کنید لاگ میکنه پاکت هایی که Drop یا Reject شده و اگه ۱ رو اتخاب کنید لاگ نمیگیره از پاکت هایی که ه Drop یا Reject شده پیشنهاد میشه گزینه ۰ رو انتخاب کنید که در صورتی که مشکلی پیش اومد بدونید و دلیلش رو متوجه بشید و حلش کنید

DROP_IP_LOGGING = “۱″

این گزینه ایپی هایی که پاکت هاشون Drop یا Reject میشه رو بلاک میشکه , میشه گفت یکم خطریه پس بهتره عدد ۱ رو انتخاب کنید و رد بشید چون ایپی های معمولی و ساده بعضی وقت ها پاکت هاشون Drop میشه و این ریسک هست . پس نتیجه میگیریم بهتره گزینه ۱ است

DROP_ONLYRES = “۰″

این گزینه لاگ میکنه پورت های خاصی رو که مد نظر دارید که با “,” پورت ها رو از هم جدا کنید اگه ۰ صفر رو انتخاب کنید تمام پورت ها رو لاگ میکنه

DROP_NOLOG = “۶۷,۶۸,۱۱۱″

این گزینه هم پورت هایی که نمی خواید لاگ کنه رو مینویسید که توصیه میشه خالی بزارید تا همه پورت ها لاگ بشه

PACKET_—————— = “۱″

این گزینه هم لاگ میکنه پاکت هایی که خود IPTABLES تشخیص میده که نامشخص هست یعنی پاکت هایی که INVALID هستند ….

DROP_PF_LOGGING = “۰″

این گزینه هم لاگ کردن SYN Flood Protection رو فعال میکنه

پارامتر SYNFLOOD باعث جلوگیری از حملات DDOS از نوع synflood میگردد.که در صورتی که پیشنهاد می گردد این مقدار برابر با ۱ باشد و در سرور فعال گردد که برای فعال سازی مقادیر زیر را در آن قرار دهید.

SYNFLOOD = “۱″
SYNFLOOD_RATE = “۱۰۰/s”
SYNFLOOD_BURST = “۱۵۰″

پارامتر SYNFLOOD_RATE سرعت دریافت پکت‌ها از یک آی پی را بررسی می‌کند که در حال تنظیم شده در ثانیه حداکثر ۱۰۰ پکت دریافت می‌گردد.

در پارامتر SYNFLOOD_BURST تعداد کانکشن‌های هر آی‌پی مشخص می‌گردد و در صورتی که تعداد کانکشن‌ها بیشتر از ۱۵۰ شود و یا ۱۵۰ کانکشن  در ۱ ثانیه بیشتر از ۱۰۰بسته ارسال کنند . آی پی مربوطه مسدود می گردد.

پارامتر PORTFLOOD در این قسمت می‌توانیم نوع پروتکل و پورت به همراه تعداد کانکشن در بازه زمانی مد نظر را مشخص نماییم تا جلوی حملات سیل آسا علیه سرور در یک پورت خاص گرفته‌شود.

PORTFLOOD = “۸۰;tcp;20;300″

در مثال ذکر شده اگر از یک آی پی در مدت ۳۰۰ ثانیه بیشتر از تعداد ۲۰ کانکشن به سمت پورت ۸۰ ارسال شود. آی پی در فایروال مسدود می‌گردد.

Synflood اولی ، این تنظیم خود این Synflood Protection رو فعال میکنه و SYNFLOOD_RATE هم Rate رو مشخص میکنه و SYNFLOOD_BURST و این هم Burst که این تنظیمات بستگی به سرور شما و سطح حمله ایی که داره به سرور شما میشه به صورت دیفالت میتونید این ها رو قرار بدید اگر حمله شدیتر از این حرف ها بود Rate رو کمتر کنید تا به جایی برسه که دفع کنه حمله رو

PORTFLOOD = “”

این گزینه هم کانکشن ها رو هر پورت مدیریت میکنه برای مثال اگه شما این تنظیم رو بکنید برای مثال کانفیگ زیر رو ببینید به این معنیست که روی پورت ۸۰ از نوع TCP هر ایپی میتونه در مدت ۵ ثانیه ۲۰ تا کانکشن بندازه

PORTFLOOD = “۸۰;tcp;20;5″
VERBOSE = “۱″

VERBOSE این کار هایی که Iptables میکنه رو روی صحفه نمایش شما نشون میده که بهتره ۱ رو انتخاب کنید چون بعضی وقت ها دارید کانفیگ میکنید یه هو میبینید ۲۰ خط اومد تو صفحه مانیتورتون !

SYSLOG = “۰″

این هم برای فعال کردن SYSLOG که همیشه فعال نگهش دارید چون واقعا به کارتون میاد و لاگ های سیستم رو میندازه که مهم هست پس عدد ۰ رو انتخاب میکنیم !

پارامتر CT_LIMIT مجموع تعداد کانکشن یک آی پی را مشخص می کند. در مثال زیر این مقدار برابر با ۳۰۰ است.

CT_LIMIT = “۳۰۰”

پارامتر CT_INTERVAL بازه زمانی بررسی تعدادکانکشن‌ها را مشخص می کند. در این حالت فایروال بر اساس مثال زیر هر ۳۰ ثانیه اقدام به بررسی تعداد کانکشن‌ها می‌نماید.

CT_INTERVAL = “۳۰”

پارامتر CT_EMAIL_ALERT با فعال سازی این پارامتر در صورت مسدود نمودن آی‌پی ایمیل برای ایمیل تنظیم شده در فایروال ارسال می گردد.

CT_EMAIL_ALERT = 1

پارامتر CT_PERMANENT با فعال سازی این مقدار آی‌پی‌ها بصورت موقت مسدود می‌گردند و به صورت پیش‌فرض این پارامتر غیرفعال است. توصیه می‌کنیم این مقدار غیرفعال باشد.

در صورت فعال نمودن این پارامتر باید زمانی نیز برای بازگشایی آی‌پی که به صورت موقت غیرفعال شده است . در نظر بگیرید که به عنوان مثال در زیر این مقدار برابر با ۱۸۰۰ ثانیه تنظیم شده است و پس از این مدت آی پی که مسدود گردیده است . بازگشایی می گردد.

CT_BLOCK_TIME = 1800

پارامتر CT_PORTS در صورتی که می‌خواهید پورت و یا پورت‌های خاصی عملیات connection_tracking انجام شود این مفدار را تنظیم نمایید. در مثال زیر پورت ۸۰ و ۴۴۳۰تنظیم شده‌است.

CT_PORTS = 80,443

پارامتر CONNLIMIT در صورتی که می‌خواهید بر روی پورت مشخصی تعداد کانکشن معینی را محدود نمایید از این پارامتر استفاده نمایید. جهت اعمال موضوع توضیحات مثال زیر را  بررسی نمایید.

CONNLIMIT = “۲۲;۵,۸۰;۲۰″

ذر این حالت بر روی پورت ۲۲ حداکثر تعداد ۵ کانکشن و بر روی پورت ۸۰ تعداد ۲۰ کانکشن محدود می‌گردد.

پارامتر LF_SCRIPT_ALERT با فعال سازی این مقدار در صورتی که از طریق اسکریپتی ایمیل ارسال شود و تعداد ایمیل‌های ارسالی بیشتر از حد مجاز تعیین شده‌باشد، به شما از طریق ایمیل اطلاع رسانی می شود که تعداد این ایمیل‌های مجاز در مدت زمان یک ساعت توسط پارامتر LF_SCRIPT_LIMIT مشخص می‌گردد.

هر دو در مثال زیر مشخص شده است.

LF_SCRIPT_ALERT = 1
LF_SCRIPT_LIMIT = 100

در مثال بالا در صورتی که اسکریپتی بیشتر از ۱۰۰ ایمیل در ۱ ساعت ارسال نماید به شما از طریق ایمیل اطلاع رسانی می‌گردد.

در صورتی که می خواهید گزارش‌های فایروال در ایمیل خاصی بدست شما برسد پارامتر‌های زیر را تنظیم نمایید:

LF_ALERT_TO = “[email protected]
LF_ALERT_FROM = “server.com”

در مثال ذکر شده ایمیل های مربوطه به ایمیل [email protected] ارسال می گردد و ایمیل ها در ایمیل مقصد از طرف server.com ارسال می‌گردد.

حتما پس از انجام تغییرات بر روی ذخیره کلیک کرده و فایروال را ریست کنید

service csf restart

فایل های کانفیگ csf

جهت کانفیگ و پیکربندی این فایروال میتوانید فایل های مربوطه را تغییر دهید

در توزیع ها لینوکس عموما این فایل ها در آدرس /etc/csf/ قرار دارد ، در مورد برخی از این فایل ها توضیحاتی میدیهیم که به شرح زیر است :

csf.conf
در صورتی که بخواهید هر تغییری را در پیکربندی فایروال انجام دهید، فایل اصلی پیکربندی فایروال فایل csf.conf می‌باشد.

 

شما می توانید از طریق  رابط گرافیکی خود csf از داخل سی پنل و دایرکت ادمین به این فایل دسترسی پیدا کنید و آن را ویرایش نمائید و یا از دستور nano برای ویرایش آن استفاده کنید.

csf.allow
آی پی های مجاز و white در فایل csf.allow ذخیره می شوند.

csf.deny
آی پی های بلاک شده در فایل csf.deny ذخیره می شوند.

csf.ignore
لیستی از IP هایی که میبایست فایروال آن ها را نادیده بگیرد و در هیچ شرایطی مسدود نکند

csf.*ignore
لیستی از IP ها ، File ها ، User هایی که میبایست نادیده گرفته شود و مسدود نشوند، در این فایل قرار می گیرند.

نکته : در صورت تغییر در هر کدام از فایل های اعلام شده میبایست فایروال ریستارت شود که جهت انجام این کار میتوانید از دستور زیر استفاده نمایید

Csf -r

برخی از پرکاربردترین دستورات csf

غیرفعال کردن CSF
csf –x

فعال کردن CSF
csf –e
ریستارت کردن CSF
csf –r

ریستارت سریع CSF
csf –q

unblock کردن تمام IPهای بلاک شده
csf –f

unblock کردن تمام IPهایی که موقت بلاک شده (temporary )
csf –tf

چک کردن نسخه CSf
csf –v

بررسی بروز بودن csf
csf –c

چک و آپدیت کردن   CSF
csf –u

آپدیت اجباری CSF
csf –uf

حذف و unblock تمام IPهایی که در /etc/csf/csf.deny وجود دارند
csf –df

مشاهده کلیه تنظیمات اعمال شده IPv4 سرویس iptables
csf –l

مشاهده کلیه تنظیمات اعمال شده IPv6 سرویس iptables
csf -l6

در ادامه دستورات ip 192.168.1.2 بعنوان نمونه ذکر شده است و نیاز است ip مورد نظرتان را جایگزین نمائید.

حذف کردن IP از لیست temporary یا allow list
csf -tr 192.168.1.2

اضافه کردن IP در whitelist (اضافه کردن IP در فایل allow  در مسیر /etc/csf/csf.allow)
csf -a 192.168.1.2

حذف کردن IP از allow list (حذف IP از فایل allow در مسیر /etc/csf/csf.allow)
csf -ar 192.168.1.2

Unblock کردن IP بدون اضافه شدن در whitelist  (حذف IP از deny list در مسیر /etc/csf/csf.allow)
csf -dr 192.168.1.5

بلاک کردن IP (اضافه کردن IP در فایل deny در مسیر  /etc/csf/csf.deny )
csf -d  ۱۹۲.۱۶۸.۱.۲

چک کردن IP و مشخص شدن بلاک بودن یا نبودن ، درصورتیکه بلاک شده باشد دلیل آن نیز مشخص میشود
csf -g 192.168.1.2

تنظیمات فایروال برای جلوگیری از حملات DOS و SYN

برای مشاهده آی پی ها و تعداد کانکشن های متصل به سرور می توانید از دستور زیر استفاده نمایید و هر آی پی ای که بیش از مجاز متصل بود آنرا بلاک نمایید

netstat -atun | awk ‘{print $5}’ | cut -d: -f1 | sed -e ‘/^$/d’ |sort | uniq -c | sort -n

برای حفاظت از سرور در حملات SYN و DOS مقادیر زیر را در فایروال به مقادیر زیر تغییر دهید

CT_LIMIT = “80”

CT_INTERVAL = “50”
CT_PERMANENT = “1”
CT_BLOCK_TIME = “1800”
CT_INTERVAL = “60”
CT_SKIP_TIME_WAIT = “1”
SYNFLOOD = “1”
LF_DIRWATCH = “300”
PORTFLOOD = “80;tcp;20;300”

وارد تنظیمات فایروال شوید،

کد:

CT_LIMIT  =

تعداد کانکشن هایی که هر کلاینت با هر IP میتواند داشته باشد را تعیین میکند.

کد:

CT_INTERVAL  =

هر چه مدت، چه مدت دیواره آتشین شما کانکشن ها و وضعیت را بررسی کند.

کد:

CT_EMAIL_ALERT

هر IP که بن میشود یا .. به شما گزارش بدهد یا خیر (از طریق ایمیل)

کد:

CT_PERMANENT

این مقدار را اگ برابر با صفر قراردهید هر IP نمیتواند به طور همیشه بن باشد. اگر یک قرار دهید . هر IP که بن میشود واسه همیشه بن خواهد شد.

کد:

CT_BLOCK_TIME  =

IP که بن میشود چه مدت معلق بماند؟! مقدار ۱۸۰۰ یا ۵۰۰ مقداری خوبی است.

کد:

CT_SKIP_TIME_WAIT

برابر با صفر باشد.

کد:

CT_STATES  =

آمار از سرور به شما ارائه میدهد. اینکه هر IP چند کانکشن دارد و …

کد:

CT_PORTS

پورت ها را با , از هم جدا کنید. مثلا: ۸۰,۴۴۳,۲۵

۴- یافتن حملات و درخواست هایی از نوع sync

کد:

netstat -an|grep :80

با دستور فوق تمام کانکشن هایی که به پورت ۸۰ وصل هستند را نمایش میدهد ، سپس دستور زیر را وارد میکنیم تا ببنیم کجا با SYN_RECV شروع شده است

کد:

netstat -an|grep SYN_RECV

تعداد کانکشن های آپاجی و تعداد کانکشن های SYN_RECV :

کد:

netstat -an|grep :80|wc -l

netstat -an|grep SYN_RECV|wc -l

**

چه پورت هایی باید در فایروال باز باشند

    پورت ۲۰ و پورت ۲۱ : این دو پورت مربوط به FTP هستند ، همچنین به یاد داشته باشید FTP از رنج شماره های بالا به صورت رندم برای پورت ها استفاده می کند ، برای مثال شما باید یک محدوده برای آن تعیین کنید و این محدوده را در فایل /etc/proftpd.conf اضافه کنید و در فایروال allow کنید

[code]PassivePorts 35000 35999[/code]

     

    پورت ۲۲: برای دسترسی به SSH ، همچنین شما می توانید پس از تغییر پورت SSH مقدار جدید را به جای ۲۲ وارد نمایید
    پورت ۲۵ و پورت ۵۸۷ : این پورت ها باید باز باشند و درصورت مسدود بودن ارسال و دریافت ایمیل از سرور شما با مشکل مواجه خواهد شد

    پورت ۵۳ : برای سرویس named ( دی ان اس ها ) استفاده می شود
    پورت ۸۰ و پورت ۴۴۳ : برای اتصال آپاچی از طریق http و https
    پورت ۱۱۰ و پورت ۹۹۵ : دسترسی یوزر ها به pop email
    پورت ۱۴۳ و پورت ۹۹۳ : دسترسی یوزرها به imap email

    پورت ۳۳۰۶ : اگر از دیتابیس ها به صورت ریموت استفاده می کنید این پورت را allow کنید ، در غیر اینصورت اگر استفاده اسکریپت های شما به صورت local می باشد این پورت را allow نکنید

    پورت ۲۲۲۲ : برای دسترسی به دایرکت ادمین نیاز هست ( اگر سرور شما دایرکت ادمین می باشد باید حتما allow باشد )

    پورت ۲۰۸۲ ، پورت ۲۰۸۳ ، پورت ۲۰۸۶ ، پورت ۲۰۸۷ ، پورت ۲۰۹۵ : درصورتیکه cpanel/whm بر روی سرور شما نصب هست این پورت ها را allow کنید

**

چه کشورهایی در فایروال بسته شوند؟

کشور های زیر را در فایروال دسترسیشان را قطع کنید ، کشور ها شامل آسیای شرقی ، آفریقا و امریکای جنوبی می باشند

CN,SA,CH,RO,SE,PH,TR,VE,SE,BR,CL,IN,AE,MX,ID,VN,TH,LK,NG,
KE,AR,EC,PA,PK,MY,RU,IQ,EU,CO,PS,UA,KH,HK,CZ,BD,RO,PH,KR,TW

این کار را می توانید در قسمت CC_Deny انجام دهید

**

نحوه تنظیم PORTFLOOD و CONNLIMIT در CSF

تنظیم و کانفیگ صحیح فایروال موجب کاهش میزان اتک ها به سرور شما و درنتیجه کاهش لود سرور و افزایش سرعت بارگزاری می شود .

در این آموزش سعی داریم نحوه صحیح نوشتن تنظیمات این دو گزینه در فایروال CSF را آموزش دهیم .

PORTFLOOD = “22;tcp;5;300,80;tcp;20;5”

عبارت فوق را برای نمونه در نظر بگیرید.  این عبارت یعنی :

۲۲;tcp;5;300

۱- اگر یک آی پی بیش از ۵ کانکشن tcp به پورت ۲۲ تا ۳۰۰ ثانیه متصل بود ، سپس آی پی مورد نظر را از اتصال به پورت ۲۲ تا ۳۰۰ ثانیه پس از مشاهده آخرین تلاش برای اتصال مسدود کن

۲- مثال دوم نیز به همین شکل هست وبرای پورت ۸۰ تا سقف ۲۰ کانکشن همزمان و ۵ ثانیه تعریف شده ، برای سایر پورت ها نیز می توانید با قرار دادن یک ویرگول اضافه نمایید.

CONNLIMIT = “22;5,80;20”

۱- حداکثر ۵ کانکشن همزمان برای پورت ۲۲ به ازای هر آی پی اجازه اتصال بده

۲- حداکثر ۲۰ کانکشن همزمان برای پورت ۸۰ به ازای هر آی پی اجازه اتصال بده

**

fail شدن پینگ ها پس از فعال شدن فایروال ( CSF )

درصورتیکه پس از فعال شدن فایروال تست پینگ از سرور شما fail می شود ( در فایروال CSF ) خط زیر را در فایل کانفیگ فایروال بیابید .

ICMP_IN_RATE

و مقدار آنرا به بیش از ۳۰ در هر ثانیه یا ۰ قرار دهید

**

چک کردن وضعیت آی پی در CSF از طریق ssh

برای چک کردن وضعیت آی پی که آیا بلاک شده یا در لیست سفید قرار گرفته از طریق خط فرمان لینوکس از دستور زیر استفاده نمایید

csf -g <ipaddress>

**

تغییر پورت دایرکت ادمین از ۲۲۲۲ به پورت دلخواه

دایرکت ادمین یکی از کنترل پنل های بسیار محبوب هاستینگ است ، با توجه به محبوبیت بالا این پنل رعایت نکات امنیتی آن بسیار ضروری است ، یکی از مواردی که بهتر است در مورد امنیت دایرکت ادمین رعایت کنید تغییر پورت دایرکت ادمین است ، در حالت پیش فرض تمام پورت های پیش فرض دایرکت ادمین ۲۲۲۲ می باشد ، در این مقاله قصد داریم آموزش تغییر پورت دایرکت ادمین توسط ssh از ۲۲۲۲ به پورت دلخواه را توسط ssh سرور و همچنین از خود پنل دایرکت ادمین به شما توضیح دهیم.

توجه : قبل از هر تغییری اطمینان پیدا کنید پورت جدید در فایروال شما باز شده باشد

نحوه تغییر پورت دایرکت ادمین در SSH

ابتدا توسط نرم افزار Putty وارد ssh سرور خود شوید و سپس با دستور زیر فایل تنظیمات دایرکت ادمین خود را ویرایش کنید : در اینجا ما قصد داریم پورت ۴۰۴۸ را روی دایرکت ادمین خود تنظیم کنیم.

nano /usr/local/directadmin/conf/directadmin.conf

سپس به دنبال port= بگردید و مقدار

port=2222

را به

port=4048

تغییر دهید و سپس با کلید Ctrl + X و فشار دادن دکمه Enter فایل را ذخیره می کنیم.

سپس با دستور زیر پورت وارد شده در فایل redirect.php را نیز تغییر می دهیم.

nano /var/www/html/redirect.php

مقدار

header(“Location: http://”.$_SERVER

[‘HTTP_HOST’].”:2222″);

را به

header(“Location: http://”.$_SERVER[‘HTTP_HOST’].”:4048″);

 

تغییر دهید و سپس با کلید Ctrl + X و فشار دادن دکمه Enter فایل را ذخیره می کنیم و سپس با دستور زیر دایرکت ادمین را ری استارت می کنیم :

service directadmin restart

حتما از باز بودن پورت جدید در فایروال سرور خود اطمینان پیدا کنید.

**

نحوه حذف فایروال CSF

برای حذف فایروال CSF در سرور های لینوکسی وارد مسیر زیر شوید

cd /etc/csf

و سپس فایل زیر را اجرا کنید

sh uninstall.sh

راهنمای بلاک کردن IPهای Brute Force توسط CSF

برای بلاک شدن خودکار IPهای Brute Force توسط CFS مراحل زیر را انجام دهید:

۱. ابتدا به مسیر  زیر بروید.

cd /usr/local/directadmin/scripts/custom/

۲. پیش از شروع، برای اطمینان از فایل‌های block_ip.sh و unblock_ip.sh به کمک دستورات زیر نسخه‌ی پشتیبان تهیه نمایید.

cp block_ip.sh block_ip.sh.bak
cp unblock_ip.sh unblock_ip.sh.bak

ممکن است فایل‌های فوق در مسیر «usr/local/directadmin/scripts/custom» وجود نداشته باشد، در این‌صورت با خطای زیر مواجه خواهید شد. نمایش خطا مشکلی در ادامه روند به‌وجد نخواهد آورد.

cp: cannot stat `block_ip.sh’: No such file or directory
cp: cannot stat `unblock_ip.sh’: No such file or directory

۳. نسخه مناسب را به کمک دستورهای زیر دانلود کنید:

cd /usr/local/directadmin/scripts/custom/
wget -O block_ip.sh http://files.plugins-da.net/dl/csf_block_ip.sh.txt
wget -O unblock_ip.sh http://files.plugins-da.net/dl/csf_unblock_ip.sh.txt
wget -O show_blocked_ips.sh http://files.plugins-da.net/dl/csf_show_blocked_ips.sh.txt
chmod 700 block_ip.sh show_blocked_ips.sh unblock_ip.sh

۴. به کمک دستورات زیر، فایل‌هایی با عنوان blocked_ips و exempt_ips در مسیر root  ایجاد کنید.

touch /root/blocked_ips.txt
touch /root/exempt_ips.txt

تا اینجا هنوز IPها به صورت خودکار توسط CSF  بلاک نمی‌شوند، تنها دکمه‌ای در brute Force Monitor برای ادمین ایجاد می‌شود که IP دلخواه را بلاک نماید. برای اینکه IPها به صورت خودکار بلاک شوند لازم است که اسکریپت زیر را نصب کنید و مراحل بعدی را انجام دهید.
۵. برای بلاک شدن خودکار IPها دستورات زیر را اجرا کنید.

cd /usr/local/directadmin/scripts/custom
wget -O brute_force_notice_ip.sh http://files.directadmin.com/services/all/brute_force_notice_ip.sh
chmod 700 brute_force_notice_ip.sh

۶. برای اینکه نقش و رول‌های iptables با CSF بازنویسی نشود اجرای این سرویس را به کمک دستورات زیر در سرور خاموش کنید.

chkconfig iptables off
chkconfig ip6tables off

mv /etc/init.d/iptables /etc/init.d/iptables~moved
echo -e ‘#!/bin/bash\nexit 0;’ > /etc/init.d/iptables
chmod 755 /etc/init.d/iptables

chkconfig iptables on
chkconfig ip6tables on
service iptables start

۷. پس از اتمام کار، مطعمن شوید که IPها به درستی بلاک می‌شنود، برای این منظور می‌توانید IPی را از لیست Brute Force Mont انتخاب و به کمک کامند زیر جستجو و از بلاک شدن آن اطمینان حاصل نمایید.

csf –g IP

ساتین

ممکن است شما دوست داشته باشید
ارسال یک پاسخ