امنیت سرورهای لینوکسی (پارت اول)

  • نوشته شده توسط 

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

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

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

1. ارتباط داده های خود را رمزنگاری کنید :

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

برای انتقال فایل های خود از Scp ، SSH، SFTP  استفاده کنید. شما همچنین می توانید server file system ریموت راه اندازی کنید. GnuPG به شما اجازه می دهد  داده ها و ارتباطات خود را رمزگذاری کرده و امضا نمایید.به خاطر داشته باشید که OpenVPn یک VPN مقرون به صرفه و سبک است.

 2. از به کار بردن سرویس های FTP، تلنت و Rlogin / Rsh خودداری کنید:

در بیشتر پیکربندی های شبکه، نام کاربری، پسوردها، دستورات FTP و تلنت و فایل های منتقل شده را می توان به کمک packet sniffer به دست آورد. راه حل رایجی که برای این مشکل وجود دارد استفاده از گزینه های جایگزین همچون open srs،SFTP، FTPS است که رمزگذاری  SSL یا TLS را به FTP اضافه می کند. برای پاک کردن NIS، RSH و سایر سرویس های قدیمی می توانید از دستور زیر استفاده کنید:

# yum erase xinetd ypserv tftp-server telnet-server rsh-server

اگر از سرورهای مبتنی بر دبیان یا اوبونتو استفاده می کنید برای حذف سرویس های نا امن از دستور زیر استفاده کنید:

$ sudo apt-get –purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server

 3. برای کاهش آسیب پذیری بهتر است نرم افزارهای موجود را به حداقل برسانید:

به این فکر کنید که ایا واقعا به تمامی سرویس هایی که بر روی سرور خود نصب کرده اید نیاز دارید؟ از نصب نرم افزارهای غیر ضروری بر روی سرور اجتناب کنید تا آسیب پذیری آن را کمتر نمایید. از مواردی همچون Yum یا apt-get استفاده کنید تا بتوانید تمامی بسته های نرم افزاری نصب شده بر روی سرور را مرور کنید. تمامی بسته های اضافی را حذف کنید:

# yum list installed
# yum list packageName
# yum remove packageName 

4. تغییر پورت پیشفرض ssh :


این کار بسیار ساده است، فایل کانفیگ SSH را با یک ویرایشگر باز می کنیم و دنبال خط #Port 22 می گردیم، خط را از حالت کامنت خارج کرده و عدد 22 را به عدد دلخواه (در بازه 1024 تا 65535) تغییر می دهیم. فایل را ذخیره کرده و خارج می شویم.حالا باید به سراغ فایروال رفته و پورت مورد نظر را برای SSH باز کنیم. ابتدا فایل تنظیمات فایروال را با یک ویرایشگر باز می کنیم. 

nano /etc/sysconfig/iptables


و خط زیر را در فایل فایروال وارد کرده و آن را ذخیره می کنیم 

-A INPUT -m state --state NEW -m tcp -p tcp --dport Port_Delkhah -j ACCEPT

فایل فایروال را ذخیره کرده و در پایان سرویس فایروال را ریست می کنیم 

/etc/init.d/iptables restart 

5. یک سرویس شبکه به ازای هر سیستم یا Instance ماشین مجازی :

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

 6. از اکستنشن های لینوکس استفاده کنید :

همانطور که می دانید لینوکس بسته های امنیتی متعددی را ارائه می کند و می توان از این بسته ها  برای محافظت از سیستم در برابر برنامه هایی که دچار مشکل شده اند یا به درستی پیکربندی نشده اند استفاده کرد. اگر برایتان ممکن بود از

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

7. عمر پسورد :

دستور chage، می تواند تعداد روزهایی که بین تغییر پسورد وجود دارد را تعیین کند. این اطلاعات توسط سیستم مورد استفاده قرار می گیرد و مشخص می کند کاربر چه زمانی ملزم به تغییر پسورد خود است.برای غیر فعالسازی این گزینه می توانید از دستور زیر استفاده کنید:

# chage -M 99999 userName

 

8. لاگین روت را غیر فعال کنید :

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


9. سرویس هایی که نیاز ندارید را غیر فعال سازید:

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

# chkconfig –list | grep 3:on

برای غیر فعال کردن سرویس ها می توانید از دستور زیر استفاده کنید : 

# service serviceName stop

10. از سرویس تایید هویت مرکزی استفاده کنید :

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

  

آخرین ویرایش درسه شنبه, 11 مهر 1396 16:07

از پر شدن تمامی موارد الزامی ستاره‌دار (*) اطمینان حاصل کنید. کد HTML مجاز نیست.