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

رضا فرخندگان ۱۹ دی ۱۳۹۷ ۰ دیدگاه

امنیت سرور مجازی موضوعی است که باید به آن اهمیت ویژه‌ای بدهید. سرورهای سرور مجازی لینوکس یا VPS لینوکس مزایای بسیار زیادی را به همراه دارند. سرور مجازی لینوکس در مقایسه با دیگر سیستم‌عامل‌ها مانند ویندوز، از امنیت بیشتری برخوردار بوده و دلیل این امر وجود مدل امنیت لینوکس (LMS) است. بااین‌وجود، امنیت لینوکس هم کاملاً ایدئال نبوده و آسیب‌پذیر است.

در این مقاله با نکاتی جهت افزایش امنیت سرور مجازی لینوکس آشنا خواهیم شد و سعی داریم با رعایت آن‌ها از سرور خود در برابر هکرها محافظت کنیم.

امنیت پیش‌فرض لینوکس نسبتاً خوب بوده و خیلی بهتر از رقبای خود است، اما همچنان نقاط ضعفی دارد.

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

اجرای تکنیک‌هایی که در این مقاله به آن‌ها اشاره می‌کنیم، به مدت‌زمان زیادی نیاز ندارند؛ اما تا حدودی به تجربیات کاری نیازمند هستند. بنابراین چنانچه در هر قسمت سؤالی برایتان به وجود آمد، با ما در میان بگذارید. کارشناسان فنی سینداد همواره جهت پاسخگویی به سؤالات شما عزیزان آماده هستند.

۱. ورود کاربر روت را غیرفعال کنید

اگر می‌خواهید سرور مجازی شما ایمن باشد، هیچ‌گاه به‌عنوان کاربر روت (Root) وارد نشوید. به‌صورت پیش‌فرض، هر سرور مجازی لینوکس دارای یک نام کاربری روت است. بنابراین هکرها با دانستن نام کاربری، سعی در پیدا کردن رمز عبور شما دارند. پس خیلی سریع ورود با نام کاربری روت را غیرفعال کنید و به‌جای آن یک نام کاربری دیگر ایجاد کنید. در نام کاربری جدید از دستور Sudo استفاده کنید.

دستور Sudo به شما تمامی امتیازات کاربر روت را می‌دهد. توجه داشته باشید که قبل از غیرفعال کردن کاربر روت، حتماً کاربر غیر روت را ایجاد کنید.

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

پس از ایجاد کاربر غیر روت، فایل etc/ssh/sshd_config/ را در nano یا vi باز کرده و پارامتر “PermitRootLogin” را بیاید. گزینه‌ی پیش‌فرض آن yes است. آن را به no تبدیل کرده و سپس تغییرات را ذخیره کنید.

۲. پورت SSH را تغییر دهید

پورت SSH را تغییر دهید

پیدا کردن پورت SSH برای هکرها زمانی که نتوانند آن را پیدا کنند،  کاری دشوار است. تغیر شماره‌ی پورت SSH باعث جلوگیری از اتصال مستقیم اسکریپت‌های مخرب به پورت پیش‌فرض (پورت ۲۲) خواهد شد.

برای تغییر پورت SSH، فایل /etc/ssh/sshd_config را باز کرده و تنظیمات مناسب را انجام دهید.

حتماً بررسی کنید که آیا شماره پورت انتخاب شده توسط دیگر سرویس‌ها استفاده می‌شود یا خیر؟ باید دقت کنیم که برخوردی ایجاد نشود.

۳. نرم افزارهای سرور را به روز نگه دارید

به‌روز نگه داشتن نرم‌افزار سرور کار دشواری نیست. اما به‌روزرسانی نرم‌افزارهای سرور در هر نسخه از لینوکس متفاوت است. با استفاده از دستور ipm/yum در سیستم‌عامل‌های CentOS/RHEL و دستور apt-get در سیستم‌عامل‌های Ubuntu/Debian می‌توانید جدیدترین بسته‌های به‌روزرسانی شده برای مؤلفه‌ها و ماژول‌های لینوکس را دریافت کنید.

علاوه‌ بر این، شما می‌توانید پیکربندی سیستم‌عامل را به نحوی تنظیم کنید که آخرین به‌روزرسانی‌ها را توسط بسته‌ی yum از طریق ایمیل به شما اعلام کند.

نرم افزارهای سرور را به روز نگه دارید

اگر از کنترل‌پنل‌هایی مانند Plesk و cPanel استفاده می‌کنید، باید آن‌ها را هم به‌روزرسانی کنید. البته اکثر کنترل‌پنل‌ها را می‌توان به‌گونه‌ای تنظیم کرد که به‌صورت خودکار به‌روزرسانی شوند.

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

۴. پورت‌های باز شبکه را غیرفعال کنید

پورت‌های بلااستفاده و باز شبکه، اهداف بسیار خوبی برای هکرها هستند. پس شما باید از خودتان در برابر هکرها محافظت کنید. فرمان netstat را وارد کنید تا تمام پورت‌های باز شبکه و سرویس‌های مرتبط با آن‌ها را مشاهده کنید.

با استفاده از دستور chkconfig تنظیمات مناسب iptables را برای بستن پورت‌های باز انجام دهید. اگر از یک فایروال مانند CSF استفاده می‌کنید، می‌توانید تنظیمات iptables را به‌صورت خودکار انجام دهید.

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

۵. بسته‌ها و ماژول‌های اضافی را حذف کنید

بعید است که بخواهید از تمام بسته‌ها و ماژول‌های توزیع لینوکس خود استفاده کنید. هر سرویسی که حذف شود، یک شانس از هکرها گرفته می‌شود. پس اطمینان حاصل کنید که فقط از سرویس‌هایی استفاده می‌کنید که واقعاً به آن‌ها نیاز دارید.

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

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

۶. از رمزگذاری GnuPG استفاده کنید

هکرها معمولاً داده‌هایی را که در حال انتقال از یک شبکه هستند، مورد هدف قرار می‌دهند. به همین دلیل باید ارتباطات سرور را توسط رمز عبور، کلید و گواهینامه رمزگذاری کنید. یکی از ابزارهای مرسوم رمزگذاری GnuPG است.

 GnuPG یک سیستم تائید هویت مبتنی بر کلید است که برای رمزگذاری ارتباطات مورداستفاده قرار می‌گیرد. GnuPG از یک کلید عمومی استفاده می‌کند که فقط توسط کلید خصوصی گیرنده‌ی موردنظر رمزگشایی می‌شود.

۷. از رمز عبور قوی استفاده کنید

انتخاب رمز عبور در سرور مجازی

رمز عبور ضعیف همیشه بوده و همیشه هم خواهد بود. رمز عبور ضعیف یک تهدید برای امنیت است. به‌منظور انتخاب یک رمز عبور مناسب می‌توانید مقاله‌ی اشتباهات رایج در انتخاب رمز عبور را مطالعه کنید.

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

اگر تعداد دفعات رمز عبور اشتباه وارد شده از محدوده‌ی تعیین شده بیشتر شود، حساب کاربری مسدود خواهد شد.

۸. از فایروال استفاده کنید

بسیار واضح است که برای بهبود امنیت VPS نیاز به فایروال دارید. خوشبختانه برای نصب فایروال در سیستم‌عامل لینوکس سرور مجازی، گزینه‌های زیادی وجود دارد. NetFilter فایروالی است که کاملاً با کرنل لینوکس سازگاری دارد و شما می‌توانید آن را به نحوی پیکربندی کنید که ترافیک ناخواسته را فیلتر کند.

با کمک NetFilter و iptables می‌توانید در برابر حملات Ddos از سرور مجازی خود محافظت کنید.

TVPWrapper یک برنامه‌ی کاربردی دیگر بوده که به‌منظور فیلتر کردن دسترسی به شبکه برای برنامه‌های مختلف استفاده می‌شود. TVPWrapper یک سیستم کنترل فهرست دسترسی (ACL) مبتنی بر هاست است. این برنامه قابلیت‌هایی مانند تائید نام، ورودهای استاندارد و حفاظت از جاسوسی را ارائه می‌دهد که همگی می‌توانند منجر به افزایش امنیت VPS شما شوند.

البته فایروال‌های مشهور دیگری مانند CSF و APF هم هستند که پلاگین‌هایی را برای کنترل‌پنل‌های معروف cPanel و Plesk عرضه می‌کنند. به‌منظور آشنایی بیشتر با فایروال و انواع آن می‌توانید مقاله‌ی فایروال چیست و چه کاربردهایی دارد را مطالعه کنید. شرکت سینداد در تمامی سرویس‌های خود از فایروال‌های سخت‌افزاری و نرم‌افزاری استفاده می‌کند تا بالاترین میزان امنیت را برای کاربران خود فراهم کند.

۹. از پارتیشن بندی دیسک استفاده کنید

پارتیشن‌بندی هارد دیسک یکی دیگر از راه‌های افزایش امنیت سرور مجازی است. با انجام این کار فایل‌های سیستمی را از فایل‌های کاربر، فایل‌های tmp و برنامه‌های دیگر جدا می‌کنید. توجه داشته باشید که بهتر است همیشه فایل‌های سیستمی از برنامه‌های دیگر جدا نگه داشته شوند. 

شما همچنین می‌توانید دسترسی SUID/SGID و اجرای noexec را بر روی پارتیشن سیستم‌عامل غیرفعال کنید.

پارتیشن بندی دیسک

۱۰. تنظیم پارتیشن boot به read-only

تنظیم پارتیشن boot به read-only

در سرورهای لینوکس، تمام فایل‌های کرنل در دایرکتوری “boot/” ذخیره می‌شوند. سطح دسترسی پیش‌فرض برای این دایرکتوری “read-write” است. برای جلوگیری از تغییرات غیرمجاز فایل‌های بوت (که برای راه‌اندازی صحیح سرور شما حیاتی هستند)، پیشنهاد می‌شود که سطح دسترسی را به “read only” تغییر دهید.

بدین منظور فایل etc/fstab/ را ویرایش کرده و پیش‌فرض‌های LABEL=/boot /boot ext2 را اضافه کنید (ext را می‌توانید ۱ یا ۲ قرار دهید). اگر در آینده نیاز به انجام تغییراتی در کرنل باشید، به‌راحتی می‌توانید آن را red-write کنید و دوباره به read-only تنظیم کنید.

۱۱. از SFTP به‌جای FTP استفاده کنید

پروتکل انتقال فایل (FTP) منسوخ شده و دیگر ایمن نیست. پروتکل FTPS به‌مراتب از امنیت بالاتری برخوردار است. این پروتکل تمام داده‌ها را رمزگذاری می‌کند. پروتکل FTPS همان پروتکل FTP است که بر بستر SSH قرار می‌گیرد و ما آن را با نام FTP امن هم می‌شناسیم.

این پروتکل تمام داده‌ها (شامل اعتبارات و فایل‌های انتقالی) را کدگذاری می‌کند.

استفاده از پروتکل sftp بجای ftp

۱۲. از آنتی ویروس استفاده کنید

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

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

اما اگر نمی‌خواهید برای نرم‌افزارهای امنیتی هزینه کنید، بهترین راه استفاده از برخی از گزینه‌های رایگان است.

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

استفاده از آنتی ویروس در سرور مجازی

۱۳. به‌روزرسانی خودکار CMS را فعال کنید

هکرها به‌طور مداوم تلاش می‌کنند تا نقاط ضعف امنیتی را به‌خصوص در سیستم‌های مدیریت محتوا (CMS) پیدا کرده و به آن‌ها نفوذ کنند.

CMS های مشهور دنیای وب عبارت‌اند از جوملا، دروپال و وردپرس. اکثر توسعه‌دهندگان CMS به‌طور مرتب مشکلات امنیتی را حل کرده و امکانات جدیدی را به آن اضافه می‌کنند.

به خاطر داشته باشید که مسئولیت محتوای سایت شما بر عهده‌ی خودتان است نه میزبان شما. بنابراین توصیه می‌شود که به‌روزرسانی خودکار CMS خود را فعال کنید تا به‌محض انتشار نسخه‌ی جدید، مشکلات امنیتی آن حل شود.

۱۴. cPHULK را در WHM فعال کنید

مرحله‌ی بعدی در افزایش امنیت سرور مجازی، فعال کردن cPHULK در WHM است.

علاوه بر فایروال و آنتی ویروس، WHM به‌صورت پیش‌فرض دارای ابزاری به‌ نام cPHULK است که می‌تواند از حملات brute force جلوگیری کند.

cPHULK می‌تواند نقش فایروال ثانویه را بازی کرده و اگر شخصی که قصد ورود به سرور را دارد رمز عبور را چند مرتبه به‌اشتباه وارد کند، این ابزار IP او را مسدود کرده و مجوز ورود را به‌طور کامل از آن شخص می‌گیرد.

۱۵. از آپلودهای ناشناس FTP یا anonymous FTP جلوگیری کنید

سی‌پنل و پلسک هر دو آپلودهای ناشناس FTP را به‌صورت پیش‌فرض غیرفعال می‌کنند. اما تنظیمات دیگری ممکن است آن را دوباره فعال کنند. آپلود ناشناس FTP به هر شخصی اجازه می‌دهد تا هر آنچه که می‌خواهد را بر روی وب سرور شما آپلود کند. مثل این‌ است که کلیدهای منزل خود را به یک دزد بدهید!

برای غیرفعال کردن آپلودهای ناشناس، تنظیمات FTP سرور خود را ویرایش کنید.

۱۶. یک اسکنر rootkit نصب کنید

rootkit یکی از خطرناک‌ترین تروجان‌ها و بدافزارها بوده که اجازه‌ی دسترسی غیرمجاز و نامشخص را به سرور می‌دهد. خوشبختانه برای جلوگیری از این اتفاق می‌توانید از ابزاری به نام “chrootkit” استفاده کنید. chrootkit یک ابزار منبع باز بوده که با استفاده از آن می‌توانید بفهمید که آیا سرور شما آلوده شده است یا خیر؟

اما حذف rootkit اغلب ساده نیست و بهترین راه برای حل این مشکل، نصب مجدد سیستم‌عامل است.

اسکنر rootkit نصب کنید

۱۷. از سیستم بکاپ مداوم استفاده کنید

استفاده از بکاپ برای افزایش امنیت سرور مجازی

بسیاری از افراد فراموش می‌کنند که از اطلاعات خود بکاپ بگیرند و زمانی پشیمان می‌شوند که اتفاقی غیرمنتظره رخ داده و هیچ نسخه‌ی دیگری از اطلاعات خود ندارند.

مهم نیست که چقدر مراقب هستید و چقدر سرور خود را ایمن کرده‌اید؛ همیشه ممکن است اتفاقی پیش‌بینی نشده رخ دهد.

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

نتیجه‌گیری

آسیب‌پذیری در زیرساخت سرور فاجعه‌بار است. مثل‌اینکه یک آدم زخمی در دریایی پر از کوسه شنا کند!!!. در دنیا میلیون‌ها هکر وجود دارند که در پی فرصتی برای نفوذ و خراب‌کاری در سرور شما هستند. به‌خصوص سایت‌های شرکتی و تجارت الکترونیک بهترین هدف برای هکرها هستند. پس افزایش امنیت VPS موضوعی بسیار مهم و حیاتی است.

امیدواریم با رعایت مواردی که در بالا به آن‌ها اشاره شد بتوانید امنیت سرور مجازی لینوکس خود را افزایش دهید. البته سیستم‌عامل سرور مجازی می‌تواند ویندوز هم باشد. روش‌های افزایش امنیت در سرور مجازی ویندوز را می‌توانید در اینجا مشاهده کنید.

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

به‌منظور خرید سرور مجازی ایران و آمریکا از فناوران شبکه سینداد بر روی لینک‌های زیر کلیک کنید:

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.