نحوه ایمن سازی سرور
برای لذت بردن از حداکثر آزادی پیکربندی، بهترین راه حل این است که سرور خود را میزبانی کنید. جایگزین خوب دیگر استفاده از سرورهای ریشه اختصاصی است که می تواند توسط بسیاری از هاست ها اجاره شود و به حساب ریشه دسترسی داشته باشد. مراحل اداری اساسی مانند نصب، ساختار و نگهداری سرور در حیطه مسئولیت مستاجر باقی میماند، همانطور که در مورد یک نوع خود میزبانی میشود. این نوع بسته سرور معمولاً فقط در صورت نیاز به نصب اولیه سیستم عامل می پردازد.
صرف نظر از راه حل هاست انتخابی، هنگام طراحی و استفاده از اکانت روت باید مراقب و مسئولیت پذیر باشید. به طور خاص، موضوع امنیت در اینجا نقش مهمی ایفا می کند:
از یک طرف، یک رویه معیوب در ناحیه ریشه بسیار دشوار است. از سوی دیگر، می توان یک پایه مشخص برای یک سرور پایدار، با کارایی بالا و ایمن ایجاد کرد. اگر روال درست باشد به عنوان مثال، به منظور ایمن سازی سرور اختصاصی و محافظت از آن در برابر دسترسی خارجی، تغییر اجباری رمز عبور تنها یکی از اقدامات ضروری برای افزایش امنیت سرور است.
نحوه ایمن سازی سرور : نصب حداقل و رمز عبور امن
حتی قبل از اینکه با اقدامات احتیاطی واقعی شروع کنید و سرور خود را به صورت ایمن پیکربندی کنید، می توانید پتانسیل امنیتی آینده پروژه وب خود را تحت تأثیر قرار دهید. صرف نظر از اینکه سیستم ویندوز یا لینوکس را انتخاب می کنید، اصل زیر برای نصب اعمال می شود:
سرور فقط باید حاوی نرم افزاری باشد که برای انجام وظایف خود به آن نیاز دارد. دلیل این امر این است که هر برنامه نصب شده یک خطر امنیتی بالقوه است و می تواند تأثیر منفی بر عملکرد داشته باشد. برای ارائه کمترین فرصت به مهاجمان، فقط باید اجزای سیستم ضروری را نصب یا فعال کنید و فقط به نرم افزارهای شخص ثالث تأیید شده دسترسی داشته باشید.
پس از نصب، ابتدا باید رمز عبور ریشه (سیستم های لینوکس) را تعیین کنید.
به طور استاندارد، هیچ مقداری تعریف نشده است و حساب مدیر نیز مسدود می شود تا زمانی که یک ورودی مربوطه را وارد کنید. پس از نصب، سیستم عامل معمولاً به طور خودکار از شما می خواهد که یک حساب کاربری، از جمله رمز عبور، که نقطه دسترسی ریشه است، ایجاد کنید. اگر سروری را از یک ارائهدهنده اجاره کردهاید و یک ورود به سیستم ریشه موجود دریافت کردهاید، باید رمز عبور را تغییر دهید. برای انجام این کار، باید از طریق SSH (از یک سیستم لینوکس) یا PuTTY (از یک سیستم ویندوز) وارد سرور خود شوید و دستور زیر را در ترمینال مناسب برای ورود root وارد کنید تا رمز عبور را تغییر دهید:
passwd
سپس می توانید رمز عبور خود را مشخص کنید، که پس از آن نیاز به تأیید دارد. مطمئن شوید که طولانی ترین رمز عبور ممکن را انتخاب کنید، نه فقط حروف، بلکه کاراکترها و اعداد خاص. علاوه بر این توصیه می شود برای ذخیره رمز عبور از یک پسورد منیجر استفاده کنید تا در هر زمان بتوانید به آن دسترسی داشته باشید. سپس، سعی کنید به ورود به سیستم ریشه جدید متصل شوید. اگر به درستی انجام شود، می توانید اتصال SSH را که در ابتدا ایجاد شده است، قطع کنید.
نحوه ایمن سازی سرور : پورت های SSH را تغییر دهید
برای دسترسی به سرور از طریق SSH، پورت 22 به طور پیش فرض ارائه شده است. هنگامی که سیستم خود را مجددا نصب می کنید به طور خودکار وارد می شود. مجرمانی که به دنبال شکاف در سیستم هستند، در درجه اول تلاش های حمله خود را (عمدتاً تلاش های ورود خودکار) روی این پورت انجام می دهند. به سادگی با انتخاب یک پورت متفاوت برای اتصالات از راه دور رمزگذاری شده، خطر دسترسی ناخواسته را به حداقل می رسانید. برای انجام این کار، تنها کاری که باید انجام دهید این است که فایل پیکربندی SSH sshd_config را با ویرایشگر متن انتخابی خود باز کنید. مثال کد زیر فایل را با ویرایشگر استاندارد لینوکس nano فراخوانی می کند:
nano /etc/ssh/sshd_config
به دنبال خط مناسب باشید و پورت شماره 22 را با تعدادی انتخاب جایگزین کنید. با این حال، به خاطر داشته باشید که چندین پورت پیش فرض دیگر برای سرویس های دیگر وجود دارد. (به عنوان مثال، پورت 80 برای HTTP) که در صورت امکان نباید از آنها استفاده کنید. ابتدا نگاهی به لیست پورت های استاندارد بیندازید که توسط IANA (مرجع شماره های اختصاص داده شده اینترنتی) مدیریت می شود و می توانید در صفحه اصلی رسمی آن مشاهده کنید.
همچنین، میتوانید فهرست را در فایل خدمات /etc/ مشاهده کنید.
نحوه ایمن سازی سرور : ورود SSH را برای کاربران روت غیرفعال کنید
برای ایمن سازی سرور خود، همچنین توصیه می شود که ورود مستقیم SSH را برای حساب root غیرفعال کنید. در غیر این صورت، مهاجمی که رمز عبور را در اختیار دارد میتواند از حساب راه دور برای دسترسی از راه دور به سرور استفاده کند و ورود مستقیم SSH را برای حساب ریشه مسدود کند. قبل از اینکه بتوانید این عمل را انجام دهید، باید حداقل یک حساب کاربری اضافی علاوه بر کاربر root به سرور متصل کنید و به طور کامل از سیستم حذف نشده باشد. اگر پروفایل کاربری مربوطه را ایجاد نکرده اید، از دستور زیر برای ایجاد آن استفاده کنید:
useradd -g users -d /home/nutzer1 -m -s /bin/bash user1
با این کار می توانید حساب کاربری user1 را ایجاد کنید که به گروه کاربران (-g) نیز اضافه می شود. علاوه بر آن، فهرست اصلی/home/user1 به این نمایه کاربر (-d) اختصاص داده می شود. دستور، پوسته bash را به عنوان پوسته پیش فرض (-s /bin/bash) مشخص می کند.
در نهایت، یک رمز عبور امن برای این حساب ورود به سیستم جدید تعریف کنید:
passwd user1
اکنون، تست کنید که آیا ورود به سیستم با حساب کاربری ایجاد شده کار می کند یا خیر و فقط در صورت موفقیت پروژه واقعی (قفل کردن خود از حساب root) را ادامه دهید. برای این کار به پیکربندی SSH sshd_config نیاز دارید که می توانید آن را با ویرایشگر دلخواه خود باز کنید. به دنبال ورودی «PermitRootLogin بله» بگردید و آن را با «PermitRootLogin no» جایگزین کنید.
پس از راه اندازی مجدد سرویس SSH از طریق خط فرمان:
/etc/init.d/ssh restart (alternativ: service ssh restart)
دسترسی از راه دور به حساب ریشه دیگر امکان پذیر نیست. شما به سادگی با نمایه(های) کاربری که ایجاد کرده اید وارد شوید . در هر زمان که بخواهید (بعد از ورود به سیستم)، اگر دوباره به آن نیاز داشتید، به حساب اصلی تغییر دهید.
su
همچنین می توانید از خط AllowGroups در فایل پیکربندی استفاده کنید تا مشخص کنید کدام کاربران مجاز به اتصال به سرور از طریق SSH هستند. برای این کار کافی است یک گروه (addgroup) ایجاد کنید و کاربران مورد نظر (adduser) را اضافه کنید. سپس نام گروه انتخاب شده را به sshd_config اضافه کنید (به عنوان مثال AllowGroupsssh_user).
نحوه ایمن سازی سرور : اعلان ایمیل برای ورود به سیستم SSH
با این حال، در صورت دسترسی SSH به سرور خود، باید مراقب تمام فعالیت های از راه دور باشید. این به شما امکان می دهد تعیین کنید که آیا سرویس SSH را روی سرور خود به درستی ایمن کرده اید یا خیر. علاوه بر این، نظارت بر این فعالیت ها به این معنی است که در مراحل اولیه با نظارت خوب بر اتصالات برقرار شده در صورت دسترسی غیرمجاز به شما هشدار داده می شود و می توانید اقدامات متقابل مناسب را انجام دهید. یک اسکریپت ساده پوسته برای این کار کافی است، که به طور خودکار یک ایمیل اعلان به آدرس شما در هر ورود موفقیت آمیز از راه دور روی سرور شما ارسال می کند.
یک اسکریپت مربوطه (در اینجا: /opt/shell-login.sh)، که می توانید به راحتی خودتان ایجاد کنید، باید کد زیر را برای این منظور داشته باشد:
#!/bin/bash
echo "Log in to $(hostname) on $(date +%Y-%m-%d) at $(date +%H:%M)"
echo "User: $USER"
echo
finger
سپس خط زیر را به فایل پروفایل /etc/profile اضافه کنید:
/opt/shell-login.sh | mailx -s "SSH-Log-in to YOUR-HOSTNAME" mailadresse@example.com
این ورودی می تواند از اجرای اسکریپت اطمینان حاصل کند و در صورت ورود موفقیت آمیز، یک ایمیل اعلان به آدرس مورد نظر ارسال می کند. پیش نیاز این است که به اسکریپت 755 اختصاص داده شود که با دستور زیر قابل انجام است:
chmod 755 /opt/shell-login.sh
نحوه ایمن سازی سرور : غیرفعال کردن پورت های استفاده نشده
پورت های باز عموماً یک خطر جدی ایمنی نیستند. از آنجایی که آنها برای ارتباط با سرویس ها و برنامه های کاربردی مورد نیاز هستند، مهم است که پورت های خاصی به طور پیش فرض فعال باشند، مانند پورت های 80 و 443 برای اتصالات HTTP یا HTTPS، یا پورت SSH مورد نظر شما. اگر توانسته اید حداقل نصب سیستم را پیاده سازی کنید و به تعداد کمی از برنامه های شخص ثالث دسترسی داشته باشید، تعداد پورت های مورد نیاز دیگر قابل مدیریت است. خطر این است که این رابط های باز تنها در صورتی مورد استفاده قرار می گیرند که برنامه های پاسخ دهنده دارای شکاف های امنیتی باشند و مجرمان از این واقعیت استفاده کنند. خطر این نوع حمله بالقوه به دلیل افزایش تعداد برنامه های کاربردی مورد استفاده در حال افزایش است.
برای این منظور، ایمن سازی سرور خود در برابر این نوع حملات با مسدود کردن تمام پورت های باز استفاده نشده مفید است. تقریباً همه سیستم عامل های رایج قبلاً ابزار مناسب را به طور پیش فرض با نرم افزار فیلتر بسته iptables نصب کرده اند. می توانید از این ابزار برای ایجاد قوانین ثابت برای تنظیم ترافیک، از جمله تعریف پورت های دلخواه یا نامطلوب استفاده کنید. مقدمهای کوچک برای برنامه فیلتر، شامل دستورالعملهایی برای راهاندازی یک فایروال ابتدایی برای سیستم شما، را میتوانید در آموزش ما درباره این موضوع پیدا کنید.
به روز رسانی نرم افزار به طور منظم
به طور کلی نرم افزاری وجود ندارد که کاملاً عاری از آسیب پذیری های ذکر شده در قسمت قبل باشد. با این حال، مجرمان سایبری قبل از اینکه بتوانند حمله را انجام دهند، ابتدا باید برنامهریزی نادرست قابل بهرهبرداری را کشف کنند. به عنوان یک قاعده، آسیب پذیری های شناخته شده به سرعت با به روز رسانی های منتشر شده دوباره بسته می شوند. اگر به روز رسانی های سیستم عامل و برنامه های نصب شده را دنبال کنید و در اسرع وقت به روز رسانی کنید، بهترین محافظت ممکن را برای سرور خود تضمین می کنید. تقریباً تمام سیستم های سرور همچنین به شما امکان می دهند به روز رسانی های مهم امنیتی را به طور خودکار در پس زمینه دانلود و نصب کنید.
برای مثال، اگر میخواهید سرور ویندوزی را که بهروزرسانیهای خودکار را دریافت میکند، ایمن کنید، میتوانید دستورالعملهای خاصی را برای فرآیند بهروزرسانی در ناحیه Windows Update تنظیم کنید. به این ترتیب، میتوانید زمان و نحوه بررسی منظم بهروزرسانیها، نصب بهروزرسانیها و زمان راهاندازی مجدد سیستم را پیکربندی کنید. اسکریپتهای خاصی مانند apt-listchanges یا apticron برای سیستمهای لینوکس وجود دارد که روزانه شما را در مورد بستههای نرمافزاری جدید در دسترس مطلع میکند و به شما امکان دانلود آنها را میدهد. سپس اسکریپت های دیگر، مانند ارتقاءهای بدون نظارت، نصب خودکار را دانلود می کنند.
ایمن سازی سرورهای ویندوز و لینوکس در برابر حملات brute force
هکرهایی که می خواهند به سرور شما یا برنامه های در حال اجرا روی آنها دسترسی داشته باشند، گزینه های مختلفی برای این کار دارند. یکی از ساده ترین و پرکاربردترین انواع حمله، روش موسوم به نیروی brute-force است. مهاجم سعی میکند با استفاده از ابزاری که تلاش میکند یکی یکی وارد رمز عبورها شود، دسترسی پیدا کند. با این حال، هر چه دقت بیشتری در اختصاص رمز عبور خود داشته باشید، احتمال موفقیت این روش کمتر خواهد بود. به خاطر داشته باشید که، بهویژه اگر خدماتی را با گزینه ثبتنام ارائه میدهید، باید فرض کنید که هر کاربر به اندازهای که لازم است وظیفهشناس و محتاط نخواهد بود.
البته برای محافظت در برابر چنین حملاتی نیازی به نرم افزار پیچیده و گران قیمت نیست. از آنجایی که هر تلاش برای ورود به سیستم ثبت میشود، پاسخ داده میشود و در فایلهای گزارش ثبت میشود، ابزارهای تحلیل ساده میتوانند کمک کنند.
Fail2ban (Linux-/POSIX-Systems) یا RdpGuard (ویندوز) فایلهای گزارش مربوطه را بررسی میکنند، رفتار غیرعادی را شناسایی میکنند و آدرس IP کاربران مشکوک را مسدود میکنند.
پیکربندی ایمن سرور: ابزارهای نظارت را از ابتدا تنظیم کنید
اگر می خواهید سرور را ایمن کنید، اقدامات ذکر شده قبلی در برابر مشکلات خارجی بسیار مهم است. با این حال، به همان اندازه مهم است که اطمینان حاصل شود که تعامل بین سخت افزار و نرم افزار به صورت دلخواه اجرا می شود. این یک بررسی یکباره نیست که پس از ایجاد موفقیت آمیز محیط سرور شما تکمیل شد. این یک کار طولانی مدت است که هرگز نباید آن را از دست بدهید. با تعداد زیاد فرآیندهای مختلف، گفتن این کار آسان تر از انجام آن است، به همین دلیل است که باید از ابتدا به ابزارهای کمکی دسترسی داشته باشید. اینها به نظارت بر تمام عملیات روی سرور شما کمک می کند و هر گونه حادثه را هشدار می دهد.
یک برنامه آسان از این دست که به سرعت پیکربندی می شود، Monit است که می تواند به راحتی بر روی بسیاری از توزیع های لینوکس از طریق مدیر بسته نصب شود. برنامه منبع باز (مجوز GNU-AGPL) به طور انتخابی فرآیندها، فایل ها، ابرها، میزبان ها، برنامه ها یا اسکریپت ها را پس از شروع نظارت می کند. منابع سیستم – CPU، حافظه و استفاده مطلق از سیستم – نیز قابل نظارت هستند. در فایل پیکربندی Monit، می توانید انتخاب کنید که کدام مقادیر یا رویدادها از طریق ایمیل اعلان ایجاد کنند. اگر به اطلاعات بیشتری نیاز دارید، نرم افزار مانیتورینگ Nagios توصیه می شود. این تا حدودی پیچیدهتر است، اما نسخه اصلی منبع باز است و میتوان آن را با استفاده از پلاگینهای متنوع گسترش داد. یک ماشین مجازی همچنین میتواند به آن اجازه اجرا بر روی پلتفرم ویندوز را بدهد.
اعتماد خوب است، پشتیبان گیری بهتر است
با پیشنهادات پیکربندی توصیه شده، امنیت سرور به طور قابل توجهی افزایش می یابد. تنظیمات مختلف برای فرآیند ورود و محدودیت حساب کاربری به سرور شما استاندارد امنیتی بسیار بالایی را همراه با به روز رسانی مداوم، ابزارهای نظارتی و نرم افزارهای امنیتی اجباری می دهد. با این حال، حتی بهترین پیکربندی و مراقبت اختصاصی نیز نمی تواند محافظت صد درصدی را برای سرور فراهم کند. خطاهای برنامه، خرابی های سخت افزاری یا سهل انگاری شخصی می تواند منجر به از دست رفتن داده ها در بدترین حالت شود. یک ستون حمایتی دیگر از سیستم امنیتی شما باید استراتژی پشتیبان گیری مناسب باشد که به شما امکان می دهد فایل های مناسب را در چنین حالتی بازیابی کنید.
هیچ ابزار قدرتمندی وجود ندارد که بتواند نه تنها هنگام ایجاد، بلکه در هنگام وارد کردن یک نسخه پشتیبان از شما پشتیبانی کند. یک برنامه رایگان که در اینجا باید به آن اشاره کرد، برنامه همگام سازی rsync است که نام خود را از همان پروتکل گرفته است و به اشکال مختلف برای تقریباً همه پلتفرم های رایج (macOS، Windows، Linux) در دسترس است. این ابزار یک کپی از اطلاعات سرور شما را با یادداشت تمام تغییرات در نسخه اصلی بهروز نگه میدارد. علاوه بر پشتیبان گیری کلی از سرور، برنامه همچنین به طور خودکار از پایگاه داده محافظت می کند.
نحوه ایمن سازی سرور
ترجمه شده توسط سایت دریای شرق از سایت
کپی بدون ذکر نام و لینک سایت دریای شرق ممنوع است !