هنگام راهاندازی سرور اوبونتو برای محیط عملیاتی، ایمنسازی سیستم برای اطمینان از پایداری، ایمنی و دسترسیپذیری آن بسیار مهم است. اگرچه اوبونتو دارای ویژگیهای امنیتی داخلی زیادی است، اما انجام اقدامات اضافی برای محافظت از سیستم در برابر دسترسی و حملات غیرمجاز مهم است.در این مطلب، سه ابزار ضروری 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 برای کنترل رفتار برنامه، میتوانید خطر دسترسی و حملات غیرمجاز را تا حد زیادی کاهش دهید.
همیشه لاگها را بخوانید، وصلههای امنیتی را به موقع اعمال و پیکربندیهای امنیتی خود را مدام بررسی کنید تا از تهدیدات احتمالی پیشی بگیرید. مقاومسازی سیستم شما امروز، ثبات، امنیت و قابلیت اطمینان آن را در درازمدت تضمین خواهد کرد.