جدول محتوایی
معرفی
Fail2Ban یک چارچوب جلوگیری از نفوذ است که با زبان برنامه نویسی پایتون نوشته شده است. با خواندن گزارشهای SSH، ProFTP، Apache و غیره کار میکند و از پروفایلهای iptables برای جلوگیری از تلاشهای brute-force استفاده میکند. با ما هماره باشید تا امن سازی SSH با Fail2Ban در اوبونتو 23 را با هم مرور کنیم D:
نصب بسته Fail2Ban
به روز رسانی های سیستم را بررسی کنید و آنها را نصب کنید.
apt update -y
apt upgrade -y
دستور نصب Fail2Ban
apt install fail2ban -y
fail2ban را با استفاده از دستور زیر شروع کنید
systemctl start fail2ban
fail2ban را فعال کنید، دستور زیر را اجرا کنید.
systemctl enable fail2ban
وضعیت سرویس را بررسی کنید، دستور زیر را اجرا کنید.
systemctl status fail2ban
خروجی:
root@ubuntu:~# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: active (running) since Mon 2023-04-24 19:54:31 UTC; 6s ago
Docs: man:fail2ban(1)
Main PID: 3064 (fail2ban-server)
Tasks: 5 (limit: 3386)
Memory: 34.4M
CPU: 1.439s
CGroup: /system.slice/fail2ban.service
└─3064 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Apr 24 19:54:31 ubuntu systemd[1]: Started fail2ban.service - Fail2Ban Service.
Apr 24 19:54:31 ubuntu fail2ban-server[3064]: 2023-04-24 19:54:31,842 fail2ban.configreader [3064]: WARNING 'allowipv6' no>
Apr 24 19:54:32 ubuntu fail2ban-server[3064]: Server ready
پیکربندی Fail2Ban
Jail.conf شامل بخشی است که در آن تنظیمات پیکربندی را می توان برای fail2ban انجام داد، ما این فایل را ویرایش نمی کنیم زیرا ارتقاء بسته می تواند این فایل را بازنویسی کند.
Jail.local شامل همان بخش هایی است که فایل “jail.conf” در آن قرار دارد و می تواند این مقادیر را لغو کند.
دستور ایجاد یک فایل پیکربندی jail.local با کپی کردن فایل پیش فرض jail.conf را صادر کنید.
cp /etc/fail2ban/jail.{conf,local}
فایل را برای پیکربندی باز کنید.
nano /etc/fail2ban/jail.local
قرار دادن آدرس های IP در لیست سفید
خط زیر را در فایل پیکربندی /etc/fail2ban/jail.local بیابید و آن را حذف کنید تا آدرس IP در لیست سفید قرار گیرد.
#ignoreip = 127.0.0.1/8 ::1
هنگامی که آن را لغو نظر کردید، آدرس IP خود را در آخرین دستور For ex اضافه کنید.
ignoreip = 192.168.0.100 192.168.1.0/24
تنظیمات بن
3 گزینه اصلی در این تنظیمات،
bantime: تعداد ثانیه/ساعت/روز است که یک آدرس IP ممنوع است.
findtime: پنجره ای است که fail2ban هنگام جستجوی تکرار ناموفق احراز هویت به آن توجه می کند.
maxretry: حداکثر تلاشی است که قبل از مسدود کردن انجام می شود.
این خطوط را در فایل پیکربندی /etc/fail2ban/jail.local پیدا کنید و در صورت نیاز تغییر دهید.
مقادیر پیش فرض گزینه عبارتند از
bantime = 10m
findtime = 10m
maxretry = 5
دریافت اعلان های ایمیل
برای دریافت هشدارهای ایمیل با گزارشهای مربوطه، خط زیر را در فایل پیکربندی /etc/fail2ban/jail.local بیابید و مطمئن شوید که خط زیر وجود دارد.
# ban & send an e-mail with whois report and relevant log lines
# to the destemail.
action_mwl = %(action_)s
%(mta)s-whois-lines[sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]
آدرس های ایمیل ارسال و دریافت را پیکربندی کنید.
خط زیر را در فایل پیکربندی /etc/fail2ban/jail.local پیدا کنید و جزئیات را به روز کنید.
مثال:
destemail = [email protected]
sender = [email protected]
کلاینت Fail2ban
برای تعامل با سرویس Fail2ban یک ابزار خط فرمان به نام fail2ban-client وجود دارد.
گزینه های موجود آن را بررسی کنید دستور زیر را وارد کنید
fail2ban-client -h
در اینجا چند نمونه وجود دارد که می توان با استفاده از این ابزار انجام داد:
وضعیت را بررسی کنید
fail2ban-client status sshd
برای لغو ممنوعیت یک IP.
fail2ban-client set sshd unbanip "IP address here"
برای ممنوع کردن یک IP
fail2ban-client set sshd banip "IP address here"
ممنون که مثل همیشه همراه ما بودید با امن سازی SSH با Fail2Ban در اوبونتو موفق و سربلند باشید D: