حدوداً ۳۰٫۰۰۰ وبسایت روزانه هک میشوند و همین موضوع اهمیت امنیت سرور را نشان میدهد. در ادامه این مطلب با ما همراه باشید تا ۱۱ قدم ساده برای افزایش امنیت در سرور مجازی لینوکس به شما آموزش دهیم.
سیستمعامل لینوکس به دلیل ماهیت ذاتی و مدل امنیتی (LSM) در مقابل سایر سیستمعاملها از امنیت بالایی برخوردار است اما با تمام تمهیداتی که برای امنیتش برنامهریزیشده، ضعفهایی هم دارد. در ادامه به معرفی و توضیح راهکارهایی میپردازیم که با استفاده از آنها میتوانید ضعفهای امنیتی در سرور مجازی را به حداقل ممکن برسانید.
۱ . ورود از روت را غیرفعال کنید
هرگز نباید بهعنوان کاربر روت وارد لینوکس شوید. تمام سرورهای لینوکس دارای سطح کاربری «root» هستند و اغلب هکرها هم سعی میکنند این کاربرها را هک کنند. عدم استفاده از کاربر روت، سطح امنیتی سرور لینوکس شما را تا حد زیادی افزایش میدهد. بهتر است با کاربری دیگری به پنل کاربری VPS شوید و از دستورهای «sudo» برای اجرای دستورهای سطح روت استفاده کنید.
Sudo درواقع دسترسی ویژهای است که به کاربران مجاز و معتبر داده میشود تا بتوانند دستورات اصلی و مشخصی را اجرا کنند. با این کار دیگر نیازی به ورود به سرور با کاربری روت وجود ندارد. حتماً کاربری غیر روت در سرورتان ایجاد کرده و محدوده اختیارات و اجازه آن را مشخص کنید؛ سپس کاربر روت را کاملاً غیرفعال کنید. بدین منظور /etc/ssh/sshd_config
را در nano یا vi بازکرده و پارامتر PermitRootLogin را پیدا کنید. گزینه پیشفرض در این قسمت همیشه «yes» است و شما باید آن را به «no» تغییر داده و بعد از ذخیره تغییرات از آن خارج شوید.
۲ . پورت SSH را تغییر دهید
وقتی پورت SSH را تغییر میدهید، هک کردنش برای کلاهبرداران اینترنتی سخت میشود. ابتدا از باز بودن پورت جدید برروی فایروال اطمینان حاصل نمایید و سپس شماره این پورت را عوض کنید تا از اتصال اسکریپتهای مخرب به پورت پیشفرض ۲۲ جلوگیری شود.
برای این منظور به /etc/ssh/sshd_config
بروید. شماره جدیدی که برای پورت SSH انتخاب میکنید، نباید در دیگر سرویسها استفاده شود.
۳. نرمافزار سرور را بهروز نگهدارید
بهراحتی میتوانید با استفاده از پکیج منیجر یا بسته مدیریتی rpm/yum (CentOS/RHEL) یا دستور apt-get (Ubuntu/Debian) نرمافزار سرور لینوکس را به آخرین نسخه موجود، ماژولها و دیگر بخشهای تازه بهروزرسانی کنید.
همچنین میتوانید سیستمعامل را برنامهریزی کنید تا نوتیفیکیشن بهروزرسانی بسته yum را به ایمیل شما ارسال کند و از آن باخبر شوید. نصب و دریافت همه بهروزرسانیها با ایجاد کرون جاب (Cronjob) بهصورت خودکار هم فراهم میشود و کارتان را آسانتر میکند.
اگر از پنلهایی نظیر CPanel یا Plesk استفاده میکنید، حتماً آنها را بهروزرسانی کنید. برای مثال، CPanel برای بهروزرسانی اغلب بستهها از EasyApache استفاده میکند. پنلها را هم میتوانید بهمنظور بهروزرسانی خودکار تنظیم کنید.
وقتی بستههای امنیتی منتشر میشوند، در نصب آنها درنگ نکنید. هر چه بیشتر تعلل کنید، احتمال هک شدن وی پی اس افزایش مییابد.
۴. پورتهای کم استفاده را غیرفعال کنید
پورتهای باز شبکه و خدمات شبکهای که استفاده نمیشوند، هدفهای آسانی برای هک به شمار میآیند. از دستور «netstat» استفاده کنید تا تمام پورتهای باز شبکه و خدمات مرتبط به آن شبکه را مشاهده کنید.
«iptables» نوعی ابزار شبکه است که با تنظیمش میتوانید تمام پورتهای باز را ببندید یا از دستور «chkconfig» برای غیرفعال کردن خدمات بدون استفاده شبکه استفاده کنید. بسیاری از فایروالها ازجمله CSF میتوانند قوانین و دستورات iptables را بهصورت خودکار اجرا کنند.
۵ . بستهها و ماژولهای اضافه را حذف کنید
احتمالش خیلی کم است که بخواهید تمام بستهها و ماژولهای نرمافزار سرورتان را نصب و استفاده کنید. به هرکدام از این سرویسها و بستهها بهعنوان مسیری برای نفوذ هکرها نگاه کنید. وقتی هرکدام از این خدمات بدون استفاده را حذف میکنید، احتمال نفوذ هکرها به سرور مجازی را هم کاهش دادهاید.
پیشنهاد میکنیم نرمافزارها، بستهها و خدمات غیرضروری را اصلاً نصب نکنید.
۶ . IPv٦ را غیرفعال کنید
البته IPv٦ از مزایای متعددی نسبت به IPv٤ برخوردار است اما بههرحال کمتر مورداستفادهتان قرار میگیرد. تعداد ادمینهایی که از IPv٦ استفاده میکنند بسیار کم است و در اغلب موارد این پروتکل بدون استفاده باقی میماند. هکرها معمولاً حجمی از دادههای مخرب را از طریق IPv٦ ارسال میکنند و باز گذاشتن این پروتکل ممکن است راه نفوذ هکرها را بهسوی سرور شما هموار کند.
/etc/sysconfig/network
را ویرایش کرده و NETWORKING_IPV٦=no and IPV٦INIT=no
را در آن تنظیم کنید.
۷ . با GnuPG رمزنگاری کنید
هکرها معمولاً به دادههای در حال تردد درون شبکه حمله میکنند. برای جلوگیری از این حملههای سایبری، تردد دادههایتان را رمزگذاری کنید.
GnuPG سامانه مدیریت رمزنگاری ارتباطات بر اساس کلید (key-based) است. این سامانه از کلید عمومی «public key» استفاده میکند که رمز آن تنها توسط کلید اختصاصی «private key» باز میشود. کلید اختصاصی هم تنها در دسترس گیرندههایی قرار میگیرد که قبلاً تعیینشدهاند و بدین ترتیب هکرها از نفوذ به دادههای رمزنگاریشده بازمیمانند.
۸ . سیاست رمزگذاریتان را تقویت کنید
پسوردهای ضعیف همیشه از بزرگترین تهدیدهای امنیتی هستند. هرگز اجازه ندهید حسابهای کاربری بدون رمز عبور باقی بمانند یا رمزهای سادهای مانند ۱۲۳۴۵۶، password، qwerty١٢٣ یا trustno١ انتخاب کنند.
سرور مجازی را طوری تنظیم کنید که در فاصلههای زمانی معین، کاربرها را وادار کند رمز عبورشان را عوض کنند. همچنین تأکید کنید که رمز جدید نباید تکراری باشد.
از دستور «faillog» برای تعیین دفعات مجاز ورود رمز عبور استفاده کنید. با مسدود کردن حسابهای کاربری بعد از ورود تعداد دفعات بیشازحد رمز عبور، از سرورتان در مقابل حمله هکرها محافظت کنید.
۹ . فایروال مناسب به کار ببرید
برای حفظ امنیت در سرور مجازی و سرور اختصاصی باید از میان فایروالهای متعددی که وجود دارند، یک فایروال مناسب انتخاب کنید.
NetFilter فایروالی است که با هسته لینوکس هم هماهنگ میشود. میتوانید این فایروال را طوری تنظیم کنید که ترافیک ناخواسته را فیلتر کرده و به سرور راه ندهد. با کمک Netfilter و iptables میتوانید خطرات احتمالی حمله هکرها را تا حد زیادی کاهش دهید.
TCPWrapper هم اپلیکیشن مفید دیگری بر اساس میزبانی است که با فهرست کنترل دسترسی به شبکه (ACL)، دسترسی برنامهها را به شبکه اصلی فیلتر میکند. این اپلیکیشن عهدهدار تائید نام میزبان، ورودهای مجاز و امنیت در مقابل هک و جاسوسی است.
دیگر فایروالهای مفید و محبوب CFS و APF هستند که هردوی آنها پلاگینهایی برای پنلهای cPanel و Plesk با خود به همراه دارند.
۱۰. دیسک را پارتیشنبندی کنید
فایلها و اسناد مخصوص سیستمعامل را از فایلهای کاربران جدا کنید. دیسک را پارتیشنبندی کرده و برای فایلهای سیستمعامل، برنامههای جانبی، فایلهای tmp و فایلهای کاربران پارتیشن جدا در نظر بگیرید.
برای افزایش امنیت، دسترسی SUID/SGID (nosuid) تنظیم نکنید و در پارتیشن اصلی سیستمعامل هم اجرای هرگونه باینری (noexec) را غیرفعال کنید.
۱۱. دسترسی به /boot را محدود کنید
تمام فایلهای هسته در سرور لینوکس مستقیماً در آدرس «/boot» ذخیره میشوند و دسترسی پیشفرض به این آدرس هم «Read-Write» است. برای جلوگیری از نفوذ هر ورود تائید نشدهای پیشنهاد میکنیم که سطح دسترسی را به «Read-Only» تغییر دهید.
بدین منظور /etc/fstab
را به اجرا درآورده و دستور LABEL=/boot /boot ext٢ defaults, ro ١ ٢
را در انتها اضافه کنید.
اگر بعدها لازم شد تغییراتی در هسته لینوکس اعمال کنید، ابتدا سطح دسترسی را به «Read-Write» بازگردانید؛ بعد از اعمال تغییرات دوباره آن را «Read-Only» تنظیم کنید.