آموزش کار با فایروال CSF
Config Server Firewall یا به اختصار CSF، یک فایروال نرم افزاری رایگان و پیشرفته برای اکثر توزیع های لینوکس و سرورهای مبتنی بر لینوکس است. علاوه بر قابلیت های اساسی فایروال و فیلترینگ پکت ، CSF شامل سایر ویژگی های امنیتی ، مانند مقابله با حملات flood و همچنین ایجاد محدودیت هایی برای ورود به سیستم است.
رابط کاربری csf در کنترل پنل های محبوب لینوکسی مانند Cpanel ، Directadmin و Webmin ادغام شده است اما در این بخش قرار است تنها به استفاده از خط فرمان لینوکس پرداخته شود.
CSF قادر است بسیاری از حملات مانند اسکن پورت ، حملات SYN و حملات brute force را شناسایی کند.
لیست کامل سیستم عامل ها و ویژگی های پشتیبانی شده را می توان در اینجا مشاهده نمود.
این آموزش برای سرور مبتنی بر لینوکس ، مانند Centos نوشته شده است. لازم به ذکر است که دستورات باید با مجوزهای root اجرا شوند.
توجه : این آموزش تنها امنیت IPv4 را در بر می گیرد.
ویژگی ها
Csf ویژگی هایی بسیاری را برای امنیت سرور ارائه می دهد.
Login authentication failure daemon
CSF گزارشات مربوط به تلاشهای ناموفق ورود به سیستم را در فاصله زمانی منظم بررسی می کند و قادر است بیشتر تلاش های غیرمجاز برای دستیابی به سرور شما را تشخیص دهد. بنابراین می توانید اقدامات امنیتی دلخواه خود را در فایل پیکربندی CSF تنظیم نمایید.
برنامه های زیر توسط این ویژگی پشتیبانی می شوند:
- Courier imap, Dovecot, uw-imap, Kerio
- openSSH
- (cPanel, WHM, Webmail (cPanel servers only
- Pure-ftpd, vsftpd, Proftpd
- Password protected web pages (htpasswd)
- (Mod_security failures (v1 and v2
- Suhosin failures
- Exim SMTP AUTH
علاوه بر اینها، شما قادر هستید فایل ورود به سیستم خود را ایجاد کنید.
Process tracking
CSF را می توان برای ردیابی فرآیندها به منظور تشخیص فرآیندهای مشکوک یا پورت های باز شبکه پیکربندی کرد و در صورت شناسایی، ایمیلی به مدیر سیستم ارسال کند. این ویژگی ممکن است به شما کمک کند تا سوء استفاده احتمالی از سرور خود را شناسایی و متوقف کنید.
Directory watching
این ویژگی فولدر های /temp و سایر پوشه های مربوطه را برای اسکریپت های مخرب مانیتور می کند و در صورت شناسایی یک ایمیل به مدیر سرور ارسال می کند.
Messenger service
فعال کردن این ویژگی به CSF اجازه می دهد تا هنگام استفاده از یک بلوک، اطلاعات بیشتری به کاربر ارسال کند. در صورت فعالسازی این ویژگی، اگر یک IP به دلایلی مسدود شود ، CSF یک صفحه وب را تحت عنوان پیام مسدود شدن سرور نشان می دهد.
Port flood protection
این ویژگی سرور شما را در برابر حملات port flood محافظت می کند. شما می توانید در مدت زمان دلخواه خود مقدار اتصالات مجاز را بر روی هر پورت مشخص کنید. فعالسازی این ویژگی توصیه می شود زیرا می تواند منجر به down شدن سرویس ها توسط فرد مهاجم شود. شما باید توجه داشته باشید که چه محدودیتی را تعیین کرده اید ، زیرا تنظیمات بیش از حد محدود کننده باعث می شود اتصالات مشتری های شما کاهش یابد. ضمن اینکه تنظیمات بیش از حد مجاز ممکن است یک مهاجم را در یک حمله syn flood موفق گرداند.
Port knocking
با کمک این ویژگی، CSF مجوز اتصال به پورت های بسته را برای گروهی از کلاینت ها فراهم میکند .
ممکن است در صورت ارائه خدماتی که فقط برای مخاطبان محدودی ارائه شده است ، این کار مفید واقع شود.
Connection limit protection
از این ویژگی می توان برای محدود کردن تعداد همزمان اتصالات فعال از آدرس IP بر روی هر پورت استفاده کرد. در صورت پیکربندی مناسب ، ممکن است از سوءاستفاده روی سرور مانند حملات DoS جلوگیری کند.
Port/IP address redirection
CSF می تواند کانکشن ها را از یک آدرس ip و پورت به یک آدرس ip و پورت دیگر هدایت کند.
توجه : پس از تغییر مسیر ، آدرس منبع مشتری همان آدرس IP سرور خواهد بود اما این معادل ترجمه آدرس شبکه (NAT) نیست.
UI integration
ویژگی دیگری Csf این است که اگر با خط فرمان لینوکس آشنایی ندارید، رابط گرافیکی را در کنترل پنل های Directadmin ، Cpanel و Webmin ادغام کرده است که می توانید تنظیمات را از همان بخش انجام دهید.
IP block lists
این ویژگی به CSF اجازه می دهد تا لیست های آدرس های IP مسدود شده را به طور خودکار از منابع تعریف شده توسط شما دریافت کند.
wget http://download.configserver.com/csf.tgz
با این کار CSF در دایرکتوری مدنظر شما دانلود می شود.
گام دوم - هم اکنون می بایست فایل دانلود شده را استخراج کرد.
tar -xzf csf.tgz
توجه : قبل از نصب csf توجه داشته باشید که هیچ فایروال دیگری بر روی سرور شما نصب نباشد.
گام سوم - سپس وارد پوشه ای که استخراج شده (csf) شوید. در این دایرکتوری فایل install فایروال وجود خواهد داشت که با اجرای دستورات زیر نصب می شود.
cd csf
sh install.sh
توجه : با نصب فایروال csf تمامی rule های ایجاد شده در iptables به صورت اتوماتیک حذف می شوند.
nano /etc/csf/csf.conf
پس از ایجاد هر تغییری در فایل conf ، برای اعمال تغییرات می بایست یکبار csf را ریستارت کرد.
csf -r
بنابراین می بایست به شکل زیر دربیاید.
TESTING = "0"
پورت های باز شده به طور پیش فرض به شرح زیر است:
TCP_OUT = "20,21,22,25,53,80,110,113,443"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
Port 20: FTP data transfer
Port 21: FTP control
Port 22: Secure shell (SSH
Port 25: Simple mail transfer protocol (SMTP)
Port 53: Domain name system (DNS)
Port 80: Hypertext transfer protocol (HTTP)
Port 110: Post office protocol v3 (POP3)
Port 113: Authentication service/identification protocol
Port 123: Network time protocol (NTP)
Port 143: Internet message access protocol (IMAP)
Port 443: Hypertext transfer protocol over SSL/TLS (HTTPS)
Port 465: URL Rendezvous Directory for SSM (Cisco)
Port 587: E-mail message submission (SMTP)
Port 993: Internet message access protocol over SSL (IMAPS)
Port 995: Post office protocol 3 over TLS/SSL (POP3S)
در زیر مجموعه پورت هایی وجود دارد که در صورت اجرای سرویس ذکر شده باید باز شوند.
در هر سرور پورت های زیر باید باز باشند :
TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UPD_IN: 53
UPD_OUT: 53,113,123
آپاچی :
TCP_IN: 80,443
FTP سرور :
TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT:20,21
TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110
MySQL سرور :
TCP_IN: 3306
TCP_OUT: 3306
شما می توانید لیست کاملی از پورت های TCP و UDP را در اینجا پیدا کنید. شما باید پورت های کلیه خدماتی را که استفاده می کنید، باز نمایید.
ICMP_IN
در صورتی که مقدار این متغیر برابر "1" باشد آی پی سرور شما Pingable می باشد و چنانچه مقدار آن را به "0" تغییر دهید Ping آی پی آدرس در دسترس نخواهد بود که به منظور امنیت بیشتر سرور می توان تنظیم کرد.
اما اگر شما میزبان هرگونه خدمات عمومی هستید ، توصیه می شود درخواست های ICMP را فعال بگذارید.
ICMP_IN_LIMIT
تعداد درخواست های ICMP (پینگ) مجاز از یک آدرس IP را در مدت زمان مشخصی تنظیم می کند. معمولاً نیازی به تغییر مقدار پیش فرض (1 / ثانیه) نیست.
DENY_IP_LIMIT
تعداد آدرس های IP مسدود شده CSF را نگه می دارد. توصیه می شود تعداد آدرس های IP رد شده محدود شود زیرا داشتن تعداد زیادی بلاک ممکن است عملکرد سرور را کند کند.
DENY_TEMP_IP_LIMIT
مانند موارد فوق ، اما برای بلاک های آدرس IP موقتی.
PACKET_FILTER
بسته های نامعتبر ، ناخواسته و غیرقانونی را فیلتر کنید.
این امر در برابر حملات SYN Flood محافظت می کند. اما با توجه به اینکه این تنظیمات منجر به کندی هر اتصال می شود ، می بایست تنها زمان هایی که سرور مورد حمله قرار می گیرد ، تنظیم شود.
CONNLIMIT
تعداد اتصالات فعال همزمان را در پورت محدود می کند.
22;5;443;20
5 اتصال همزمان بر روی پورت 22 و 20 اتصال همزمان بر روی پورت 443 را مجوز دسترسی می دهد.
PORTFLOOD
تعداد اتصالات را در هر بازه زمانی محدود می کند که اتصالات جدید به پورت های خاص امکان پذیر شود.
22;tcp;5;250
اگر بیش از 5 اتصال در پورت 22 با استفاده از پروتکل TCP در 250 ثانیه برقرار شود ، آدرس IP را مسدود می کند.
برای ذخیره تنظیمات، فایل را با فشردن Ctrl + X ببندید. وقتی از شما خواسته می شود تغییرات را ذخیره کنید یا نه ، Y را فشار دهید تا تغییرات ذخیره شود.
سپس با اجرای دستور زیر csf را مجدداً راه اندازی کنید.
csf -r
1- ابتدا از طریق ssh وارد روت سرورتان شوید.
2- با اجرای دستور زیر بلاک بودن و یا نبودن آی پی را بررسی نمایید ، در صورتی که بلاک باشد می توانید دلیل آن را مشاهده نمایید.
csf -g userip
3- برای بلاک کردن آی پی خاص باید دستور زیر را اجرا نمایید.
csf -d userip
4- برای رفع بلاک آی پی خاص دستور زیر را اجرا نمایید.
csf -dr userip
5- و در آخر برای اعمال تغییرات یکبار فایروال csf را ریستارت می کنیم.
csf -r
cd /etc/csf
سپس کد زیر را اجرا نمایید.
sh uninstall.sh