سرور مجازی لینوکس | 20 روش برای افزایش امنیت سرور لینوکس
سرور مجازی لینوکس به دلیل نصب LSM (Linux’s security model) روی سیستم لینوکس از سیستم های دیگر ساختار امنیتی بیشتری دارند اما چون LSM نمی تواند امنیت
سرور لینوکس را کاملا برقرار کند بهتر است روش های افزایش امنیت سرور مجازی لینوکس را بدانیم.
در این مقاله با تکنیک های افزایش امنیت سرورهای مجازی لینوکس آشنا می شوید.
غیرفعال کردن ورود با نام کاربری root
هر سرور مجازی لینوکس به طور پیش فرض از یک نام کاربری اصلی (root) استفاده می کند. اولین روش برای افزایش امنیت، غیرفعال کردن root است. زیرا هکرها برای حمله به یک سایت به این نام کاربری نیاز دارند و به راحتی می توانند به آن دسترسی پیدا کنند.
بعد از غیرفعال کردن root شما باید یک نام کاربری جدید ایجاد کنید تا بتوانید دستورات سطح روت را اجرا کنید برای این کار از دستور Sudo استفاده کنید که این دستور یک دسترسی ویژه برای کاربرانی که هویت آن ها احراز می شود قرار می دهد تا بتوانند دستورات مدیریتی را بدون نیاز به دسترسی root انجام دهند. توجه به این نکته ضروری است که شما قبل از اینکه نام کاربری اصلی (root) را غیرفعال کنید باید این دسترسی ها را مشخص کنید تا بعد از لاگین روت با مشکل مواجه نشوید.
برای غیرفعال کردن لاگین با کاربر root فایل دستورات آن را در nano یا vi باز کنید و پارامتر PermitRootLogin را بعد از اینکه پیدا کردید پیش فرض آن را از « yes » به « no » تغییر دهید.
پورت SSH را تغییر دهید
اگر می خواهید امنیت سرور مجازی لینوکس را بالا ببرید حتما پورت SSH را تغییر دهید تا هکرها نتوانند به راحتی به آن دسترسی داشته باشند. چون پورت SSH به صورت پیش فرض با شماره «22» است و با این شماره اسکریپت های مخرب به راحتی به SSH دسترسی پیدا می کنند و با تغییر آن، این دسترسی مسدود می شود.
شما باید تنظیمات تغییر پورت SSH را در قسمت /etc/ssh/sshd_config انجام دهید و دقت کنید که آدرس پورت جدید قبلا در سرویس دیگری استفاده نشده باشد.
به روز نگه داشتن نرمافزار سرور
شما به راحتی می توانید سرور مجازی لینوکس را بروزرسانی کنید کافیست از دستور rpm/yum در (CentOS/RHEL) و یا apt-get در (Ubuntu/ Debian) استفاده کنید تا آخرین نسخه های آپدیت سرور را دریافت کنید.
یک راه دیگر برای بروزرسانی سریع و آسان نرم افزارهای سرور این است که شما از بسته yum استفاده کنید تا آخرین به روزرسانی ها را از طریق ایمیل خود دریافت کنید.
همچنین میتوانید یک (Cron job) ایجاد کنید تا همه سرویس های بروزرسانی را به صورت خودکار دریافت کنید.
اگر از cpanel یا دایرکت ادمین استفاده می کنید می توانید آنها را طوری تنظیم کنید که مرتبا به طور خودکار بروزرسانی شوند. بهتر است این تاکتیک های امنیتی را سریع تر انجام دهید تا فرصتی به هکرها برای نفوذ به سرورتان را ندهید.
غیرفعال کردن پورتهای استفاده نشده شبکه
پورت های باز شبکه و سرویس های استفاده نشده را غیرفعال کنید چون بوسیله آنها هکرها به راحتی می توانند به سرور شما دسترسی پیدا کنند.
شما با استفاده از دستور “netstat” می توانید تمامی پورت های باز شبکه را در صفحه نمایش خود ببینید و با استفاده از دستور “chkconfig” در قسمت تنظیمات iptables می توانید تمام پورت های باز را غیرفعال کنید.
بعضی از فایروال ها مانند CSF می توانند قوانین iptables را به طور خودکار فعال کنند.
حذف ماژولها/بستههای ناخواسته
ماژول ها و بسته های ناخواسته که روی سرور لینوکس شما وجود دارند و از آنها استفاده نمی کنید ممکن است امنیت سرور شما را به خطر بیندازند و شما با حذف این سرویس های استفاده نشده میتوانید امنیت سرور خود را بالاتر ببرید. پس مطمئن باشید که از سرویس هایی که به آن نیاز دارید روی سرور لینوکس خود استفاده کنید و ماژول هاس اضافه را حذف کنید.
شما با حذف ماژول ها و بسته های اضافی می توانید امنیت سرور خود را تامین کنید.
غیرفعال کردن IPv6
IPv6 آدرس های آی پی بیشتری را نسبت به IPv4 پوشش می دهد و مزایای زیادی دارد اما اکثر کاربران از آن استفاده نمی کنند. و هکرها با استفاده از IPv6 یک ترافیک مخرب را برای سرور ارسال می کنند و در صورت فعال بودن IPv6 سیستم شما با مشکل مواجه می شود.
پس بهترین راه برای جلوگیری از نفوذ هکرها غیرفعال کردن IPv6 است و برای این کار شما با ویرایش فایل /etc/sysconfig/ و تغییر گزینه های /etc/sysconfig/ و IPV6INIT=no می توانید آن را غیرفعال کنید.
استفاده از رمزگذاری GnuPG
معمولا بیشتر اطلاعات زمانی که از طریق شبکه در حال انتقال هستند مورد حمله هکرها قرار می گیرند به همین دلیل بهترین روش افزایش امنیت سرورهای لینوکس رمزگذاری تمام کلیدها و گواهی های ضروری هنگام انتقال در شبکه است.
شما با استفاده از سیستم کاربردی GnuPG که یک ابزار تایید هویت مبتنی بر کلید است می توانید رمز گذاری ها را انجام دهید. این سیستم به این صورت است که از یک کلید عمومی استفاده میکند اما فقط توسط گیرنده با استفاده از یک کلید خصوصی قابل رمزگشایی است.
از رمز عبور قوی استفاده کنید
رمز عبور قوی می تواند امنیت سایت شما را در برابر حملات هکرها بالا ببرد. شما باید طوری سیستم تان را برنامه ریزی کنید که کاربران از رمزهای ضعیف و ساده که به راحتی قابل پیدا کردن هستند استفاده نکنند.
رمز عبور قوی باید ترکیبی از اعداد، کلمات با حروف بزرگ و کوچک، وهمینطور سمبل ها باشد. و بهتر است کاربران بعد از یک زمان مشخص مجبور باشند رمز عبور خود را عوض کنند.
همچنین می توانید با استفاده از دستور “faillog” طوری سیستم تان را تنظیم کنید که حساب های کاربری که پشت سر هم رمزعبور را اشتباه وارد می کنند بسته شوند و بدین ترتیب از حملات brute force جلوگیری کنید.
نصب و پیکربندی دیوار آتش یا فایروال
برای افزایش امنیت یک سرور مجازی لینوکس (vps) شما به یک فایروال یا دیوار آتش نیاز دارید. یکی از بهترین انتخاب ها برای دیوار آتش NetFilter است که با هسته سرور لینوکس یکپارچه شده است و شما می توانید آن را طوری تنظیم کنید که ترافیک ناخواسته را فیلتر کند. فایروال های NetFilter و iptables به شما کمک می کند تا سیستم تان را از حملات DDOS محافظت کنید.فایروال ها علاوه بر تنظیم درست باید به درستی هم پیکربندی شوند.
یکی دیگر از فایروال های مفید TCPWrapper است که این سیستم یک لیست برای کنترل دسترسی های مبتنی بر میزبان دارد که دسترسی های شبکه را برای برنامه های مختلف فیلتر می کند. این برنامه لاگین های استاندارد شده را برای حفاظت از جاسوسی ها نیز می دهد.
فایروال های CSF و APF از پلاگین های پرطرفدار برای cPanel و Plesk هستند.
استفاده از پارتیشن بندی هارد دیسک
یکی از ایده های خوب برای افزایش امنیت سرور لینوکس پارتیشن بندی هارددیسک است تا فایل های سیستم عامل از بقیه فایل ها مانند (کاربر، tmp) و همینطور برنامه های شخص ثالث جدا باشند. همچنین شما می توانید با غیر فعال کردن دسترسی SUID/SGID (nosuid) و اجرای باینری ها (noexec) روی پارتیشن های سیستم عامل امنیت سایت خود را بالاتر ببرید.
تنظیم پارتیشن boot/ به فقط خواندنی
همه فایل های هسته در سرورهای لینوکس داخل یک پوشه به نام “/boot” ذخیره شده اند.
سطح دسترسی به این پوشه ها به صورت پیش فرض (read-write) یعنی هم نوشتن، هم خواندن است. برای این که در فایل های “/boot” تغییرات غیرمجاز (که برای اجرای سرور ضروری است) سطح دسترسی را به (read) «فقط خواندنی» تغییر دهید.
برای تنظیم پارتیشن boot به فقط خواندنی باید فایل the /etc/fstab را ادیت کنید و در پایین، LABEL=/boot /boot ext2، ro 1 2 را اضافه کنید.
این ویرایش مشکلی برای شما به وجود نمی آورد و به محض نیاز به تغییر هسته می توانید آن را به حالت اول (read-write) برگردانید.
از SFTP به جای FTP استفاده کنید
پروتکل انتقال فایل FTP به دلیل قدیمی بودن دیگر امنیت لازم را ندارد.
SFTP که همان FTP روی SSH است (FTP امن) تمام داده ها را به صورت کامل رمزگذاری می کند و بدین ترتیب امنیت سرور شما را بالا می برد.
از فایروال(firewall) استفاده کنید
فایروال اولین خط دفاعی در برابر هکرهاست و مانند دروازه ای است که اجازه دسترسی یا عدم دسترسی به سرور را می دهد.
شما باید در زمان نصب سرور مجازی(vps) و یا سرور bare metal برای حفظ امنیت اولین کاری که انجام می دهید نصب و پیکربندی یک فایروال باشد.
تمام سرورهای وستا سرور قبل از ارائه به کاربران پیکربندی فایروال انجام شده و تمامی تنظیمات امنیتی پیاده سازی شده است.
نصب نرمافزار آنتی ویروس
دیوارهای آتش یا فایروال اولین خط دفاعی در مقابل حملات هکرها هستند و هر چند سایت های مخرب را شناسایی می کنند و اجازه دسترسی آنها به سرور را نمی دهند اما هیچ فایروالی نمی تواند امنیت را کاملا برقرار کند و خیلی از نرم افزارهای مخرب می توانند از آن عبور کنند پس به تدابیر امنیتی بیشتری نیاز داریم.
اکثر صاحبان سایت تمایلی به نصب آنتی ویروس ندارند چون معتقدند نصب آنتی ویروس علاوه بر پرداخت هزینه برایشان محدودیت هم بوجود می آورد اما در واقع امنیت سایت خود را به خطر می اندازند.
امروزه نسخه های رایگان زیادی از آنتی ویروس ها مانند ClamAV و Maldet وجود دارد که فایل های سرور را اسکن کرده و فایل های مخرب را به شما نشان می دهند و شما با نصب این نرم افزارها می توانید امنیت سایت خود را بالا ببرید.
بروزرسانی اتوماتیک CMS
سیستم های مدیریت محتوا (CMS) که معروفترین آن ها Joomla, Drupal و WordPress هستند و تقریبا 20 درصد وب سایت های جهان از آنها استفاده می کنند همواره در معرض نفوذ حملات هکرها هستند و باید مرتبا مشکلات امنیتی را برطرف کنند.
اکثر این سیستم ها بروزرسانی های امنیتی زیادی را انتشار داده اند که از بین آن ها WordPress بیشترین این بروزرسانی ها را منتشر کرده است.
CMS ها به شما اجازه بروزرسانی اتومات را با انتشار نسخه جدید خود می دهند. حتما به این نکته توجه کنید که چون خود شما باید سایت تان را مدیریت کنید نه شرکتی که میزبانی وب را از آن تهیه کرده اید پس حواستان به بروزرسانی مرتب سایت باشد.
فعال کردن cPHulk در WHM
برای بالا بردن امنیت سرور مجازی لینوکس علاوه بر نصب فایروال و آنتی ویروس می توانید از ابزار cPHulk که به صورت پیش فرض در WHM قرار دارد استفاده کنید. این ابزار می تواند جلوی حملات
brute force را بگیرد. بعد از این که این سیستم فعال سازی شد اگر یک کاربر برای ورود به سرور چند بار متوالی رمز عبور را اشتباه وارد کند ابتدا cPHulk امکان لاگین شدن را بلاک می کند و سپس فایروال آدرس IP فرد را مسدود می کند.
جلوگیری از بارگزاری FTP ناشناس
cPanel و Plesk به صورت پیش فرض بارگداری های FTP ناشناس را غیرفعال می کنند اما در سیستم های دیگر می توانند فعال باشند.
اگر کاربران ناشناس اجازه دسترسی به سرور را از طریق FTP داشته باشند سرور شما از نظر امنیتی در خطر بزرگی قرار می گیرد چون هر کاربر می تواند هر چیزی را در وب سرور آپلود کند. برای این که FTP های ناشناس را غیرفعال کنید تنظیمات پیکربندی FTP سرور را ادیت کنید.
نصب یک rootkit scanner
rootkit یکی از خطرناک ترین نرم افزارهاست که می تواند به یک سرور به طور نامشخص دسترسی داشته باشد. البته با استفاده از ابزار کد باز (chrootkit) می توانید آلوده بودن سایت خود را تشخیص دهید.
rootkit را نمی توان به راحتی حذف کرد و بهترین راه برای از بین بردن آن ها این است که سیستم عامل را مجددا نصب کنید.
گرفتن نسخههای پشتیبان به شکل مرتب
اکثر صاحبان وب سایت فراموش می کنند از اطلاعات سایت خود نسخه پشتیبان بگیرند. اما بهتر است این ریسک را نکنند و مرتبا یک بک آپ از داده های سایت خود داشته باشند تا اگر به هر دلیلی اطلاعات سایت از بین رفت به راحتی دوباره آن ها را بازیابی کنند.
بهتر است خود شما یک نسخه پشتیبان به طور مرتب برای خود تهیه کنید حتی اگر میزبان وب شما روزانه از اطلاعات سایت شما بک آپ میگیرد و یا خود شما خدمات هاست را ارائه می دهید. این نسخه پشتیبان را می توانید در میزبانی ابری نگهداری کنید.
استفاده از رمزعبور قوی
شاید قبلا این مورد توضیح داده شده است اما به دلیل اهمیت آن دوباره روی این موضوع تاکید می کنیم. چون استفاده از رمزهای عبور ضعیف به شدت برای سرور مجازی لینوکس یک تهدید امنیتی محسوب می شود.
CPanel و Plesk هر دو این سیاست را اعمال کرده اند که کاربر از رمز عبورهای قوی استفاده کند و این پسوردها بعد از یک دوره مشخص منقضی می شوند.
نحوه تنظیم یک رمز عبور قوی
- از رمز عبورهای طولانی که ترکیب حروف کوچک و بزرگ، اعداد و سمبل ها هستند و می توانید آن ها را به خاطر بسپارید استفاده کنید.
- از کلماتی که در فرهنگ لغت موجودند مانند «سیب زرد» استفاده نکنید.
- از رمزهای عبور ساده و یکسان که به راحتی تشخیص داده می شوند استفاده نکنید.
- از رمز عبورهای منحصربفرد برای سرور ویندوز و سرور لینوکس خود استفاده کنید.
- از رمز عبورهای مختلف برای وب سایت های مختلف استفاده کنید و این پسوردها را به طور مرتب عوض کنید.
سخن آخر
هکرها در سرتاسر دنیا به وسیله ی کوچکترین ضعف های سرورهای مجازی، سیستم شما را تهدید می کنند. بهترین روش برای جلوگیری از این تهدیدها ایجاد یک ساختار امنیتی قوی برای VPS است. معمولا بیشترین خطر حمله هکرها به سایت های شرکت های تجاری و فروشگاه های اینترنتی است.