در این مقاله با شما هستیم با آموزش افزایش امنیت سرورهای لینوکسی پا تا انتهای این مطلب کاربردی و مفید مثل همیشه ما را همراهی کنید
یکی از محبوب ترین کنترل پنل ها و سیستم عامل هایی که بر روی سرور و … نصب می شود سیستم عامل لینوکس می باشد شاید تا چند سال پیش سیستم عامل ویندوز محبوب تر بود اما در حال حاضر لینوکس به دلایل خیلی زیاد نسبت به ویندوز و مابقی سیستم عامل ها دارای محبوبیت بیش تری می باشد قبلا به شما اموزش افزایش امنیت و ایمن کردن سرورهای لینوکسی را داده ایم در این مقاله به صورت کامل و جامع تر به این موضوع می پردازیم پس با ما همراه باشید تا آموش افزایش امنیت سرورهای لینوکسی را به شما آموزش دهیم!
اگرچه هیچ چیز هرگز ۱۰۰٪ ایمن نیست، شما می توانید با حداقل تلاش از تهدیدات جلوگیری کنید. عده ای تصور می کنند که امنیت سرورهای لینوکسی آنقدر زیاد است که نیازی به تدابیر امنیتی بیشتر ندارد. اما بسیار خوب است که بدانید با وجود امنیت بالای لینوکس باید تدابیر بیشتری نیز در نظر گرفت. در حقیقت افزایش امنیت هم در سرورهای ویندوزی و هم در لینوکس سرورها لازم است. چرا که راه های دست یابی و نفوذ به اطلاعات روز به روز در حال گسترش است. اگر شما نیز خودتان را بروز نکنید قطعا حفره های امنیتی زیادی در سرور شما باقی می ماند
راهکارهای ایمن سازی سرورهای لینوکسی :
محدود کردن دسترسی به یوزر اصلی سرور روت root
پورت ورود به سرور SSH را از حالت پیش فرض تغییر دهید
سیستم عامل و نرم افزارهایی که داخل سرور نصب کردید را بروز کنید
پورت هایی که نیاز ندارید و استفاده نمی کنید غیرفعال کنید
فایروال سرور لینوکسی را به صورت صحیح کانفیگ کنید
اگر IPV6 استفاده نمی کنید غیرفعال کنید
پایگاه داده سرور را رمزنگاری کنید
اس اس اچ کی را فعال کنید
Selinux را فعال کنید
اپلیکیشن های غیرضروری سرور را غیرفعال کنید
رمز قوی و پیچیده برای یوزرهای استفاده کنید
به کاربران برای ورود به سرور دسترسی root ندهید!
اوبونتو سرورها و سرورهای دارای دیگر توزیعهای لینوکس، به طور پیشفرض در هنگام نصب، دسترسی root به کاربر میدهند. وقتی کاربر دارای دسترسی root وارد سیستم میشود، برای انجام هر کاری روی سرور، نیازی به احراز هویت ندارد و بنابراین، میتواند هر کاری را بدون احراز هویت انجام دهد که از نظر امنیتی درست نیست. بنابراین، ادمین سرور باید تحت sudo group، کاربران privileged ایجاد کند تا اگر این کاربران بخواهند هرگونه تغییر مهمی در سرور انجام دهند، نیاز به احراز هویت داشته باشند.
از استفاده از خدمات FTP، Telnet و Rlogin/Rsh در لینوکس خودداری کنید
در اکثر پیکربندیهای شبکه، نامهای کاربری، گذرواژهها، دستورات FTP / telnet / rsh و فایلهای انتقالیافته میتوانند توسط هر کسی در همان شبکه با استفاده از یک sniffer بسته ضبط شوند. راه حل رایج برای این مشکل استفاده از OpenSSH ، SFTP یا FTPS (FTP روی SSL) است که رمزگذاری SSL یا TLS را به FTP اضافه می کند. دستور yum زیر را برای حذف NIS، rsh و سایر سرویس های قدیمی تایپ کنید:
# yum erase xinetd ypserv tftp-server telnet-server rsh-server
اگر از سرور مبتنی بر لینوکس Debian/Ubuntu استفاده می کنید، دستور apt-get / دستور apt را برای حذف سرویس های ناامن امتحان کنید:
$ sudo apt-get --purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server
نرم افزار را برای به حداقل رساندن آسیب پذیری در لینوکس به حداقل برسانید
آیا واقعاً نیاز به نصب انواع وب سرویس دارید؟ برای جلوگیری از آسیب پذیری نرم افزار از نصب نرم افزارهای غیر ضروری خودداری کنید. از مدیر بستههای RPM مانند yum یا apt-get و/یا dpkg برای بررسی همه بستههای نرمافزاری نصبشده روی یک سیستم استفاده کنید. تمام بسته های ناخواسته را حذف کنید. یا
# yum list installed
# yum list packageName
# yum remove packageName
# dpkg –list
# dpkg –info packageName
# apt-get remove packageName
هسته و نرم افزار لینوکس را به روز نگه دارید
اعمال وصله های امنیتی بخش مهمی از حفظ سرور لینوکس است. لینوکس تمام ابزارهای لازم را برای به روز نگه داشتن سیستم شما فراهم می کند و همچنین امکان ارتقاء آسان بین نسخه ها را فراهم می کند. همه بهروزرسانیهای امنیتی باید در اسرع وقت بررسی و اعمال شوند. مجدداً از مدیر بسته RPM مانند yum و/یا apt-get و/یا dpkg برای اعمال تمام به روز رسانی های امنیتی استفاده کنید.
# yum update
یا
# apt-get update && apt-get upgrade
می توانید Red Hat / CentOS / Fedora Linux را برای ارسال اعلان به روز رسانی بسته yum از طریق ایمیل پیکربندی کنید . گزینه دیگر این است که تمام به روز رسانی های امنیتی را از طریق cron job اعمال کنید. در لینوکس دبیان / اوبونتو می توانید از apticron برای ارسال اعلان های امنیتی استفاده کنید. همچنین میتوانید با استفاده از دستور apt-get دستور / apt ، بهروزرسانیهای بدون نظارت را برای سرور لینوکس Debian/Ubuntu خود پیکربندی کنید :
$ sudo apt-get install unattended-upgrades apt-listchanges bsd-mailx
SELinux
من به شدت توصیه می کنم از SELinux استفاده کنید که یک کنترل دسترسی اجباری انعطاف پذیر (MAC) ارائه می دهد. تحت کنترل استاندارد دسترسی اختیاری لینوکس (DAC)، برنامه یا فرآیندی که به عنوان کاربر اجرا می شود (UID یا SUID) دارای مجوزهای کاربر برای اشیایی مانند فایل ها، سوکت ها و سایر فرآیندها است. اجرای یک هسته MAC از سیستم در برابر برنامه های مخرب یا معیوب محافظت می کند که می توانند به سیستم آسیب بزنند یا از بین ببرند. مستندات رسمی Redhat را ببینید که پیکربندی SELinux را توضیح می دهد.
استفاده از ترمینال لینوکس
ترمینال لینوکس ابزار اصلی برای وارد کردن دستورات و به روز رسانی سرور لینوکس به صورت دستی است. برای انجام این کار، به سرور لینوکس در یک مخزن محلی دسترسی داشته باشید و به روزترین وصله ها را اعمال کنید.
اگر از اوبونتو یا دبیان استفاده می کنید، این دستور را وارد کنید:
$ sudo apt update && sudo apt upgrade -y
اما اگر از Fedora، RHEL یا CentOS استفاده میکنید، این دستور باید به جای آن این کار را انجام دهد:
$ ارتقاء sudo dnf
یک سرور لینوکس به روز شده با جدیدترین روش ها و ابزارهای امنیتی سازگار خواهد بود، بنابراین می توانید گزینه های مختلف امنیت سایبری را بررسی کنید. با این حال، ممکن است نتوانید بهروزرسانیها یا توزیعهای فعلی لینوکس را در سیستمهای قدیمیتر Windows یا Mac فعال کنید. با در نظر گرفتن این موضوع، فقط باید یک سیستم لینوکس جدید را بر روی رایانه ای که نسبتاً جدید است راه اندازی کنید.
برای جلوگیری از اشتباهات، یک حساب کاربری اختصاصی ایجاد کنید
وقتی مدیران به یک سرور لینوکس وارد میشوند، به دلیل خوبی از ترمینال دسترسی ریشه اجتناب میکنند: وارد کردن اشتباه یک فرمان، حتی با یک اشتباه تایپی جزئی، میتواند باعث ایجاد مشکل شود. اگر مطمئن نیستید چه کاری باید انجام دهید، ممکن است به طور تصادفی سرور خود و داده های ذخیره شده روی آن را خراب کنید.
به همین دلیل است که فقط اعضای تیم با درک روشنی از سرورهای لینوکس و نحوه انجام عملکردهای کلیدی باید به عنوان کاربران ریشه تعیین شوند.
خوشبختانه، میتوانید یک حساب کاربری ایجاد کنید که دارای امتیازات superuser do (sudo) باشد، که به کاربران باتجربه اجازه میدهد تا از دستورات root بدون قرار دادن آنها در ترمینال ریشه استفاده کنند. در نتیجه، می توانید خطر آسیب غیر عمدی به سرور و داده ها را به میزان قابل توجهی کاهش دهید.
چگونه یک حساب کاربری ممتاز راه اندازی می کنید؟ خیلی ساده است. برای شروع مراحل زیر را دنبال کنید:
برای ایجاد یک کاربر جدید، $ adduser <username> را وارد کنید
این کد را برای تخصیص حقوق sudo به کاربر جدید وارد کنید: $ usermod -a -G sudo <username>
شما اکنون یک کاربر جدید برای سرور خود راه اندازی کرده اید و به آنها مجوزهای سرپرست داده اید. اگر می خواهید، می توانید از همان نمایه برای اجرای تمام ارتقاء و سایر دستورات در صورت نیاز استفاده کنید.
از رمزهای عبور قوی استفاده کنید
رمزهای عبور در معرض خطر یکی از عوامل اصلی نقض اطلاعات در سراسر جهان هستند. طبق گفته نورتون، ۶۵ درصد از افزایش رمزهای عبور در معرض خطر بین سال های ۲۰۲۰ تا ۲۰۲۲ رخ داده است.
این موضوع بسیاری از مشاغل را نگران می کند، به ویژه با توجه به افزایش هزینه های نقض داده ها. بنابراین، اگر در حال برنامه ریزی برای امنیت سرور لینوکس هستید، یکی از روش های کلیدی تنظیم یک رمز عبور قدرتمند است.
در اینجا برخی از اقدامات مهم امنیتی سرور لینوکس برای رمزهای عبور قوی تر آورده شده است.
رمز عبور با حداقل ده کاراکتر، از جمله کاراکترهای خاص و ترکیبی از حروف بزرگ و کوچک ایجاد کنید.
اطمینان حاصل کنید که رمزهای عبور منحصر به فرد برای هر سیستم و برنامه تنظیم شده است.
برای اطمینان از امنیت رمز عبور را به طور مرتب تغییر دهید
از یک مدیر رمز عبور در سراسر برنامه ها و سیستم ها استفاده کنید تا از نقض داده ها اطمینان حاصل کنید.
غیرفعال کردن Root Login
غیرفعال کردن ورود مستقیم ریشه به بهبود امنیت سرور لینوکس کمک می کند و از دسترسی مهاجمان سایبری به داده های حساس شما جلوگیری می کند.
به عنوان کاربر اصلی وارد سرور لینوکس شوید.
فایل پیکربندی SSL /etc/ssh/sshd_config را با استفاده از یک ویرایشگر متن باز کنید
خط فرمان “PermitRootLogin yes” را پیدا کنید و آن را به “PermitRootLogin no” تغییر دهید تا ورود مستقیم از طریق SSH غیرفعال شود.
تغییرات پیکربندی را ذخیره کرده و سرویس SSH را مجددا راه اندازی کنید
بعد، یک حساب کاربری جدید با امتیازات sudo ایجاد کنید.
به روز رسانی های امنیتی را به صورت خودکار نصب کنیدیکی از روشهای کلیدی امنیت سرور لینوکس این است که مطمئن شوید سیستم شما تمام بهروزرسانیهای لازم برای ایمن کردن دسترسی به دادهها را دارد.
بسته های ارتقاء بدون نظارت را نصب کنید، که به طور خودکار در زمان برنامه ریزی شده دانلود و نصب می شوند.
پیکربندی ارتقاء خودکار با ویرایش /etc/apt/apt.conf.d/50unattended
با افزودن یک فایل پیکربندی «/etc/apt/apt.conf.d/20auto»، بهروزرسانیهای خودکار را فعال کنید.
پس از نصب تمام به روز رسانی های امنیتی، راه اندازی مجدد خودکار سیستم را برنامه ریزی کنید.
تنظیم کلید SSH
کلیدهای سرور SSH شما را قادر می سازد بدون نیاز به رمز عبور، به سرور لینوکس خود با خیال راحت دسترسی داشته باشید. اگر در به خاطر سپردن گذرواژهها مشکل دارید یا ترجیح میدهید به جای آن از مدیر رمز عبور استفاده نکنید، میتوانند مفید باشند.
هنگامی که شروع به استفاده از یک کلید SSH می کنید، نیازی به ایجاد یک کلید به تنهایی ندارید: می توانید یک کلید تازه در ترمینال لینوکس ایجاد کنید، سپس آن را در سرور لینوکس خود آپلود کنید. از این دستور استفاده کنید: $ ssh-copy-id <username>@ip_address
با این حال، ایمن سازی کلید SSH شما نیازمند کمی کار بیشتر است. شما باید:
احراز هویت رمز عبور SSH را خاموش کنید.
برای جلوگیری از ورود کاربران به سرور شما از یک سیستم خارجی، دسترسی ریشه از راه دور را غیرفعال کنید.
دسترسی IPv4 و IPv6 را غیرفعال کنید
انجام هر یک از مراحل بالا آسان است. از یک ویرایشگر متن برای باز کردن /etc /ssh / sshd_config استفاده کنید، سپس موارد زیر را بررسی کنید:
رمز عبور بله
PermitRootLogin بله
حال، هر دوی این خطوط را به جای «بله» در پایان، «نه» نشان دهید. این کار با ویرایشگر متن شما ساده است.
با انجام این کار، باید سرویس SSH را به IPv4 یا IPv6 تغییر دهید. از ویرایشگر متن خود برای تغییر خط AddressFamily استفاده کنید تا فقط از IPv4 استفاده کند که برای اکثر صاحبان مشاغل به اندازه کافی خوب است. خط باید بخواند:
آدرسFamily inet
برای اعمال تغییرات، سرویس SSH خود را مجددا راه اندازی کنید – این بدان معناست که بعد از آن دیگر نیازی به تغییر تغییرات نخواهید داشت. این دستور بسته به نوع سرور لینوکس که استفاده می کنید متفاوت است.
برای Fedora، CentOS یا هر گزینه Systemd، از $ sudo systemctl Restart sshd استفاده کنید
برای اوبونتو، از $ sudo service sshd restart استفاده کنید
در نهایت، شما کلید SSH خود را آپلود کرده اید و می توانید بدون نیاز به وارد کردن رمز عبور وارد سرور خود شوید. با این حال، به طور کلی بهتر است از رمزهای عبور و کلیدهای SSH برای محافظت از سرور لینوکس خود استفاده کنید. این به سرور شما محافظت جامع تری در برابر تهدیدات مختلف می دهد.
برای امنیت بیشتر خدمات غیر ضروری را کاهش دهید
سرویسهای چندگانه روی شبکه با همه سرورهای لینوکس گنجانده شده است. شما باید اکثر این موارد را حفظ کنید، اما می توانید بقیه را حذف کنید تا تعداد آسیب پذیری های شبکه خود را کاهش دهید. فعال کردن سرویس هایی که به ندرت از آنها استفاده می کنید به مهاجمان بالقوه یک دریچه احتمالی (و غیر ضروری) دیگر به سرور شما می دهد.
برای شروع، لیست خدمات شبکه ای را که لینوکس شما از طریق دستور زیر اجرا می کند بررسی کنید: $ sudo ss -atpu
سیستمعاملهای مختلف خروجیهای متفاوتی ایجاد میکنند، اما صرفنظر از این، باید هر سرویسی را که استفاده نمیکنید و هرگز نخواهید حذف کنید. دستورات زیر (یکی برای انواع مختلف سرور) را برای حذف آنها وارد کنید:
CentOS و Red Hat: $ sudo yum <service_name> را حذف می کنند
اوبونتو و دبیان: $ sudo apt purge <service_name>
هنگامی که این مرحله را کامل کردید، دستور SS -atup را مجدداً اجرا کنید تا تأیید کنید که این سرویس ها با موفقیت از سرور لینوکس شما حذف شده اند.
تبریک میگوییم مقاله افزایش امنیت سرورهای لینوکسی به پایان رسید با مقالات بعدی مثل همیشه ما را همراهی کنید