احتمالاً شما هم شنیدهاید که لینوکس ذاتاً سیستمعامل امنی است؛ اما در واقعیت، درست چند ثانیه بعداز روشن شدن یک سرور خام و اتصال آن به اینترنت، باتهای اتوماتیک تلاش برای حدس زدن پسورد و نفوذ را شروع میکنند. اگر تنظیمات پیشفرض را به حال خود رها کنید، حتی پایدارترین توزیعها نیز خیلی زود قربانی حملات میشوند. اما با اشاره به این اهمیت، خوشبختانه تأمین امنیت لینوکس سرور در گرو اجرای دقیق و ساختاریافتهی فرایند Hardening لینوکس است.
در این مقاله، میخواهیم یاد بگیریم که چگونه سرور لینوکس را امن کنیم. مواردی مثل محدود کردن دسترسیها و مدیریت اصولی کاربران، تنظیم دقیق فایروال و نصب ابزارهای مانیتورینگ مانند Fail2Ban و بررسی یک چک لیست امنیت سرور لینوکس کاربردی برای محیط Production را قدمبهقدم بررسی خواهیم کرد تا مطمئن شویم هیچ حفرهای در لایه نرمافزار و شبکه سرور شما باز نمانده است.
فهرست مطالب
مدیریت کاربران
راحتترین کار برای کانفیگ سرور این است که با کاربر root لاگین کنید و تمام دستورات را بدون هیچ مانعی اجرا کنید؛ اما اینکار در عمل، دقیقاً معادل این است که کلید اصلی اتاق سرور سازمان را روی میز نگهبانی رها کنید!
برای افزایش امنیت لینوکس سرور، مدیریت صحیح کاربران همیشه نقطه شروع است. براساس استانداردهای امنیتی (مانند مستندات Ubuntu Security)، پیادهسازی اصلِ حداقل دسترسی (Least Privilege) یک الزام قطعی است. مطابق این اصل، برای امن سازی سرور لینوکس در لایه کاربران، این سه قانون طلایی را پیادهسازی کنید:
- غیرفعال کردن root login:
هیچکس (حتی خود شما) نباید بتواند مستقیماً با یوزر روت ازطریق شبکه لاگین کند. - استفاده از مکانیزم sudo:
- یک کاربر معمولی بسازید و فقط برای اجرای دستورات مهم، موقتاً سطح دسترسی را با sudo ارتقا دهید.
- محدود کردن دسترسی کاربران:
کاربران را گروهبندی کنید و مجوز خواندن و نوشتن فایلهای سیستمی را فقط به کسانی بدهید که واقعاً به آن نیاز دارند.
امنیت SSH بهعنوان ورودی اصلی سرور
پروتکل SSH راه اصلی ارتباط شما با سرور است و دقیقاً به همین دلیل، جذابترین هدف برای هکرها محسوب میشود. یکی از مهمترین گامها در آموزش hardening لینوکس سرور، ایمنسازی همین درگاه است. به گفتۀ OpenSSH Best Practices، اگر سرویس SSH خود را با تنظیمات پیشفرض رها کنید، در واقع سرور خود را در معرض حملات مداوم قرار دادهاید. برای افزایش امنیت ssh در لینوکس، سه اقدام زیر از نان شب واجبتر هستند:
۱- تغییر پورت پیشفرض
باتهای اسکنر اینترنت، معمولاً فقط پورت ۲۲ (پورت پیشفرض SSH) را برای یافتن سرورهای آسیبپذیر جستجو میکنند. با تغییر پورت SSH به یک عدد تصادفی بین ۱۰۲۴ تا ۶۵۵۳۵ (مثلاً ۲۲۴۴)، حجم عظیمی از این حملات کور و خودکار را خنثی میکنید و اولین قدم را برای جلوگیری از هک سرور لینوکس برمیدارید.
۲- استفاده از کلید SSH
پسوردها هرچقدر هم که پیچیده باشند، قابل حدس زدن یا فاش شدن هستند. استفاده از SSH key (جفت کلید عمومی و خصوصی) بهجای رمز عبور، امنیت احراز هویت را بهشدت بالا میبرد. پساز تنظیم کلیدها، ورود با پسورد را در فایل sshd_config کاملاً غیرفعال کنید.
۳- محدود کردن IPهای مجاز
اگر تیم فنی شما از IPهای ثابت (مانند IP دفتر شرکت یا یک سرور با امنیت بالا در شبکه) استفاده میکند، در فایروال تنظیم کنید که دسترسی به پورت سرور فقط ازطریق این آدرسهای مشخص مجاز باشد. این کار، دسترسی عمومی به صفحه لاگین سرور را بهطور کامل مسدود میکند.
تنظیمات فایروال شبکه
بدون فایروال (Firewall)، سرور شما شبیه خانهای است که تمام در و پنجرههایش باز است! یکی از تنظیمات امنیتی ضروری لینوکس، فعال سازی firewall و پیکربندی دقیق آن است. فرقی نمیکند به دنبال تامین امنیت سرور ubuntu / centos باشید؛ قانون طلایی فایروال در لینوکس (چه UFW و چه Firewalld) یک چیز است: همهچیز را مسدود کن، مگر آنچه واقعاً نیاز است.
بستن پورتهای غیرضروری در لینوکس باعث میشود سرویسهای داخلی که نیازی به ارتباط با اینترنت ندارند، از دسترس هکرها دور بمانند.
| وضعیت | نوع ترافیک / پورت | سرویس مربوطه |
|---|---|---|
| مجاز (Allow) | ۸۰ و ۴۴۳ | ترافیک وب (HTTP / HTTPS) |
| مجاز (Allow) | پورت سفارشی (مثلاً ۲۲۴۴) | دسترسی SSH (ترجیحاً محدود به IP خاص) |
| مسدود (Drop) | سایر پورتها | دیتابیسها، سرویسهای ایمیل داخلی و… |
ابزارهای جلوگیری از نفوذ و مانیتورینگ پیشگیرانه
امن سازی سرور لینوکس برای production فقط به تنظیمات اولیه ختم نمیشود؛ شما به چشمانی بیدار برای مانیتورینگ امنیت سرور نیاز دارید. مدیریت امنیت سرور یک فرایند مستمر است و ابزارهای مانیتورینگ به شما کمک میکنند تا حملات به سرور لینوکس را پیشاز تبدیل شدن به بحران شناسایی و دفع کنید.
مسدودسازی حملات Brute-Force با نصب Fail2Ban
حتی اگر پورت SSH را تغییر داده باشید، باز هم ممکن است مهاجمان پورت جدید را پیدا کنند. در مرحله بعدی است که نصب Fail2Ban بهعنوان یک سپر دفاعی هوشمند اهمیت پیدا میکند.
این ابزار با مانیتورینگ لاگها (مانند لاگهای ورود ناموفق)، رفتارهای مشکوک را تشخیص میدهد. اگر یک IP ناشناس چندینبار تلاش ناموفق برای ورود داشته باشد، Fail2Ban بهصورت خودکار آن IP را ازطریق فایروال (iptables/nftables) برای مدتزمان مشخصی مسدود میکند. این کار بار پردازشی سرور را در زمان حملات Brute-Force بهشدت کاهش میدهد.
فعالسازی SELinux یا AppArmor
بسیاری از مدیران سیستم بهمحض راهاندازی سرور، SELinux یا AppArmor را غیرفعال میکنند، چون تنظیم آنها کمی پیچیده است! اما این ماژولهای امنیتی (Mandatory Access Control)، لایه نهایی دفاع در امنیت زیرساخت سازمانی هستند.
اگر هکری بتواند ازطریق یک باگ نرمافزاری به وبسرور شما نفوذ کند، SELinux مانع از آن میشود که هکر بتواند به فایلهای حساس سیستمعامل یا سایر سرویسها دسترسی پیدا کند. در واقع، این ابزارها آسیبپذیریها را در یک محیط ایزوله حبس میکنند که برای امنیت سرور در ایران و میزبانی دادههای مهم، یک ضرورت غیرقابل انکار است.
اهمیت آپدیت سیستمعامل
سادهترین راه مقابله با آسیبپذیریها آپدیتکردن است؛ چون هکرها همیشه از روشهای پیچیده استفاده نمیکنند و گاهی فقط منتظر میمانند تا شما بهروزرسانی سیستم را فراموش کنید! براساس Red Hat Security Updates Guide، درصد بالایی از حملات به سرور لینوکس ازطریق رخنههای شناختهشدهای انجام میشود که مدتها پیش وصله (Patch) امنیتی آنها منتشر شده است؛ بنابراین بررسی و نصب منظم آپدیت سیستم عامل، یک اصل حیاتی برای تأمین امنیت لینوکس سرور است و نقش مهمی در جلوگیری از هک سرور دارد.
اما ازآنجاکه بررسی روزانه پکیجها برای مدیران سیستم خستهکننده و زمانبر است، بهترین راهحل، فعالسازی آپدیتهای امنیتی خودکار است. استفاده از ابزارهایی مانند unattended-upgrades (در اوبونتو/دبیان) یا dnf-automatic (در توزیعهای مبتنیبر ردهت) به شما اطمینان میدهد که سیستم بهمحض انتشار پچهای حیاتی، آنها را بیسروصدا در پسزمینه دریافت و نصب میکند.
چک لیست امنیت لینوکس سرور برای زیرساختی نفوذناپذیر

بسیاری از کاربران از ما میپرسند که بهطور خلاصه بگویید که چگونه سرور لینوکس را امن کنیم؟ بهترین پاسخ، داشتن نقشه راهی شفاف است. براساس استانداردهای سختگیرانه CIS Linux Hardening Benchmarks، ما در ابر فردوسی مهمترین تنظیمات امنیتی ضروری لینوکس را در قالب یک لیست سریع برای شما آماده کردهایم.
برای تبدیل یک سرور خام به سرور امن لینوکس، مطمئن شوید که این اقداماتِ مرتبط با hardening لینوکس را تیک زدهاید:
- مدیریت دسترسی: غیرفعال کردن root login ازطریق SSH و استفاده انحصاری از کاربری با دسترسی sudo
- ایمنسازی ورود: تغییر پورت پیشفرض SSH، غیرفعالسازی ورود با رمز عبور و استفاده از SSH Key
- پیکربندی فایروال: مسدود کردن تمام پورتهای غیرضروری شبکه و بازگذاشتن پورتهای ضروری (مثل ۸۰ و ۴۴۳)
- نصب ابزارهای دفاعی: کانفیگ Fail2Ban برای بلاک کردن IPهای مهاجم در حملات Brute-Force
- بهروزرسانی مداوم: فعالسازی دریافت خودکار پچهای امنیتی سیستمعامل
- محیط شبکه ایزوله: درصورت نیاز به افزایش امنیت سرور در اینترنت ملی، محدود کردن دسترسیها به شبکه خصوصی (Private Network) و استفاده از یک زیرساخت امن ابری استاندارد.
با اجرای دقیق این چکلیست امنیت لینوکس سرور، شما صاحب یک سرور با امنیت بالا هستید که نفوذ به آن نیازمند صرف زمان و هزینه گزافی از سوی مهاجمان خواهد بود.
امنیت در لایه زیرساخت شبکه
ما فرض را بر این میگیریم که شما تمام مراحل بالا را موبهمو اجرا کردهاید. پورتها بستهاند، SSH با کلید رمزنگاری شده و فایروال به بینقصترین شکل ممکن کانفیگ شده است. اما ناگهان سرور شما با یک حمله عظیم DDoS (محرومسازی از سرویس) یا یک اکسپلویت در سطح سختافزار مواجه میشود. در این شرایط، بهترین کانفیگهای لینوکس هم کاری از پیش نمیبرند، زیرا ترافیک مخرب، کل پهنای باند سرور را در لایه شبکه مسدود کرده است!
طبق اصول معماری امنیت، دفاع واقعی باید ساختار لایهای داشته باشد. بخش بزرگی از امنیت شبکه لینوکس به دیتاسنتر و بستر ابریِ میزبان شما بستگی دارد. استفاده از یک زیرساخت ابری استاندارد که مجهز به فایروالهای سختافزاری، سیستمهای Anti-DDoS و شبکهای پایدار باشد، همان سد دفاعی اولیهای است که حملات سنگین را پیشاز رسیدن به سیستمعامل شما دفع میکند. ما در ابر فردوسی، این دغدغه را با معماری شبکه ایزوله و امن برطرف کردهایم. اگر میخواهید خیالتان از بابت پایداری در برابر حملات زیرساختی راحت باشد، میتوانید با استفاده از ۱۰۰ هزار تومان اعتبار هدیه، همین حالا کیفیت شبکه و لایههای امنیتی ما را تست کنید و برای اجاره سرور ابری با خیالی آسوده قدم بردارید.
جمعبندی
همانطورکه در این مقاله گفتیم و در منابعی مثل SANS Security Resources تاکیدشده، ترکیب Hardening سیستمعامل (مثل محدودسازی SSH و فایروال) در کنار انتخاب یک زیرساخت ابری قدرتمند، ریسک نفوذ را به حداقل ممکن میرساند و تأثیر زیادی روی تامین امنیت لینوکس سرور دارد.
حالا شما بگویید که در میان تمام این تنظیمات، کدام مرحله از چک لیست امنیتی لینوکس معمولاً توسط مدیران سیستم فراموش میشود؟ آیا تجربهای از دفع حملات روی سرورهای خود داشتهاید؟ نظرات و تجربیات ارزشمندتان را در بخش دیدگاهها با ما درمیان بگذارید.
منابع:
csrc | ubuntu | man.openbsd | fail2ban | access | cisecurity
سؤالات متداول
آیا سرور لینوکسی خامِ من بهطور پیشفرض امن است؟
به هیچ وجه! سرورهای خام معمولاً با تنظیمات پیشفرض سازندگان سیستمعامل تحویل داده میشوند و تمرکز بیشتری روی رابط کاربری دارند. از لحظهای که سرور به اینترنت متصل میشود، در معرض اسکنهای خودکار رباتها قرار دارد و باید بلافاصله فرایند Hardening روی آن اجرا شود.
برای SSH، رمز عبور قوی بهتر است یا کلید SSH ؟
استفاده از کلید SSH (بهویژه با الگوریتمهای مدرن مانند Ed25519) همیشه اولویت دارد. رمزهای عبور، هرچقدر هم پیچیده باشند، دربرابر حملات Brute-Force و حدس کلمات عبور آسیبپذیرند، درحالیکه کلیدهای رمزنگاریشده عملاً غیرقابل هک هستند.
آیا تغییر پورت SSH (پورت ۲۲) واقعاً به امنیت کمک میکند؟
تغییر پورت پیشفرض جلوی هکرهای حرفهای (که پورتاسکن انجام میدهند) را نمیگیرد، اما امنیت در برابر بدافزارهای خودکار را بهشدت افزایش میدهد. این کار باعث میشود لاگهای سرور شما از تلاشهای ناموفق رباتهای اینترنتی پر نشود و منابع سرور هدر نرود.
در زمان مواجهه با حملات عظیم DDoS چه کاری از لینوکس برمیآید؟
ابزارهای داخلی لینوکس و فایروالهای نرمافزاری (مثل UFW یا iptables) توانایی پردازش ترافیک میلیونی حملات DDoS را ندارند و در نهایت منابع سرور مختل میشود. برای دفع این حملات، باید امنیت را به لایه شبکه ببرید و از دیتاسنترها و سرورهای ابری مجهز به تجهیزات سختافزاری Anti-DDoS استفاده کنید.
آیا باید SELinux یا AppArmor را غیرفعال کنم؟
خیر. بسیاری از مدیران سیستم به دلیل چالشبرانگیز بودن تنظیمات SELinux، در اولین قدم آن را غیرفعال (disable) میکنند. این کار یکی از بزرگترین اشتباهات امنیتی است. این ابزارها آخرین خط دفاعی سیستمعامل در برابر دسترسیهای غیرمجاز به فایلهای سیستمی هستند؛ توصیه میشود بهجای غیرفعالسازی، آنها را در حالت permissive قرار دهید تا پساز بررسی لاگها، تنظیمات صحیح را اعمال کنید.
کدام فایروال بهتر است: UFW، iptables یا firewalld؟
در هسته لینوکس، همه این ابزارها در نهایت با Netfilter کار میکنند. انتخاب آنها به توزیع شما و راحتی خودتان بستگی دارد. UFW برای اوبونتو و کاربران تازهکار بسیار ساده و کاربردی است، اما Firewalld برای RHEL/CentOS استاندارد محسوب میشود. Iptables نیز قدرتمندترین اما پیچیدهترین گزینه است.
آیا بستن تمام پورتها و باز کردن فقط پورتهای ضروری، استراتژی درستی است؟
بله، این قانون طلایی فایروالهاست: «همهچیز را مسدود کن (Drop All)، مگر آنکه صراحتاً به آن نیاز داشته باشی.» تنها پورتهای موردنیاز سرویسهایتان (مثلاً ۸۰ و ۴۴۳ برای وبسرور و یک پورت سفارشی برای SSH) باید در دسترس عموم قرار بگیرند.

