امنیت لینوکس

امنیت لینوکس

حدود ۳ دقیقه مطالعه

درود
اقدامات زیر تا حد زیادی جلوی اجرای اسکریپت های مخرب Shell را میگیرد و باعث افزایش امنیت لینوکس میشود .
مرحله اول کانفیگ PHP.ini :


بعضی از فانکشن ها بر روی سرور باید Disable شوند, این کار جلوی شل هایی که از این فانکشن ها استفاده میکنند را میگیرد
برای این کار دستور زیر را در SSH وارد کنید

nano /usr/local/lib/php.ini

سپس کلید های ترکیبی CTRL+W را فشار دهید(مثل همان CTRL+F یا find در Notepad) و عبارت مقابل را در صفحه جستجو کنید

disable_functions

کد:

disable_functions = ""

 

در میان دو کوتیشن عبارت های زیر را وارد کنید
کد:

fpassthru,show_source,crack_check,crack_closedict,crack_getlastmessage,crack_opendict,psockopen,proc_open,proc_nice,proc_terminate,proc_get_status,proc_close,system,dl,ctrl_dir,tmp,systemroot,server_software,get_current_user,HTTP_HOST,php_uname,ini_restore,popen,pclose,exec,shell_exec,suExec,passthru,apache_child_terminate,pfsockopen,leak,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,escapeshellcmd,escapeshellarg,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,posix_access,posix_get_last_error,posix_getppid,posix_mknod,posix_strerror,posix_access,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,php_ini_scanned_files,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_initgroups,posix_isatty,posix_kill,posix_mkfifo,posix_mknod,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname,symlink,allow_url_fopen

 

دقت کنید تا فانکشن ها دقیقا مثل تصویر زیر وارد شوند
امنیت لینوکس
ممکن است این فانکشن ها در برخی از CMS ها مشکلاتی ایجاد کند ! در صورت بروز هر گونه ممکن میتوانید فانکشن مورد نظر را از این لیست حذف کنید
طبق توصیه CSF بستن فانکشن های زیر نیز کفایت میکند
کد:

show_source,system,shell_exec,passthru,exec,phpinfo,popen,proc_open,allow_url_fopen

 

بعد از کپی کردن فانکشن ها کلید های ترکیبی CTRL+X را فشار دهید و فایل را ذخیره کنید

فانکشن ها در PHP.ini اصلی سرور غیر فعال شدند ولی به صورت پیشفرض هر کاربر میتواند برای خود فایل php.ini بسازد و بدون اینکه هیچ یک از این فانکشن ها برایش غیر فعال باشد از شل خود استفاده کند
پس ما باید کاری کنیم که تنها PHP.ini که در سرور استفاده میشود همینی باشد که ما کانفیگش کردیم

خصوصی کردن PHP.ini
کد:

nano /usr/local/apache/conf/includes/pre_main_global.conf

 

فایل بالا را ویرایش کرده و دستور های زیر را در آن کپی کنید
کد:

suPHP_ConfigPath /usr/local/lib/

کد:

nano /opt/suphp/etc/suphp.conf

 

فایل بالا را ویرایش کنید و ; های اول خطوط زیر را بردارید
کد:

application/x-httpd-php=/usr/local/lib/
application/x-httpd-php4=/usr/local/php4/lib/
application/x-httpd-php5=/usr/local/lib/

 

در نهایت هم آپاچی را با دستور زیر ری استارت کنید

service httpd restart

 

مرحله بعدی نصب آنتی ویروس ClamAV هست
دستور ها
کد:

⚠ هشدار امنیتی — این دستورها را اجرا نکنید. دامنه‌ای که فایل نصب از آن دانلود می‌شد (www.linuxmail.info) دیگر در DNS وجود ندارد، ولی دامنهٔ اصلی linuxmail.info هنوز ثبت‌شده و در اختیار شخص دیگری است. اگر آن شخص یک رکورد www اضافه کند، فایل مخزنی که شما داخل /etc/yum.repos.d می‌ریزید در کنترل او خواهد بود — یعنی می‌تواند هر بسته‌ای را با root روی سرور شما نصب کند. دستور wget زیر فقط برای اینکه بدانید روش قدیمی چه بوده اینجا مانده است. دانلود و اجرای یک اسکریپت با کاربر root از دامنه‌ای که مالکش را نمی‌شناسید، یعنی دادن کنترل کامل سرور به صاحب آن دامنه.

## اجرا نکنید — مخزن شخص ثالث ##
## wget http://www.linuxmail.info/files/dag-clamav.repo

روش درست امروز، نصب از مخزن رسمی EPEL است:

dnf install -y epel-release
dnf install -y clamav clamav-update clamd
freshclam
systemctl enable --now clamd@scan

روی سرورهای cPanel می‌توانید ClamAV را مستقیم از WHM و بخش «Manage Plugins» نصب کنید تا با آپدیت‌های خود پنل هماهنگ بماند. دستور /etc/init.d/clamd restart هم منسوخ است و روی توزیع‌های امروزی معادلش systemctl restart clamd@scan است.

 

دستور /scripts/upcp --force فقط مربوط به کاربرانی هست که از Cpanel استفاده میکنند
برای اسکن فایل ها توسط ClamAV میتوانید از دستور های زیر استفاده کنید
کد:

cd /home
clamscan -vr

 

مرحله بعدی روشن کردن SafeMode هست
از دیدگاه خیلی از افراد SafeMode در هاستینگ عمومی مشکلاتی ایجاد میکنه
من منکر این حرف نیستم ! ولی معمولا از هر ۵۰ سایتی که میزبانی میکنی یکی دو مورد مشکل دارن که قطعا! قطعا! امنیت ارزش بیشتر از یکی دوتا کاربر هست
برای روشن کردن SafeMode فایل زیر را ویرایش کنید , عبارت safe_mode را در صفحه پیدا کنید و مقدار آن را به On تغییر دهید

nano /usr/local/lib/php.ini

 

مرحله بعدی غیر فعال کردن PHP4 هست
یکی از دوستان سرورش رو جهت تست در اختیار بنده قرار داد با php5 هیچکار نتوانستم انجام دهم ولی در PHP4 براحتی توانستم method های امنیتی را bypass کنم
جدیدا php4 اصلا استفاده نمیشه و فقط هاستینگ های قدیمی برای سایت های قدیمیشون از این نسخه در کنار php5 استفاده میکنند

مرحله آخر هم خرید لایسنس و استفاده از LiteSpeed Load Balancer هست
بطور مثال شل اجرا میشه ولی هر کاری میخواد بکنه ارور ۴۰۳ و.. میگیره
البته LiteSpeed Load Balancer در کارایی سرور هم نقش بسزایی داره و استفاده اصلیش برای اون هست

آموزش‌های مرتبط