سایتی برای آموزش شبکه در زمینه های سیسکو میکروتیک مایکروسافت مجازی سازی و دیگر مباحث شبکه

راهکارهایی برای افزایش امنیت یک سرور لینوکسی

1 273
Telegram_GEEKBOY

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

گیک بوی بر روی سرورهای قدرتمند هاست هی میزبانی می شود

چیزهایی را نصب کنید که به آن نیاز دارید

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

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

چیزهایی را اجرا کنید که به آن نیاز دارید

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

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

1_143

بر اساس نوع سیستم، شما ممکن است یک خروجی شبیه به آن چه در تصویر بالا مشاهده می‎کنید را دریافت کنید. اگر با هر نوع سرویس ناخواسته مواجه شدید می‎توانید آن را با فرمان قدرتمند systemctl غیر فعال کنید:

محدود کردن دسترسی به سرور

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

هیچ گاه با حساب کاربری Root به سرور وارد نشوید

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

برای اضافه کردن یک کاربر جدید در توزیع‎های مختلف لینوکس شیوه‎های متفاوتی وجود دارد. به عنوان مثال، توزیع Red Hat/CentOS از فرمان useradd و توزیع Ubuntu/Debian از فرمان adduser استفاده می‎کنند.

برای ایجاد یک کاربر جدید در Red Hat/CentOS از فرمان زیر استفاده کنید (swapnil نام کاربر فرضی ما است):

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

بعد از وارد کردن این فرمان از شما درخواست می‎شود که یک کلمه عبور جدید برای این کاربر وارد کنید. حالا باید به این کاربر امکان برخورداری از توانایی‎های sudo را اعطا کنید. برای این منظور فرمان زیر را اجرا کنید:

سپس طبق تصویر زیر به دنبال این خط بگردید

2_124

خط را از حالت کامنت خارج کنید. نماد # در ابتدای هر خط نشان دهنده کامنت بودن (توضیحات) آن خط است و با برداشتن این نماد خط نیز از حالت کامنت خارج و به فرمان تبدیل می‎شود. بعد از انجام این کار خط شما به این شکل در خواهد آمد:

حالا فایل را ذخیره و از آن خارج شوید. اگر این کاربر به گروه wheel تعلق ندارند شما می‎توانید به راحتی با استفاده از فرمان زیر آن را به این گروه اضافه کنید:

در سیستم‎های اوبونتو از این فرمان استفاده کنید:

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

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

غیرفعال کردن امکان ورود با کاربر root

بعد از طی کردن مراحل قبل حالا نوبت آن است که امکان دسترسی کاربر root را غیرفعال کنیم. با این کار دیگر هیچ کس نمی‎تواند از طریق ssh یا روش‎های دیگر به عنوان کاربر روت وارد سیستم شود. برای انجام این کار فایل پیکربندی sshd را باز کنید:

سپس خط زیر را پیدا کرده و آن را از حالت کامنت خارج کنید:

حالا فایل را ذخيره کرده و از آن خارج شوید، بعد سرویس را با استفاده از فرمان زیر ری‎استارت کنید:

یا:

توجه: در این مرحله هنوز نباید از سرور خارج شوید. ابتدا باید امتحان کنید که آیا می‎توانید با موفقیت و با استفاده از حساب کاربری که قبلا ساخته‎اید از طریق ssh وارد سرور شوید. یک پنجره جدید از ترمینال باز کرده و با استفاده از حساب کاربری که قبلا ایجاد کرده بودید به سرور لاگین کنید، اگر همه چیز به خوبی کار کرد حالا می‎توانید با خیال راحت از حساب کاربری روت خارج شوید.

تغییر دادن پورت

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

فایل sshd_config را باز کنید (این بار از طریق فرمان sudo، چرا که دیگر شما نمی‎توانید با استفاده از حساب کاربری روت به سرور وارد شوید):

سپس این خط را پیدا کنید:

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

سپس فایل را ذخیره کرده و از آن خارج شوید و یک بار سرویس sshd را ری‎استارت کنید. یک بار دیگر قبل از خارج شدن از سرور با باز کردن یک پنجره ترمینال دیگر و لاگین کردن با استفاده از الگوی زیر تنظیمات خود را بررسی کنید:

مثال:

This e-mail address is being protected from spambots. You need JavaScript enabled to view it

اگر توانستید با موفقیت به سرور وارد شوید کارها به درستی انجام شده است.

لاگین کردن بدون نیاز به کلمه عبور

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

برای شروع ابتدا کلید ssh را با استفاده از فرمان زير در سیستم محلی خود ایجاد کنید:

3_85

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

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

انجام این مرحله بیشتر از این که جنبه افزایش امنیت داشته باشد برای سهولت در انجام کار مورد استفاده قرار می‎گیرد. اما در مجموع با غیرفعال کردن کامل احراز هویت به وسیله کلمه عبور شما می‎توانید مقداری امنیت سرور خود را نیز بالا ببريد. فایل sshd_config را باز کرده و این خط کامنت شده را پیدا کنید:

سپس آن را از حالت کامنت خارج کنید و مقدار آن را از yes به no تغییر دهید، حالا فایل را ذخيره و از آن خارج شوید. بعد سرویس sshd را ری‎استارت کنید. یک بار دیگر، همچنان ارتباط خود با سرور را در پنجره فعلی باقی نگه دارید. یک ترمینال جدید باز کرده و به سرور لاگین کنید (دقت کنید که این کار بدون پرسیدن کلمه عبور انجام شود).

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

نتیجه‎گیری

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

منبع: shabakeh-mag

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

image_pdfدانلود نسخه PDF
1 نظر
  1. راهکارهایی برای افزایش امنیت یک سرور لینوکسی – Site Title

    […] ادامه مطلب راهکارهایی برای افزایش امنیت یک سرور لینوکس… […]

ارسال یک نظر

آدرس ایمیل شما منتشر نخواهد شد.