مقدمه
این یک سرور لینوکس جدید خوب است که شما به آنجا رسیدید … حیف است اگر اتفاقی برای آن بیفتد. ممکن است از جعبه خارج شود، اما قبل از اینکه آن را در مرحله تولید قرار دهید، 10 مرحله وجود دارد که باید انجام دهید تا مطمئن شوید که پیکربندی ایمن است. جزئیات این مراحل ممکن است از توزیعی به توزیع دیگر متفاوت باشد، اما از نظر مفهومی برای هر نوع لینوکس کاربرد دارند. با بررسی این مراحل در سرورهای جدید، می توانید اطمینان حاصل کنید که آنها حداقل از محافظت اولیه در برابر رایج ترین حملات سایبری برخوردار هستند.
1 – پیکربندی کاربر
اولین کاری که می خواهید انجام دهید، اگر بخشی از تنظیمات سیستم عامل شما نبود، تغییر رمز عبور root است. این امر باید بدیهی باشد، اما می توان به طرز شگفت انگیزی در طول راه اندازی سرور معمولی نادیده گرفته شود. رمز عبور باید حداقل 8 کاراکتر باشد و از ترکیبی از حروف بزرگ و کوچک، اعداد و نمادها استفاده شود. همچنین اگر میخواهید از حسابهای محلی استفاده کنید، باید یک خطمشی گذرواژه تنظیم کنید که الزامات قدیمی، قفل، تاریخچه و پیچیدگی را مشخص کند. در بیشتر موارد باید کاربر root را به طور کامل غیرفعال کنید و حساب های کاربری غیرمجاز با دسترسی sudo برای کسانی که به حقوق بالا نیاز دارند ایجاد کنید.
2 – پیکربندی شبکه
یکی از ابتداییترین پیکربندیهایی که باید انجام دهید، فعال کردن اتصال شبکه با اختصاص دادن آدرس IP و نام میزبان به سرور است. برای اکثر سرورها، شما می خواهید از یک IP ثابت استفاده کنید تا مشتریان همیشه بتوانند منبع را در همان آدرس پیدا کنند. اگر شبکه شما از VLAN استفاده می کند، در نظر بگیرید که بخش سرور چقدر ایزوله است و بهترین جا را در کجا قرار می دهد. اگر از IPv6 استفاده نمی کنید، آن را خاموش کنید. نام میزبان، دامنه و اطلاعات سرور DNS را تنظیم کنید. دو یا چند سرور DNS باید برای افزونگی استفاده شود و باید nslookup را آزمایش کنید تا مطمئن شوید که وضوح نام به درستی کار می کند.
3 – مدیریت بسته
احتمالاً، شما سرور جدید خود را برای هدف خاصی تنظیم میکنید، بنابراین هر بستهای را که ممکن است نیاز داشته باشید، اگر بخشی از توزیع مورد استفاده شما نیست، نصب کنید. اینها می توانند بسته های کاربردی مانند PHP، MongoDB، ngnix یا بسته های پشتیبانی کننده مانند گلابی باشند. به همین ترتیب، هر بسته اضافی که روی سیستم شما نصب شده است باید حذف شود تا ردپای سرور کوچک شود. همه اینها باید از طریق راه حل مدیریت بسته توزیع شما، مانند Yum یا apt برای مدیریت آسان تر در مسیر انجام شود.
4 – نصب و پیکربندی را به روز کنید
هنگامی که بسته های مناسب را روی سرور خود نصب کردید، باید مطمئن شوید که همه چیز به روز شده است. نه تنها بسته هایی که نصب کرده اید، بلکه هسته و بسته های پیش فرض نیز هستند. مگر اینکه به نسخه خاصی نیاز داشته باشید، همیشه باید از آخرین نسخه تولیدی استفاده کنید تا سیستم خود را ایمن نگه دارید. معمولاً راه حل مدیریت بسته شما جدیدترین نسخه پشتیبانی شده را ارائه می دهد. همچنین اگر انجام این کار برای سرویس(هایی) که در این سرور میزبانی می کنید کار می کند، باید به روزرسانی های خودکار را در ابزار مدیریت بسته تنظیم کنید.
5 – پیکربندی NTP
سرور خود را برای همگام سازی زمان خود با سرورهای NTP پیکربندی کنید. اگر محیط شما دارای سرورهای NTP داخلی باشد، یا سرورهای زمانی خارجی که برای هر کسی در دسترس است، میتوانند باشند. آنچه مهم است جلوگیری از جابجایی ساعت است، جایی که ساعت سرور از زمان واقعی منحرف می شود. این می تواند مشکلات زیادی ایجاد کند، از جمله مشکلات احراز هویت که در آن انحراف زمانی بین سرور و زیرساخت احراز هویت قبل از اعطای دسترسی اندازه گیری می شود. این باید یک ترفند ساده باشد، اما یک زیرساخت قابل اعتماد حیاتی است.
6 – فایروال و iptable
بسته به توزیع شما، جداول ممکن است کاملاً قفل شده باشند و از شما بخواهند که آنچه را که نیاز دارید باز کنید، اما صرف نظر از پیکربندی پیشفرض، همیشه باید نگاهی به آن بیندازید و مطمئن شوید که آنطور که میخواهید تنظیم شده است. به یاد داشته باشید که همیشه از اصل حداقل امتیاز استفاده کنید و فقط پورت هایی را که برای سرویس های آن سرور نیاز دارید باز کنید. اگر سرور شما پشت یک فایروال اختصاصی قرار دارد، مطمئن شوید که همه چیز را رد کنید، به جز آنچه در آنجا لازم است. با فرض اینکه iptables/firewall شما به طور پیش فرض محدود کننده است، فراموش نکنید که آنچه را که برای انجام کار سرور خود نیاز دارید باز کنید!
7 – ایمن سازی SSH
SSH روش اصلی دسترسی از راه دور برای توزیع های لینوکس است و به همین دلیل باید به درستی ایمن شود. شما باید توانایی روت برای SSH را از راه دور غیرفعال کنید، حتی اگر حساب را غیرفعال کرده باشید تا در صورت فعال شدن روت به دلایلی روی سرور، باز هم از راه دور قابل بهره برداری نباشد. همچنین میتوانید SSH را به محدودههای IP خاصی محدود کنید اگر مجموعه ثابتی از IPهای مشتری دارید که در حال اتصال هستند. به صورت اختیاری، میتوانید پورت SSH پیشفرض را تغییر دهید تا آن را مبهم کند، اما صادقانه بگویم که یک اسکن ساده، پورت باز جدید را برای هر کسی که میخواهد آن را پیدا کند، نشان میدهد. در نهایت، می توانید احراز هویت رمز عبور را به طور کلی غیرفعال کنید و از احراز هویت مبتنی بر گواهی استفاده کنید تا شانس بهره برداری از SSH را بیشتر کاهش دهید.
8 – پیکربندی دیمون
بستههای خود را پاکسازی کردهاید، اما تنظیم برنامههای مناسب برای راهاندازی خودکار هنگام راهاندازی مجدد نیز مهم است. مطمئن شوید که هر دیمونی را که نیاز ندارید خاموش کنید. یکی از کلیدهای یک سرور امن، کاهش ردپای فعال تا حد امکان است، بنابراین تنها مناطق سطحی موجود برای حمله، موارد مورد نیاز برنامه(ها) است. پس از انجام این کار، خدمات باقیمانده باید تا حد امکان سخت تر شوند تا از انعطاف پذیری اطمینان حاصل شود.
9 – SELinux و سخت شدن بیشتر
اگر تا به حال از توزیع Red Hat استفاده کرده اید، ممکن است با SELinux، ابزار سخت شدن هسته که از سیستم در برابر عملیات های مختلف محافظت می کند، آشنا باشید. SELinux در محافظت در برابر استفاده غیرمجاز و دسترسی به منابع سیستم عالی است. همچنین در شکستن برنامهها عالی است، بنابراین مطمئن شوید که پیکربندی خود را با فعال کردن SELinux آزمایش کردهاید و از گزارشها استفاده کنید تا مطمئن شوید هیچ چیز قانونی مسدود نشده است. فراتر از این، شما باید در مورد سختتر کردن برنامههایی مانند MySQL یا Apache تحقیق کنید، زیرا هر کدام مجموعهای از بهترین روشها را برای دنبال کردن دارند.
10 – ورود به سیستم
در نهایت، باید مطمئن شوید که سطح ورود به سیستم مورد نیاز شما فعال است و منابع کافی برای آن در اختیار دارید. شما در نهایت به عیب یابی این سرور خواهید رسید، بنابراین اکنون به خودتان لطف کنید و ساختار ورود به سیستم را ایجاد کنید که برای حل سریع مشکلات به آن نیاز دارید. اکثر نرمافزارها لاگ قابل تنظیم دارند، اما برای یافتن تعادل مناسب بین اطلاعات ناکافی و بیش از حد نیاز به آزمون و خطا دارید. مجموعهای از ابزارهای ثبت شخص ثالث وجود دارد که میتواند به همه چیز از تجمیع تا تجسم کمک کند، اما هر محیطی باید ابتدا برای نیازهایش در نظر گرفته شود. سپس می توانید ابزار(هایی) را پیدا کنید که به شما در پر کردن آنها کمک می کند.
نتیجه
اجرای هر یک از این مراحل، مخصوصاً اولین بار، ممکن است مدتی طول بکشد. اما با ایجاد یک روال پیکربندی اولیه سرور، می توانید اطمینان حاصل کنید که ماشین های جدید در محیط شما انعطاف پذیر هستند. عدم انجام هر یک از این مراحل می تواند منجر به عواقب بسیار جدی شود اگر سرور شما همیشه هدف حمله قرار گیرد. پیروی از آنها ایمنی را تضمین نمی کند – نقض داده ها اتفاق می افتد – اما این کار را برای بازیگران مخرب بسیار دشوارتر می کند و برای غلبه بر آن به درجاتی از مهارت نیاز دارد.