چگونه با ابزار Fail2Ban در لینوکس CentOS 8 از ssh محافظت کنیم؟ ابزار امنیتی Fail2Ban برای شما امکانی را فراهم میکند که بتوانید آدرسهای IP که چند بار تلاش ناموفق برای ورود به ssh دارند را مسدود کنید. در نتیجه میتوانید با این ابزار از ssh و یا هر ابزار دیگری محافظت کنید. در این مطلب قصد داریم شما را با نحوه نصب و تنظیمات ابزار Fail2ban در سرور لینوکس CentOS 8 آشنا کنیم.
1398/11/055779 بازدید
فایل ذخیره عملکرد ssh خطاهای زیادی در وارد کردن کلمه عبور نشان میدهد. آدرسهای IP به صورت تصادفی، سعی در از کنترل خارج کردن سرور sshd شما که بر مبنای CentOS 8 کار میکند، داشتهاند. در چنین حالتی چه کار باید کرد؟ در سرور لینوکس CentOS 8، چگونه میتوان با fail2ban از ssh محافظت کرد؟ چگونه میتوان تشخیص داد که ابزار fail2ban در CentOS 8 نصب شده است؟
معمولاً پورت ۲۲ از SSH TCP در دسترس همگان در اینترنت قرار دارد. در نتیجه، رباتها و مهاجمان زیادی سعی خواهند داشت که با آزمایش شناسههای کاربری و کلمههای عبور به صورت تصادفی، به سرور شما وارد شوند. سرور OpenSSH و خودِ کلاینت نسبتاً امن هستند؛ ولی به مانند هر چیز دیگری، امکان نفوذ به آنها با حملات گسترده وجود خواهد داشت. در اینجا، یک پیام ساده را از یک سرور میبینیم:
چگونه با ابزار Fail2Ban در لینوکس CentOS 8 از ssh محافظت کنیم؟
ابزار امنیتی Fail2Ban برای شما امکانی را فراهم میکند که بتوانید آدرسهای IP که چند بار تلاش ناموفق برای ورود به ssh دارند را مسدود کنید. در نتیجه میتوانید با این ابزار از ssh و یا هر ابزار دیگری محافظت کنید. در این مطلب قصد داریم شما را با نحوه نصب و تنظیمات ابزار Fail2ban در سرور لینوکس CentOS 8 آشنا کنیم.
نحوه نصب ابزار Fail2Ban در لینوکس CentOS 8
مراحل کار جهت نصب و تنظیم ابزار Fail2ban برای ارتقای امنیت سرور به صورت زیر خواهد بود:
۱) ورود به سرور لینوکس CentOS 8 با استفاده از ssh
۲) فعالسازی و نصب منبع EPEL در CentOS 8 با اجرای فرمان زیر:
php
1sudo yum install epel-release
۳) نصب ابزار Fail2Ban؛ برای این منظور، فرمان زیر را تایپ نمایید:
php
1sudo yum install fail2ban
تنظیمات Fail2ban
با استفاده از فرمانهای زیر، سرویس Fail2ban را فعال و راهاندازی کنید:
1Sep 26 10:08:10 localhost sshd[16031]: Failed password for root from 49.88.112.90 port 15595 ssh223Sep 26 10:08:13 localhost sshd[16031]: Failed password for root from 49.88.112.90 port 15595 ssh245Sep 26 10:13:19 localhost sshd[16039]: Failed password for root from 222.186.52.89 port 58696 ssh267Sep 26 10:13:22 localhost sshd[16039]: Failed password for root from 222.186.52.89 port 58696 ssh289Sep 26 10:13:26 localhost sshd[16039]: Failed password for root from 222.186.52.89 port 58696 ssh21011Sep 26 10:16:14 localhost sshd[17218]: Failed password for root from 49.88.112.80 port 41089 ssh21213Sep 26 10:16:16 localhost sshd[17218]: Failed password for root from 49.88.112.80 port 41089 ssh21415Sep 26 10:16:19 localhost sshd[17218]: Failed password for root from 49.88.112.80 port 41089 ssh21617Sep 26 10:19:14 localhost sshd[17226]: Failed password for root from 153.36.236.35 port 44787 ssh21819Sep 26 10:19:17 localhost sshd[17226]: Failed password for root from 153.36.236.35 port 44787 ssh22021Sep 26 10:19:19 localhost sshd[17226]: Failed password for root from 153.36.236.35 port 44787 ssh22223Sep 26 10:22:06 localhost sshd[17260]: Failed password for root from 222.186.30.165 port 22558 ssh22425Sep 26 10:22:08 localhost sshd[17260]: Failed password for root from 222.186.30.165 port 22558 ssh22627Sep 26 10:22:11 localhost sshd[17260]: Failed password for root from 222.186.30.165 port 22558 ssh2
محافظت از SSH با استفاده از ابزار Fail2Ban در CentOS 8
ابتدا باید منبع EPEL Repo را در CentOS 8 فعالسازی و نصب کنید. برای این منظور، فرمانهای زیر را اجرا نمایید:
فایل /etc/fail2ban/jail.local شرایط پیشفرض را در فایل /etc/fail2ban/jail.conf بازنویسی میکند. بر این اساس، ساخت یا ویرایش فایل jail.local میتواند با ویرایشگرهای متنی مانند vi/vim یا nano/emacs صورت گیرد:
php
1sudo vi /etc/fail2ban/jail.local
بروزرسانی و پیوست به صورت زیر انجام میشود:
php
1[DEFAULT]23# Ban IP/hosts for 24 hour ( 24h*3600s = 86400s):45bantime = 8640067 89# An ip address/host is banned if it has generated "maxretry" during the last "findtime" seconds.1011findtime = 6001213maxretry = 31415 1617# "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban1819# will not ban a host which matches an address in this list. Several addresses2021# can be defined using space (and/or comma) separator. For example, add your2223# static IP address that you always use for login such as 103.1.2.32425#ignoreip = 127.0.0.1/8 ::1 103.1.2.32627 2829# Call iptables to ban IP address3031banaction = iptables-multiport3233 3435# Enable sshd protection36373839enabled = true
حالا فایل را ذخیره و از آن خارج شوید. سپس سرویس را با فرمانهای زیر راهاندازی کنید:
php
1sudo systemctl start fail2ban23sudo systemctl status fail2ban
نحوه شروع، توقف و راهاندازی دوباره سرویس Fail2ban
غیرفعالکردن ورود بر اساس پسورد به ssh در لینوکس به منظور ارتقای امنیت
فعالکردن ورود دو مرحلهای 2FA برای ssh
مطالعه تمام ترفندها و روشهای امنیتی سرور OpenSSH
جمعبندی
در این مطلب با نحوه محافظت از سرور ssh در باربر حملات مرگبار با استفاده از نصب و تنظیم سرویس Fail2ban در لینوکس CentOS 8 آشنا شدیم. ابزار Fail2ban گزینهها و فرمانهای زیادی دارد و شاید بهتر است نگاهی به صفحه رسمی آن نیز داشته باشید.