10 تیر

امنیت سرورهای لینوکسی

linux-vps-securing.jpeg

مدیریت سرور لینوکسی فرصت مناسبی برای امتحان موارد جدید و اطلاع از قدرت و انعطاف‌پذیری یک پلتفرم عظیم است. با این وجود، مدیران سرورهای لینوکس باید تمامی احتیاط‌ هایی که برای سایر سیستم‌های متصل به شبکه انجام می‌شود را برای این پلتفرم نیز انجام دهند تا سرور لینوکسی مطمئن و امن باشد.

در حال حاضر بحث‌های بسیاری عموما با عنوان “امنیت لینوکس“ انجام شده است و نظریات بسیاری در مورد سطح امنیتی مناسب برای سرورهای لینوکسی بیان شده است.

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

در این مقاله قصد داریم شما را با تعدادی از متداول‌ترین معیارهای امنیتی در محیط سرور مجازی و سرور اختصاصی لینوکس آشنا کنیم. موارد ذکر شده کامل نمی‌باشند و قطعاً تمامی پیکربندی‌های لازم را پوشش نمی‌دهند اما می‌توانند شما را به منابع بیشتری سوق داده و مسیر رسیدن به سطحی مطلوب از امنیت را برای شما هموار کنند.

جلوگیری از نفوذ با استفاده از فایروال

یکی از آسان‌ترین مراحل امنیتی که به همه‌ی کاربران توصیه می‌شود این است که فایروال را راه‌اندازی و پیکربندی کنند.فایروال مانند یک سد بین ترافیک اینترنت و شبکه شما عمل می‌کند.

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

این عمل با چک کردن ترافیک‌هایی که بر خلاف پیکربندی کاربر درخواست می‌شود انجام می‌پذیرد. عموما، یک سرور از تعداد محدودی پورت شبکه برای سرویس‌های مجاز استفاده می‌کند، بقیه پورت‌ها مورد استفاده قرار نمی‌گیرند و بهتر است که با استفاده از فایروال محافظت شوند. فایروال تمامی ترافیکی که به مقصد این پورت‌ها طراحی شده است را مسدود می‌کند.

با این روش شما می‌توانید داده‌هایی که مورد انتظارتان نیست را نادیده گرفته و یا حتی مصرف سرویس‌هایتان را نیز در برخی موارد مشروط نمایید. قوانین صحیح فایروالی اساس مناسبی برای امنیت شبکه فراهم میکنند.

راه‌حل‌های فایروالی محدودی وجود دارند که در اینجا به طور مختصر در مورد برخی از مشهورترین آن‌ها صحبت خواهیم کرد:

UFW

UFW مخفف عبارت uncomplicated firewal به معنای فایروال ساده است. هدف این فایروال فراهم‌کردن حفاظی مناسب برای سرور به دور از پیچیدگی سایر راهکارهاست.

UFW در حقیقت یک رابط کاربری برای کنترل فایروال netfilter که در هسته لینوکسی قرار دارد، می‌باشد.

جهت اطلاع از چگونگی فعال‌سازی و پیکربندی فایروال UFW بر روی این لینک کلیک کنید.

IPTables

شاید شناخته‌شده‌ترین راهکار فایروالی در لینوکس IPTables باشد. IPTables ابزار دیگری برای مدیریت فایروال netfilterاست. این فایروال مدت زمان زیادی است که در دسترس بوده و تحت بررسی‌های شدید برای اثبات امنیت قرار گرفته‌ است.در حال حاضر یک نسخه از IPTables با عنوان ip6tables وجود دارد که برای اعمال محدودیت در شبکه‌هایی با ساختارIPv6 مورد استفاده قرار می‌گیرد.

احتمالاً در طول مدیریت سرور‌های لینوکسی با iptables مواجه خواهید‌ شد. هرچند که سینتکس این فایروال در محیطgrasp می‌تواند برای بار اول پیچیده باشد اما در عوض قدرتی باورنکردنی دارد و می‌تواند با بسیاری از قوانین انعطاف‌پذیر پیکربندی شود.

جهت اطلاع از چگونگی پیاده‌سازی برخی از قوانین فایروالی IPTables در ubuntu یا سرورهای Debian اینجا و جهت اطلاع از چگونگی انجام این مورد در سیستم‌های CentOS و Fedora و توزیع‌های RHEL اینجا کلیک کنید.

IP6Tables

همانطور که ذکر شد، IPTables برای مدیریت جداولی که شامل قوانین IPv4 می‌باشند استفاده می‌شود. اما اگر IPV6 را بر روی سرورتان فعال کرده‌اید، می‌بایست به ابزار معادل برای IPv6 یعنی IP6Tables نیز توجه داشته باشید.

فایروال netfilter که در هسته لینوکس گنجانده شده است IPv4 و IPv6 را کاملاً مستقل از یکدیگر در نظر می‌گیرد. این دو نسخه IP در جداول متفاوتی نگهداری می‌شوند. قوانینی که سرنوشت یک بسته (Packet) را مشخص می‌کند، توسط نسخه پروتکل IP مورد استفاده، تعیین می‌شوند.

این بدان معناست که هنگامی که IP نسخه 6 فعال می‌شود، قوانینی که برای اداره‌ کردن سرور مورد استفاده قرار می‌گیرد، متفاوت با قوانین قبل می‌باشد. Ip6Tables هم همان دستورات Iptables را شامل می‌شود، بنابراین اجرای همان محدودیت‌ها در جداول ورژن ۶ نیز صورت می‌پذیرد. با وجود این برای کارکرد صحیح باید مطمئن باشید که ترافیک دریافتی مربوط به IPv6 شماست.

NFTables

اگرچه IPTables مدت زمان زیادی است که به عنوان یک فایروال استاندارد در محیط‌ های لینوکسی مورد استفاده قرار می‌گیرد، اخیراً فایروال جدیدی با عنوان nftables نیز به هسته سیستم عامل لینوکس اضافه شده است. NFTables نیز توسط تیم گسترش‌ دهنده IPTables ساخته شده است و به نظر می‌رسد در نهایت جایگزین آن خواهد شد.

فایروال NFTables در تلاش است تا سینتکس‌های قابل خواندن بیشتری نسبت به IPTablse پیاده‌سازی کند و پشتیبانی از IPv4 و IPv6 را با ابزار یکسانی انجام دهد. اگرچه در حال حاضر اکثر توزیع‌های لینوکسی این فایروال را در هسته خود ندارند، اما به زودی استفاده از آن متداول خواهد شد و بهتر است که با کاربرد‌های آن آشنا شوید.

استفاده از SSH برای برقراری اتصال از راه دور امن

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

SSH یک رمزگذاری متناوب ایجاد می‌کند. بدین معنا که ترافیک نامطمئن را در قالب یک ارتباط امن هدایت می‌کند. اساساً اگر دسترسی به ارتباط فیزیکی با سرور ندارید، SSH راهکار اصلی برای تعامل با سرور است.

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

کلمه عبور و کلید SSH

SSH، مدل احراز هویت انعطاف‌پذیری دارد که به شما امکان ورود به سیستم به روش‌های مختلف را می‌دهد. دو نمونه از متداول‌ترین روش‌های احراز هویت و اتصال به سرور از طریق SSH، کلمه عبور و کلید SSH ،SSH -Key می‌باشند.

اگرچه استفاده از کلمه عبور احتمالاً مرسوم‌ترین روش برای اکثر کاربران باشد، با این حال احراز هویت کلمه عبور امنیت کمتری نسبت به کلید SSH دارد. در استفاده از کلمه عبور همواره این امکان وجود دارد که با استفاده از ترکیبات مختلف کاراکتر پسورد حدس زده شود. این مورد که تحت عنوان حملات Brute-Forcing شناخته می‌شود می‌تواند به صورت برنامه‌ریزی شده توسط ابزارهای جدید انجام شود.

از سوی دیگر کلید SSH با ایجاد یک جفت کلید امن کار می‌کند. یک کلید عمومی که به عنوان نمونه به منظور شناسایی کاربر ایجاد شده است. این کلید می‌تواند بدون مشکل در اختیار دیگران قرار داده شود چرا که جز برای شناسایی کاربر و مطابقت با کلید خصوصی کاربردی ندارد. اما کلید خصوصی باید دور از دسترس دیگران قرار داده شود. این کلید برای تأیید تست کلید عمومی مورد استفاده قرار می‌گیرد.

شما می‌توانید کلید عمومی SSH را درون سرور اضافه کنید تا با بررسی مطابقت با کلید خصوصی، دسترسی‌تان به سرور فراهم شود. این کلیدها به حدی پیچیده هستند که حتی حملات Brute-Forcing نیز قادر به رمزگشایی آن‌ها نیستند. علاوه بر این شما می‌توانید از عبارات امنیتی طولانی در کلیدتان استفاده کنید تا امنیت شما افزایش یابد.

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

پیاده‌سازی fail2ban برای مسدود کردن آدرس آی‌پی‌های مختلف

یکی از اقداماتی که می‌تواند امنیت عمومی پیکربندی SSH را بهبود ببخشد پیاده‌سازی ابزاری مثل fail2ban است. Fail2ban سرویسی است که فایل‌های گزارش (Log Files) را مانیتور می‌کند و اگر ترافیک IP کاربری که از راه دور به سیستم متصل نشده است مجاز نباشد، آنرا موقتاً مسدود می‌کند.

راه‌اندازی اصولی fail2ban این امکان را برای شما فراهم می‌کند که کامپیوترهایی که مدام در تلاش ناموفق برای ورود به سیستم هستند را شناسایی کرده و با وضع قوانینی در فایروال ترافیک آن‌ها را برای مدت زمان مشخصی مسدود نماید. این فرآیند راه‌حل آسانی برای ممانعت از حملات Brute-Forcing می‌باشد، چرا که سیستم‌های مهاجم پس از هر بار مسدودی مدت زمانی را اجبارا بدون حمله طی می‌کنند و همین مورد برای نا امید کردن حمله کننده brute force کافیست.

برای اطلاع از چگونگی پیاده‌سازی fail2ban در اوبونتو اینجا کلیک کنید. راهنمایی‌های مشابهی برای توزیع‌های CentOS وDebian نیز وجود دارد.

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

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

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

چندین سیستم تشخیص نفوذ وجود دارد که در ادامه به معرفی برخی از آن‌ها خواهیم پرداخت:

Tripwire

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

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

Aide

یکی دیگر از سیستم‌های تشخیص نفوذ می‌باشد. Aide نیز همانند Tripwire با ساختن مجموعه‌ای از اطلاعات، وضعیت فعلی سیستم را با مقادیری که به عنوان بهترین حالت ذخیره شده است مقایسه می‌کند. هنگامی که در بررسی‌ها اختلافی مشاهده شود، مشکل به مدیر سرور اطلاع داده می‌شود.

Aide و Tripwire راهکارهای مشابهی برای حل مسائل یکسان دارند. مستندات هر دو سیستم را مشاهده کنید و بررسی نمایید که کدام سیستم بیشتر توجه شما را به خودش جلب می‌کند.

برای این که بدانید Aide چگونه به عنوان IDS عمل می‌کند اینجا را بخوانید.

Psad

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

به عنوان مثال اگر کاربری در تلاش برای بررسی آسیب‌پذیری یا اسکن پورت‌ها باشد، Psad می‌تواند این فعالیت را تشخیص داده و قوانین فایروال را به منظور جلوگیری از نفوذ کاربر متخلف تغییر دهد.

این ابزار می‌تواند درجات مختلفی از تهدید را ثبت کند و بر اساس شدت مسأله پیش آمده واکنش نشان دهد. همچنین این امکان وجود دارد که تهدید‌ها را برای مدیر سرور نیز ارسال کند.

برای اطلاع از چگونگی استفاده از Psad به عنوان IDS شبکه اینجا را دنبال کنید.

Bro

یکی دیگر از ابزارهای تشخیص نفوذ شبکه Bro می‌باشد. در حقیقت Bro یک قالب کاری مانیتورینگ شبکه است که می‌تواند علاوه بر کارآیی به عنوان IDs برای مقاصد دیگری مثل جمع‌آوری آمار مصرف منابع، بررسی مشکلات یا تشخیص الگوها به کار رود.

به طور کلی سیستم Bro به دو لایه تقسیم می‌شود. لایه اول بر فعالیت‌ها نظارت کرده و چیزهایی را تولید می‌کند که آن‌ها را به عنوان اتفاقات (events) در نظر می‌گیرد و لایه دوم اتفاقات تولید‌شده را در قالب یک چهارچوب کاری اجرا می‌کند و مواردی که باید انجام شود را اعلام می‌کند.

Bro همچنین می‌تواند هشدار‌ها را اطلاع‌رسانی کند، دستورات سیستم را اجرا کرده، وقایع را ثبت کند و یا به مسیرهای دیگر برود.

برای اطلاع از چگونگی کارکرد Bro به عنوان سیستم تشخیص نفوذ اینجا کلیک کنید.

RKHunter

اگرچه RKHunter از لحاظ فنی یک سیستم تشخیص نفوذ نیست، اما بسیاری از اصول تشخیص نفوذ مبتنی بر میزبانی(Host-based) را به منظورشناسایی روت کیت‌ها (مجموعه‌ای از نرم‌افزارها که کنترل یک سیستم رایانه‌ای را به دست می‌گیرند) و بدافزارها را در بر‌می‌گیرد.

هرچند در دنیای لینوکس ویروس‌های کمی وجود دارند اما بدافزارها و روت‌کیت‌هایی در اطراف شما وجود دارند که می‌توانند اجازه شما برای دستیابی به سیستم را به منظور سوء‌استفاده، بگیرند. RKHunter لیستی از موارد شناخته‌شده سوء‌استفاده را دانلود می‌کند و سیستم شما را مطابق با لیست دانلود شده چک می‌کند. همچنین اگر تنظیمات نامطمئنی در اپلیکیشنی وجود داشته باشد شما را مطلع می‌سازد.

برای اطلاع از چگونگی کارکرد این RKHunter در اوبونتو می‌توانید این مقاله را مطالعه کنید.

توصیه‌های عمومی امنیت

هرچند ابزارها و پیکربندی‌های ذکر شده می‌توانند در افزایش امنیت بخش‌های مختلف سیستم شما کارآمد باشد، اما باید توجه داشته باشید که امنیت تنها شامل پیاده‌سازی ابزارها و سپس رهاسازی آن‌ها نیست. یک امنیت مطمئن خودش را در قالب یک تفکر مطمئن آشکار می‌کند و زمانی حاصل می‌شود که شما سخت کوشی و بررسی موشکافانه و نسبت به فرآیند ایمن‌سازی ممارست و پیگیری داشته باشید.

در این‌جا برخی از قوانین کلی که می‌توانند شما را در یافتن جهت درست استفاده از سیستم به صورت امن راهنمایی کنند را ذکر می‌کنیم:

نسبت به بروزرسانی‌ها توجه داشته باشید و به طور منظم آن‌ها را انجام دهید

برای تمامی نرم‌افزارهایی که بر روی سیستم‌تان دارید هر لحظه ممکن است یک راه نفوذپذیری و آسیب‌رسانی پیدا شود. یکی از کارهای مثبتی که نگه‌دارنده‌های توزیع‌های لینوکس انجام می‌دهند بروزرسانی مخازن دانلود به آخرین نسخه‌های امنیتی می‌باشد.

با این حال اگر شما بروزرسانی‌ها را دانلود و نصب نکنید داشتن آن‌ها در مخازن کمکی به بهبود امنیت سرور شما نمی‌کند.اگرچه یکی از ویژگی‌های مثبت بسیاری از سرورها ثبات در استفاده از نرم‌افزارهایی می‌باشد که امتحان خود را به خوبی پس داده‌اند، اما با این حال بروزرسانی‌های امنیتی به هیچ وجه نباید نادیده گرفته شوند و همواره باید مدنظر باشند.

بسیاری از توزیع‌های لینوکس ایمیل لیست‌های امنیتی فراهم می‌کنند و مخازن امنیتی را به طور منظم با انجام بروزرسانی‌های امنیتی جداسازی می‌کنند.

هنگام دانلود از منابع غیرسمی مراقب باشید

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

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

به عبارت دیگر نرم‌افزارها از PPAها (مخفف عبارت Personal Package Archive به معنای بسته آرشیو شخصی) و مخازن تصادفی که توسط افراد یا سازمان‌هایی که شما نمی‌شناسید به دست شما می‌رسند که می‌تواند با خطرات جدی همراه باشند.هیچ قانونی وضع نشده است و هرچند احتمال دارد اکثر نرم‌افزارهای غیررسمی کاملاً مطمئن باشند اما باید بدانید شما همواره در خطر هستید.

بررسی کنید که آیا می‌توانید توجیهی برای اعتماد به این منابع داشته باشید؟ اگر نتوانستید همواره خطرات احتمالی را مد نظر داشته باشید.

سرویس‌هایتان را بشناسید و آن‌ها را محدود کنید

اگرچه ممکن است هدف کلی از راه‌اندازی یک سرور فراهم‌کردن سرویس‌هایی باشد که هر زمان بتوانید به آن‌ها دسترسی داشته باشید اما سرویس‌های در حال اجرا را تنها به مواردی محدود کنید که به آن‌ها احتیاج دارید و از آن‌ها استفاده می‌کنید.در نظر داشته باشید که فعال کردن هر سرویس می‌تواند برای شما یک تهدید بالقوه باشد و باید تا جایی که می‌توانید تهدید‌ها را از بین ببرید.

این بدان معناست که اگر یک سرور بدون مانیتور راه‌اندازی کرده‌اید و هیچ برنامه گرافیکی را اجرا نمی‌کند باید نرم‌افزار نمایش‌گر سرور را حذف کنید. این مورد می‌تواند برای سایر بخش‌ها نیز انجام شود، مثلاً اگر پرینتر ندارید سرویس ”lp” را غیرفعال کنید و اگر شبکه ویندوزی ندارید سرویس ”samba” را از کار بیندازید.

شما می‌توانید تمامی سرویس‌های در حال اجرا بر روی سرور را شناسایی کنید. در بخش”تهیه یک لیست از ملزومات” این مقاله می‌توانید از چگونگی شناسایی سرویس‌های فعال مطلع شوید.

به جای FTP از SFTP استفاده کنید

شاید برای بسیاری از افراد کنار آمدن با این قضیه کمی سخت باشد اما پروتکل FTP ذاتاً یک پروتکل نا امن است به گونه‌ای که تمامی احراز هویت‌ها در قالب یک متن ساده ارسال می‌شوند. بدین معنا که هرکس بتواند ارتباط بین کامپیوتر شما و سرور را مانیتور کند می‌تواند جزئیات ورود را هم ببیند.

تنها در موارد معدودی استفاده از FTP می‌تواند بدون مشکل باشد. به عنوان مثال اگر می‌خواهید یک سرویس عمومی دانلود که فقط قابلیت خواند‌ه‌شدن (Read-Only) دارد راه‌اندازی کنید، FTP می‌تواند انتخاب مناسبی باشد. نمونه دیگری که استفاده از FTP مناسب است هنگامی است که شما می‌خواهید بین دو کامپیوتر که تحت یک شبکه فایروالیNAT می‌باشند فایل جابجا کنید و مطمئن هستید که شبکه شما کاملاً امن می‌باشد.

در اکثر موارد دیگر شما باید یک جایگزین مطمئن‌تر برای FTP پیدا کنید. یک جایگزین مناسب برای FTP که تحت پروتکلSSH فعالیت می‌کند SFTP می‌باشد که عملکردی بسیار شبیه به FTP دارد اما اساس کار آن تحت پروتکل امن SSH است.

با استفاده از SFTP شما می‌توانید دقیقاً مثل FTP فایل‌هایتان را بین کامپیوتر شخصی و سرور جابجا کنید. با این تفاوت که هیچ خطر امنیتی حین انتقال شما را تهدید نمی‌کند. اکثر نرم‌افزارهای جدید FTP با سرورهای SFTP نیز می‌توانند تبادل اطلاعات داشته باشند.

برای اطلاع از چگونگی استفاده از SFTP به منظور انتقال ایمن فایل‌ها، این راهنما را مطالعه نمایید.

پیاده‌سازی سیاسیت‌های امنیتی کاربری معقول

در بحث مدیریت سرور مراحلی وجود دارد که در صورت انجام می‌توانید امنیت سرور را بالا ببرید.

اولین پیشنهاد این است که دسترسی ورود به سیستم توسط root (بالاترین سطح دسترسی) را غیرفعال کنید. از آنجایی که کاربر root در تمامی سیستم‌های Posix شکل فعال می‌باشد و تمامی اختیارات سیستم را نیز در اختیار دارد یک هدف جذاب برای حمله‌کنندگان محسوب می‌شود. اگر در سیستم‌تان دسترسی sudo را پیکربندی کرده باشید یا کارکردن با دستور suبرایتان راحت باشد، غیرفعال کردن مجوز ورود root به سیستم گاهی اوقات می‌تواند ایده خوبی باشد. بسیاری از افراد با این ایده مخالفند اما می‌توانید با انجام آن بررسی کنید که برای شما مناسب است یا خیر.

شما می‌توانید توسط SSH Deamon (نوعی پیکربندی SSH که امنیت را افزایش می‌دهد) دسترسی از راه دور root یا دسترسی‌های محلی سرور را غیرفعال کنید. شما می‌توانید این محدودیت‌ها را در فایل /etc/securitty اعمال نمایید.همچنین می‌توانید shell را برای کاربران root غیرفعال کنید تا کاربر root دسترسی به shell نداشته باشد و قوانینی برایRam تعیین نمایید که ورود کاربران root به سیستم را با محدودیت مواجه کند. یک مقاله عالی برای غیرفعالسازی ورودroot در توزیع‌های Redhat از لینوکس وجود دارد که می‌توانید از اینجا مطالعه نمایید.

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

این مورد از اهمیت بالایی برخوردار است، چرا که اگر کاربر یا سرویس در معرض خطر قرار بگیرند بر روی سایر بخش‌ها تأثیری ندارد و حمله‌کننده نمی‌تواند به بخش‌های دیگری از سیستم دسترسی داشته باشد. این روش به شما کمک می‌کند تا مشکلات را در محدوده‌ای خاص حبس کنید و از گسترش آن‌ها جلوگیری نمایید.

علاوه بر موارد ذکر شده در بالا لازم است که اکانت‌هایی که وجودشان ضرورتی ندارد را غیرفعال نمایید. این مورد ممکن است وقتی که شما یک نرم‌افزار را حذف می‌کنید اتفاق بیفتد یا وقتی که کاربری مدت زمان زیادی است که دسترسی به سیستم نداشته است.

به تنظیمات مجوزها توجه داشته باشید

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

ایجاد تنظیمات صحیح umask (ویژگی umask مجوزهای پیش‌فرض برای فایل‌ها و پوشه‌های جدید را تعریف می‌کند)می‌تواند قدم موثری در برقراری مجوزهای مورد نیاز باشد.

در خصوص چگونگی کارکرد مجوزها و چگونگی تنظیم  umask می‌توانید اینجا را بخوانید.

در کل اگر می‌خواهید فایلی را قابل نوشتن کنید، به‌خصوص اگر این فایل در فضای اینترنت قابل دسترسی است، باید حواستان را به دقت جمع کنید چرا که در صورت بروز اشتباه می‌تواند عواقب جبران‌ناپذیری داشته باشد. علاوه بر این، اگر دانش کافی در خصوص کاری که انجام می‌دهید ندارید به هیچ عنوان نباید مجوزها را به صورت SGID یا SUID تنظیم نمایید. همچنین بررسی کنید فایل‌هایتان حتماً کاربر (owner) و گروه (group) داشته باشند.

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

سرور را مرتبا از نظر وجود بدافزار بررسی نمایید

اگرچه عمدتا سرور اختصاصی لینوکس کمتر از ویندوز مورد هدف بدافزارها قرار می‌گیرد، اما این بدان معنا نیست که از شر نرم‌افزارهای مخرب در امان است. هنگام پیاده‌سازی IDS به منظور تشخیص تلاش‌هایی که برای نفوذ انجام می‌شود، جستجوی بدافزارها می‌تواند در تشخیص آثار فعالیت‌هایی که نشان از نصب نرم‌افزارهای نامعتبر بر روی سرور شما دارد مؤثر باشد.

در حال حاضر تعدادی از پویشگرهای بدافزار برای سیستم عامل لینوکس موجود می‌باشند که می‌توانند به طور مداوم وضعیت سرور شما را از لحاظ آلودگی به بدافزار بررسی کنند. نرم‌افزار Linux Malware Detect (تشخیص بدافزار لینوکس) که با عناوین maldet یا LMD نیز شناخته می‌شود یکی از معروفترین نرم‌افزارهای شناسایی بدافزار در لینوکس است که به آسانی نصب و پیکربندی آن به منظور پویش بدافزارها انجام می‌شود. این نرم‌افزار می‌تواند به منظور پویش بدافزارها به طور دستی برنامه‌ریزی شده تا در دوره‌های زمانی مشخصی اجرا شود. همچنین قابلیت ارسال گزارش پویش‌ها از طریق ایمیل برای مدیر سرور نیز از ویژگی‌های این نرم‌افزار می‌باشد.

چگونگی برقراری امنیت نرم‌افزارهای خاص

اگرچه این مقاله آنچنان کامل نیست که بتواند مباحث امنیتی هر نوع از سرویس ها یا نرم‌افزارها را در بر گیرد اما مقالات و راهنماهایی‌های آنلاین زیادی در این خصوص وجود دارد. شما باید توصیه‌های امنیتی مربوط به هر پروژه‌ای که قصد پیاده‌سازی آن بر روی سرورتان را دارید مطالعه نمایید.

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

برای مشاهده توصیه‌های امنیتی بیشتر در مورد نرم‌افزارهای امنیتی‌تان می‌توانید بخش امنیت ما را مشاهده نمایید.

جمع‌بندی

امید است که پس از خواندن این مقاله به درک بهتری نسبت به پیاده‌سازی موارد امنیتی بر روی سرورهای لینوکسی دست یافته باشید. اگرچه در این مقاله سعی بر آن بود بسیاری از موارد مهم ذکر شوند اما در نهایت تصمیم نهایی در خصوص چگونگی پیاده‌سازی امنیت بر روی سرور بر عهده شماست. باید توجه داشته باشید که اگر مدیریت سروری با شماست مسئولیت برقراری امنیت سرور نیز با شماست.

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

اشتراک

ارسال نظر