چگونه سرور اوبونتو را با UFW، Fail2ban و AppArmor ایمن کنیم؟
هنگام راهاندازی سرور اوبونتو برای محیط عملیاتی، ایمنسازی سیستم برای اطمینان از پایداری، ایمنی و دسترسیپذیری آن بسیار مهم است. اگرچه اوبونتو دارای ویژگیهای امنیتی داخلی زیادی است، اما انجام اقدامات اضافی برای محافظت از سیستم در برابر دسترسی و حملات غیرمجاز مهم است.در این مطلب، سه ابزار ضروری UFW ، Fail2ban و AppArmor را برای افزایش امنیت سرور اوبونتو را بررسی خواهیم کرد.
این ابزارها با کنترل دسترسی به شبکه، جلوگیری از تلاشهای ورود به سیستم با استفاده از حملات brute-force و محافظت از برنامهها، به ایمنسازی سرور کمک میکنند.
1. ایمنسازی دسترسی به شبکه با UFW
اوبونتو با یک ابزار پیکربندی فایروال کاربرپسند به نام UFW ارائه میشود که رابط کاربری سادهای برای مدیریت قوانین فایروال بر اساس iptables ارائه میدهد.
نصب و فعالسازی UFW
در اکثر نصبهای اوبونتو، UFW از قبل نصب شده است، اما اگر نصب و فعال نشده باشد، میتوانید با استفاده از دستورات زیر آن را نصب و فعال کنید.
سرویسهای ناخواسته را رد کنید
برای مسدود کردن تمام ترافیک ورودی به طور پیشفرض و فقط اجازه دادن به پورتهای خاص، UFW را طوری پیکربندی کنید که تمام ترافیک ورودی را رد کند، به جز سرویسهایی که به طور صریح اجازه میدهید:
اجازه دادن به سرویسهای ضروری
برای مجاز کردن سرویسهای ضروری مانند SSH، HTTP و HTTPS میتوانید از دستورات زیر استفاده کنید:
محدود کردن دفعات(جلوگیری از حملات Brute Force)
برای محافظت بیشتر از سرور خود در برابر حملات Brute Force، میتوانید از ویژگی محدود کردن دفعات UFW استفاده کنید، که تعداد تلاشهای اتصال SSH را که یک کلاینت میتواند در یک دوره زمانی معین انجام دهد، محدود میکند.
این دستور به اتصالات SSH اجازه میدهد، اما تعداد تلاشها را به 6 تلاش در دقیقه محدود میکند و هر آدرس IP که از این حد تجاوز نماید را مسدود میکند.
۲. مسدود کردن حملات Brute Force با Fail2ban
Fail2ban ابزاری ضروری برای محافظت از سرور در برابر حملات Brute Force است که با مانیتورینگ بر فایلهای لاگ برای تلاشهای ناموفق مکرر برای ورود به سیستم و مسدود کردن آدرسهای IP متخلف، انجام میشود.
Fail2ban را میتوان از مخازن پیشفرض اوبونتو نصب کرد:
فایل پیکربندی پیشفرض برای Fail2ban در etc/fail2ban/jail.conf/ قرار دارد. با این حال، توصیه میشود این فایل را مستقیم تغییر ندهید و یک کپی از پیکربندی برای سفارشیسازی تنظیمات خود ایجاد کنید:
اکنون، فایل jail.local را برای ویرایش باز کنید:
مطمئن شوید که بخش [sshd] فعال است (خطوط را از حالت کامنت خارج کنید) تا از سرویس SSH خود محافظت نموده و گزینههای زیر را تغییر دهید:
- enabled: را روی true تنظیم کنید تا محافظت SSH فعال شود.
- port: پورتی را که SSH روی آن اجرا میشود مشخص کنید (پیشفرض ۲۲ است).
- maxretry: حداکثر تعداد تلاشهای ناموفق برای ورود به سیستم را قبل از مسدود کردن یک آدرس IP تعریف کنید.
- bantime: مدت زمان مسدود شدن (به ثانیه) را تعریف کنید.
- findtime: بازه زمانی شمارش تلاشهای ناموفق را تنظیم کنید.
به عنوان مثال:
پس از ذخیره تغییرات، Fail2ban را ریستارت کنید تا پیکربندیهای جدید اعمال شوند.
برای بررسی وضعیت Fail2ban و مشاهده jailهای فعال:
Fail2ban اکنون به طور فعال از سرور شما در برابر تلاشهای ورود به سیستم SSH با حمله جستجوی فراگیر محافظت میکند.
برای پروژههای مهم خود به دنبال سرور مطمئن هستید؟ خرید سرور مجازی با IP ثابت و سرعت بالا در پارسدو، گزینهای ایدهآل است.
3. استفاده از AppArmor برای امنیت برنامه
AppArmor یک سیستم کنترل دسترسی اجباری (MAC) است که با اعمال سیاستها برای برنامههای منفرد، یک لایه امنیتی اضافی فراهم میکند.
در اکثر نصبهای اوبونتو، AppArmor از قبل نصب و فعال شده است، اگر فعال نباشد، میتوانید آن را اجرا و فعال کنید تا در هنگام بوت اجرا شود:
ایجاد پروفایلهای سفارشی AppArmor
پروفایلهای AppArmor منابع سیستمی را که یک برنامه میتواند به آنها دسترسی داشته باشد، تعریف میکنند. به طور پیشفرض، پروفایلهای AppArmor برای بسیاری از برنامهها در اوبونتو اعمال میشوند و میتوانید پروفایلها را در دایرکتوری /etc/apparmor.d/ پیدا کنید.
میتوانید با اجرای موارد زیر مشاهده کنید که کدام پروفایلها در حال حاضر بارگذاری شدهاند:
اگر یک برنامه سفارشی دارید که به یک پروفایل خاص نیاز دارد، میتوانید یک پروفایل جدید ایجاد کنید یا یک پروفایل موجود را تغییر دهید.
پس از ایجاد پروفایل، میتوانید آن را اجرا کنید:
حالت Enforce و حالت Complain
AppArmor در دو حالت عمل میکند: enforce و complain
- در حالت enforce ، پروفایل به شدت اجرا میشود و هرگونه تخلف منجر به مسدود شدن برنامه میشود.
در حالت complain ، تخلفات ثبت میشوند اما اجرا نمیشوند، که آن را به یک حالت مفید برای آزمایش پروفایلها تبدیل میکند.
برای تغییر حالت یک پروفایل:
ممیزی با AppArmor
AppArmor لاگهایی ایجاد میکند که بینشی در مورد اقدامات اجرایی آن ارائه میدهند. این لاگها را میتوان در var/log/syslog/ یافت و از ابزارهایی مانند journalctl میتوان برای مشاهده آنها استفاده کرد.
۴. بهترین شیوههای امنیتی بیشتر
فراتر از استفاده از UFW، Fail2ban و AppArmor، گامهای مهم دیگری نیز وجود دارد که میتوانید برای مقاومسازی بیشتر سرور خود بردارید:
اوبونتو خود را مدام بهروزرسانی کنید
اطمینان حاصل کنید که سیستم و تمام بستههای نصب شده شما بهروز هستند تا در برابر آسیبپذیریها محافظت شوند:
برای محافظت از سرور خود، بهروزرسانیهای امنیتی خودکار را فعال کنید:
سرویسهای بلااستفاده را غیرفعال کنید
هر سرویس یا برنامهای که به آن نیاز ندارید باید غیرفعال شود تا سطح حمله کاهش یابد. با این حال، قبل از غیرفعال کردن سرویسها، مهم است که با استفاده از دستور systemctl مشخص کنید کدام یک از آنها روی سرور شما در حال اجرا هستند:
پس از شناسایی سرویسهای غیرضروری، میتوانید آنها را غیرفعال کنید تا از شروع خودکار سرویس هنگام بوت جلوگیری شود و در نتیجه سطح حمله کاهش یابد.
استفاده از احراز هویت کلید SSH
برای بهبود امنیت SSH، از جفت کلیدهای SSH برای احراز هویت استفاده کنید و ورود مبتنی بر رمز عبور را غیرفعال کنید.
در مرحله بعد، فایل پیکربندی SSH را ویرایش کنید تا ورود مبتنی بر رمز عبور را غیرفعال کنید:
PasswordAuthentication را روی no تنظیم ، سپس SSH را ریستارت کنید:
اکنون، فقط احراز هویت کلید SSH مجاز خواهد بود و امنیت سرور شما افزایش مییابد.
جمعبندی
ایمنسازی سرور پروداکشن اوبونتو گامی حیاتی در محافظت از محیط در برابر حملات مختلف است. با پیکربندی UFW برای مدیریت فایروال، استفاده از Fail2ban برای کاهش حملات brute-force و استفاده از AppArmor برای کنترل رفتار برنامه، میتوانید خطر دسترسی و حملات غیرمجاز را تا حد زیادی کاهش دهید.
همیشه لاگها را بخوانید، وصلههای امنیتی را به موقع اعمال و پیکربندیهای امنیتی خود را مدام بررسی کنید تا از تهدیدات احتمالی پیشی بگیرید. مقاومسازی سیستم شما امروز، ثبات، امنیت و قابلیت اطمینان آن را در درازمدت تضمین خواهد کرد.