چگونه سرور اوبونتو را با UFW، Fail2ban و AppArmor ایمن کنیم؟

UFW، Fail2ban و AppArmor

هنگام راه‌اندازی سرور اوبونتو برای محیط عملیاتی، ایمن‌سازی سیستم برای اطمینان از پایداری، ایمنی و دسترسی‌پذیری آن بسیار مهم است. اگرچه اوبونتو دارای ویژگی‌های امنیتی داخلی زیادی است، اما انجام اقدامات اضافی برای محافظت از سیستم در برابر دسترسی و حملات غیرمجاز مهم است.در این مطلب، سه ابزار ضروری UFW ، Fail2ban و AppArmor را برای افزایش امنیت سرور اوبونتو را بررسی خواهیم کرد.

این ابزارها با کنترل دسترسی به شبکه، جلوگیری از تلاش‌های ورود به سیستم با استفاده از حملات brute-force و محافظت از برنامه‌ها، به ایمن‌سازی سرور کمک می‌کنند.

۱. ایمن‌سازی دسترسی به شبکه با UFW

اوبونتو با یک ابزار پیکربندی فایروال کاربرپسند به نام UFW ارائه می‌شود که رابط کاربری ساده‌ای برای مدیریت قوانین فایروال بر اساس iptables ارائه می‌دهد.

نصب و فعال‌سازی UFW

در اکثر نصب‌های اوبونتو، UFW از قبل نصب شده است، اما اگر نصب و فعال نشده باشد، می‌توانید با استفاده از دستورات زیر آن را نصب و فعال کنید.

sudo apt update && sudo apt install ufw -y
sudo ufw enable

سرویس‌های ناخواسته را رد کنید

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

اجازه دادن به سرویس‌های ضروری

برای مجاز کردن سرویس‌های ضروری مانند SSH، HTTP و HTTPS می‌توانید از دستورات زیر استفاده کنید:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

محدود کردن دفعات(جلوگیری از حملات Brute Force)

برای محافظت بیشتر از سرور خود در برابر حملات Brute Force، می‌توانید از ویژگی محدود کردن دفعات UFW استفاده کنید، که تعداد تلاش‌های اتصال SSH را که یک کلاینت می‌تواند در یک دوره زمانی معین انجام دهد، محدود می‌کند.

sudo ufw limit ssh

این دستور به اتصالات SSH اجازه می‌دهد، اما تعداد تلاش‌ها را به ۶ تلاش در دقیقه محدود می‌کند و هر آدرس IP که از این حد تجاوز نماید را مسدود می‌کند.

۲. مسدود کردن حملات Brute Force با Fail2ban

Fail2ban ابزاری ضروری برای محافظت از سرور در برابر حملات Brute Force است که با مانیتورینگ بر فایل‌های لاگ برای تلاش‌های ناموفق مکرر برای ورود به سیستم و مسدود کردن آدرس‌های IP متخلف، انجام می‌شود.

Fail2ban را می‌توان از مخازن پیشفرض اوبونتو نصب کرد:

sudo apt install fail2ban

فایل پیکربندی پیشفرض برای Fail2ban در etc/fail2ban/jail.conf/ قرار دارد. با این حال، توصیه می‌شود این فایل را مستقیم تغییر ندهید و یک کپی از پیکربندی برای سفارشی‌سازی تنظیمات خود ایجاد کنید:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

اکنون، فایل jail.local را برای ویرایش باز کنید:

sudo nano /etc/fail2ban/jail.local

مطمئن شوید که بخش [sshd] فعال است (خطوط را از حالت کامنت خارج کنید) تا از سرویس SSH خود محافظت نموده و گزینه‌های زیر را تغییر دهید:

  • enabled: را روی true تنظیم کنید تا محافظت SSH فعال شود.
  • port: پورتی را که SSH روی آن اجرا می‌شود مشخص کنید (پیشفرض ۲۲ است).
  • maxretry: حداکثر تعداد تلاش‌های ناموفق برای ورود به سیستم را قبل از مسدود کردن یک آدرس IP تعریف کنید.
  • bantime: مدت زمان مسدود شدن (به ثانیه) را تعریف کنید.
  • findtime: بازه زمانی شمارش تلاش‌های ناموفق را تنظیم کنید.

به عنوان مثال:

[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600 # Ban IP for 1 hour
findtime = 600 # Count attempts within 10 minutes

پس از ذخیره تغییرات، Fail2ban را ریستارت کنید تا پیکربندی‌های جدید اعمال شوند.

sudo systemctl restart fail2ban

برای بررسی وضعیت Fail2ban و مشاهده jailهای فعال:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

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

برای پروژه‌های مهم خود به دنبال سرور مطمئن هستید؟ خرید سرور مجازی با IP ثابت و سرعت بالا در پارسدو، گزینه‌ای ایده‌آل است.

۳. استفاده از AppArmor برای امنیت برنامه

AppArmor یک سیستم کنترل دسترسی اجباری (MAC) است که با اعمال سیاست‌ها برای برنامه‌های منفرد، یک لایه امنیتی اضافی فراهم می‌کند.

در اکثر نصب‌های اوبونتو، AppArmor از قبل نصب و فعال شده است، اگر فعال نباشد، می‌توانید آن را اجرا و فعال کنید تا در هنگام بوت اجرا شود:

sudo systemctl enable apparmor
sudo systemctl start apparmor

ایجاد پروفایل‌های سفارشی AppArmor

پروفایل‌های AppArmor منابع سیستمی را که یک برنامه می‌تواند به آنها دسترسی داشته باشد، تعریف می‌کنند. به طور پیشفرض، پروفایل‌های AppArmor برای بسیاری از برنامه‌ها در اوبونتو اعمال می‌شوند و می‌توانید پروفایل‌ها را در دایرکتوری /etc/apparmor.d/ پیدا کنید.

می‌توانید با اجرای موارد زیر مشاهده کنید که کدام پروفایل‌ها در حال حاضر بارگذاری شده‌اند:

sudo apparmor_status

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

sudo aa-genprof /path/to/application

پس از ایجاد پروفایل، می‌توانید آن را اجرا کنید:

sudo aa-enforce /path/to/profile

 

حالت Enforce و حالت Complain

AppArmor در دو حالت عمل می‌کند: enforce و complain

  • در حالت enforce ، پروفایل به شدت اجرا می‌شود و هرگونه تخلف منجر به مسدود شدن برنامه می‌شود.
    در حالت complain ، تخلفات ثبت می‌شوند اما اجرا نمی‌شوند، که آن را به یک حالت مفید برای آزمایش پروفایل‌ها تبدیل می‌کند.

برای تغییر حالت یک پروفایل:

sudo aa-enforce /path/to/profile # Enforce mode
sudo aa-complain /path/to/profile # Complain mode

ممیزی با AppArmor

AppArmor لاگ‌هایی ایجاد می‌کند که بینشی در مورد اقدامات اجرایی آن ارائه می‌دهند. این لاگ‌ها را می‌توان در var/log/syslog/ یافت و از ابزارهایی مانند journalctl می‌توان برای مشاهده آنها استفاده کرد.

sudo journalctl -xe | grep apparmor

۴. بهترین شیوه‌های امنیتی بیشتر

فراتر از استفاده از UFW، Fail2ban و AppArmor، گام‌های مهم دیگری نیز وجود دارد که می‌توانید برای مقاوم‌سازی بیشتر سرور خود بردارید:

اوبونتو خود را مدام به‌روزرسانی کنید

اطمینان حاصل کنید که سیستم و تمام بسته‌های نصب شده شما به‌روز هستند تا در برابر آسیب‌پذیری‌ها محافظت شوند:

sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y

برای محافظت از سرور خود، به‌روزرسانی‌های امنیتی خودکار را فعال کنید:

sudo apt install unattended-upgrades

سرویس‌های بلااستفاده را غیرفعال کنید

هر سرویس یا برنامه‌ای که به آن نیاز ندارید باید غیرفعال شود تا سطح حمله کاهش یابد. با این حال، قبل از غیرفعال کردن سرویس‌ها، مهم است که با استفاده از دستور systemctl مشخص کنید کدام یک از آنها روی سرور شما در حال اجرا هستند:

sudo systemctl list-units --type=service

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

sudo systemctl disable service-name

استفاده از احراز هویت کلید SSH

برای بهبود امنیت SSH، از جفت کلیدهای SSH برای احراز هویت استفاده کنید و ورود مبتنی بر رمز عبور را غیرفعال کنید.

ssh-keygen -t rsa -b 4096
ssh-copy-id user@your-server-ip

در مرحله بعد، فایل پیکربندی SSH را ویرایش کنید تا ورود مبتنی بر رمز عبور را غیرفعال کنید:

sudo nano /etc/ssh/sshd_config

PasswordAuthentication را روی no تنظیم ، سپس SSH را ریستارت کنید:

sudo systemctl restart ssh

اکنون، فقط احراز هویت کلید SSH مجاز خواهد بود و امنیت سرور شما افزایش می‌یابد.

جمع‌بندی

ایمن‌سازی سرور پروداکشن اوبونتو گامی حیاتی در محافظت از محیط در برابر حملات مختلف است. با پیکربندی UFW برای مدیریت فایروال، استفاده از Fail2ban برای کاهش حملات brute-force و استفاده از AppArmor برای کنترل رفتار برنامه، می‌توانید خطر دسترسی و حملات غیرمجاز را تا حد زیادی کاهش دهید.
همیشه لاگ‌ها را بخوانید، وصله‌های امنیتی را به موقع اعمال و پیکربندی‌های امنیتی خود را مدام بررسی کنید تا از تهدیدات احتمالی پیشی بگیرید. مقاوم‌سازی سیستم شما امروز، ثبات، امنیت و قابلیت اطمینان آن را در درازمدت تضمین خواهد کرد.

نوشتن نظر

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *