1. دسترسی ایمن از راه دور
بعضی اوقات ما با استفاده از روش های از راه دور به سرور خود دسترسی پیدا می کنیم و اگر به هیچ وجه ایمن نباشد ، ممکن است سرور خود را به خطر بیندازیم. غیرفعال کردن روش تأیید رمز عبور SSH و فعال کردن روش تأیید اعتبار کلید عمومی
برای غیرفعال کردن روش رمز عبور ، ChallengeResponseAuthentication و گذرواژه تأیید اعتبار را به "نه" تغییر دهید.
ChallengeResponse تأیید اعتبار شماره
مجوز کلید عمومی:
RSAAuthentication بله PubkeyAuthentication بله
اکنون می توانید یک جفت کلید جدید تولید کنید:
# ssh-keygen -t rsa
b. غیرفعال کردن مستقیم ورود به سیستم به سیستم
اگر اجازه دسترسی مستقیم به سرور داده شود ، خطرات امنیتی وجود دارد.
در عوض ، باید با استفاده از حساب کاربری خود وارد شوید و سپس از آن استفاده کنید تا به عنوان root وارد شوید.
بنابراین ، باید PermitRootLogin 'بله' را به PermitRootLogin 'نه' تغییر دهید.
PermitRootLogin no
c. درگاه پیش فرض برای SSH (سابق: 8500)
port 8500
2 را تغییر دهید. گذرواژه GRUB bootloader
با محافظت از bootloader می توان از دسترسی به حالت تک کاربره که کاربر در آن به صورت خودکار به صورت root استفاده می کند جلوگیری کرد.
برای Debian:
# grub-mkpasswd-pbkdf2
برای Centos: [19659006] # grub2-mkpasswd-pbkdf2
3. پورت های شبکه
پس از پیکربندی سرویس های شبکه ، لازم به ذکر است که درگاه ها در واقع در رابط های شبکه سیستم گوش می کنند. هر درگاه باز ممکن است اثبات ورود باشد. نحوه غیرفعال کردن پورت های خاص در ویندوز
# nmap -sT -O محلی شروع Nmap 6.40 (http://nmap.org) در 2017-06-07 23:13 UTC گزارش اسکن Nmap برای localhost (127.0.0.1) میزبان بالا می رود (تأخیر 0.000061s). آدرسهای دیگر برای localhost (اسکن نشده): 127.0.0.1 رکورد rDNS برای 127.0.0.1: centos-01 نشان داده نشده است: 995 پورت بسته خدمات PORT STATE 22 / tcp ssh باز smtp 25 / tcp باز 80 / TCP باز کردن http 111 / TCP rpcbind باز 2049 / tcp nfs open
برای لیست تمام پورت های باز و برنامه های مرتبط ، از دستور زیر استفاده کنید:
# netstat -tulpn اتصالات فعال اینترنتی (فقط سرورها) آدرس Poto / نام برنامه آدرس محلی Proto Recv-Q Send-Q آدرس محلی tcp 0 0 0.0.0.0gment11 0.0.0.0:* LISTEN 1 / systemd tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN
4. کاهش حقوق
برای محدود کردن خطرات ، حق پرونده های سیستم و پوشه ها را ببندید.
# chmod 700 / root # chmod 700 / var / log / audit # chmod 740 /etc/rc.d/init.d/iptables # chmod 740 / sbin / iptables # chmod -R 700 / etc / skel # chmod 600 /etc/rsyslog.conf # chmod 640 /etc/securance/access.conf # chmod 600 /etc/sysctl.confociation19659018†5. بررسی گذرواژههای خالیهر حساب با رمز عبور خالی به این معنی است که برای دسترسی غیرمجاز به شبکه باز است و باعث تضعیف امنیت سرور لینوکس می شود.
برای چک کردن رمزهای عبور خالی ، از دستور زیر استفاده کنید:
# cat / و غیره / سایه | awk -F: '($ 2 == "") {$ 1 {چاپ کنید paulکلمه عبور های خالی را قفل کنید:
# passwd -l paul
قفل کردن رمز عبور برای پائول کاربر. passwd: موفقیت6. پارامترهای هسته را پیکربندی کنید
برای بهینه سازی پارامترهای هسته ، پرونده /etc/sysctl.conf را ویرایش کنید.
Sysctl دستوری است که برای تغییر پارامترهای هسته در زمان اجرا در ترمینال استفاده می شود.
# sysctl -a # sysctl -A # sysctl net.ipv4.conf.all.rp_filterبرای بارگذاری تنظیمات ، وارد شوید:
# sysctl -pمحتوای زیر را در پرونده
/etc/sysctl.confکپی کنید.
# execshield را روشن کنید kernel.exec-shield = 1 kernel.randomize_va_space = 1 # محافظت در برابر جعل IP را فعال کنید net.ipv4.conf.all.rp_filter = 1 # مسیریابی منبع IP را غیرفعال کنید net.ipv4.conf.all.accept_source_route = 0 # نادیده گرفتن درخواست پخش net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_messages = 1 # حتماً بستههای جعلی وارد شوید net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 # غیرفعال کردن تغییر مسیر یابی مسیریابی ICMP sysctl -w net.ipv4.conf.all.accept_redirects = 0 sysctl -w net.ipv6.conf.all.accept_redirects = 0 sysctl -w net.ipv4.conf.all.send_redirects = 0 sysctl -w net.ipv6.conf.all.send_redirects = 0 # کلید جادویی-sysrq را غیرفعال می کند kernel.sysrq = 0 # tcp_sack را خاموش کنید net.ipv4.tcp_sack = 0 # tcp_timestamps را خاموش کنید net.ipv4.tcp_timestamps = 0 # محافظت از کوکی TCP SYN را فعال کنید net.ipv4.tcp_syncookies = 1 # محافظت از پیام خطای بد را فعال کنید net.ipv4.icmp_ignore_bogus_error_responses = 17. سرویس های ناخواسته را غیرفعال کنید
شما باید کلیه خدمات و داسون های ناخواسته (خدماتی که در پس زمینه در حال اجرا هستند) را از سیستم حذف کنید و در زمان راه اندازی در سطح 3 شروع به کار کنید.
# chkconfig - لیست | grep '3: on'برای غیرفعال کردن خدمات ، انجام دهید:
# سرویس خدمات # خدمات chkconfigName off8. احتیاج به تأیید اعتبار برای حالت تک کاربر
توصیه می شود هنگام ورود به حالت تک کاربر ، رمزعبور root را وارد کنید.
پرونده / etc / sysconfig / init را باز کنید و خط را اضافه کنید:
SINGLE = / sbin / sulogin9. Linux Enhanced Security (SELinux)
SELinux مجموعه ای از قوانین امنیتی است که تعیین می کند کدام پروسه می تواند به یک فایل ، فهرست ها ، پورت ها و غیره دسترسی پیدا کند.
هر پرونده ، فرآیند ، فهرست و پورت دارای یک برچسب امنیتی ویژه است.
یک زمینه به سادگی نامی است که توسط سیاست های SELinux استفاده می شود تا مشخص شود آیا یک فرآیند می تواند به یک فایل ، فهرست یا پورت دسترسی داشته باشد.
به طور پیش فرض ، این سیاست تعامل را مجاز نمی کند ، بنابراین قوانین صریح اجازه دسترسی را می دهند.
اگر هیچ مجوزی وجود ندارد ، دسترسی رد می شود.
فرمان getenforce به ما می گوید SELinux در کدام حالت قرار دارد.
ما می توانیم حالت SELinux را به تغییر دهیم. آنرا با تغییر SELINUX = اجرای مجدد به / etc / sysconfig / selinux
سه دستورالعمل در این پرونده وجود دارد ، مطابق شکل زیر.
- اجرای : سیاست امنیتی SELinux اعمال می شود.
- مجاز : SELinux هشدارها را چاپ می کند
- غیرفعال شده : SELinux کاملاً غیرفعال است.
شما می توانید وضعیت SELinux را با دستور بررسی کنید:
# sestatus وضعیت SELinux: غیرفعال شدهاکنون ما می بینیم که این وضعیت غیرفعال است ، برای فعال کردن سیاست های امنیتی ، دستور را اجرا کنید:
# اجرای قانون10. نصب فایروال با استفاده از iptables
iptables یک برنامه کاربردی است که به مدیر سیستم امکان می دهد جداول ارائه شده توسط فایروال هسته لینوکس ، و همچنین زنجیره ها و قوانینی را که آن ذخیره می کند ، پیکربندی کند. نحوه تنظیم مجدد قوانین در iptables
a. بستن همه درگاه های ناخواسته
# iptables -A INPUT -p tcp --dport PORT_NUMBER -j DROPb. مسدود کردن IP بد
# iptables -A INPUT -s IP_ADDRESS -j DROPsec. مسدود کردن اتصالات به رابط شبکه
برای مسدود کردن اتصالات از یک آدرس IP خاص به یک رابط شبکه خاص ، از این دستور استفاده کنید:
# iptables -A INPUT -i ens0 -s 6 .6.6.6 -j DROPd. لیست قوانین iptables
شما می توانید تمام قوانین iptables را با دستور مشاهده کنید
# iptables -L -n -v
11. بررسی سیستم پرونده [
تمام پرونده های دارای بیت SUID / SGID می توانند در صورت داشتن پرونده امنیتی SUID / SGID با مشکلات امنیتی مورد استفاده قرار گیرند.
هر کاربر محلی یا از راه دور می تواند از چنین فایلی استفاده کند.
a. دودویی های ناخواسته SUID و SGID را کشف کنید
چاپ # find / (-perm -4000 -o -perm -2000 ) # find / -path -prune -o -type f -perm +6000 -lsb. تعیین پرونده های موجود برای نوشتن
# find / dir -xdev - نوع d (-perm -0002 -a! -Perm -1000 ) -printc. تعریف پرونده ها و پوشه های یتیم
# find / dir -xdev (-nouser -o -nogroup ) -print12. دایرکتوری / boot را به عنوان فقط خواندنی نگه دارید
هسته لینوکس و پرونده های مرتبط با آن در فهرست / boot قرار دارند ، که بصورت پیش فرض برای خواندن و نوشتن استفاده می شود.
تغییر آن برای خواندن ، خطر اصلاح غیرمجاز پرونده های مهم بوت را کاهش می دهد.
ما باید پرونده / etc / fstab را ویرایش کرده و خط زیر را وارد کنید [
LABEL = / boot / boot ext2 پیش فرض ، ro 1 2 [19659099] 13. غیرفعال کردن تمام پوسته های TCP
پوسته های TCP می توانند روشی سریع و آسان برای کنترل دسترسی به برنامه های مرتبط ارائه دهند .
بنابراین ، توصیه می شود همه برنامه های بلااستفاده را مسدود کنید ، و سپس فقط به برنامه های کاربردی اجازه دهید که مورد استفاده قرار گیرند.
به عنوان مثال ، همه برنامه ها را مسدود می کنیم ، اما ssh
# echo "ALL: ALL" را مجاز می کنیم >> /etc/hosts.deny # echo "sshd: ALL" >> /etc/hosts.allowociation19659052-0214. مسدود کردن کارها برای کاربران غیرمجاز.کرون برای خودکارسازی کارها در زمان های خاص استفاده می شود.
شما می توانید مشخص کنید که چه کسی می تواند و نمی تواند وظایف را انجام دهد.
این توسط پرونده هایی به نام /etc/cron.allow و /etc/cron.deny کنترل می شود.
برای مسدود کردن کاربر با استفاده از cron ، کافی است نام های کاربری را به cron.deny اضافه کنید و به کاربر اجازه دهید تا cron.allow را اضافه کند.
# echo ALL >> / etc / cron.deny15. سرور خود را از سرریزهای بافر محافظت کنید
سرریزهای بافر وقتی اتفاق می افتد که یک برنامه یا فرایند سعی در ارسال اطلاعات بیشتر به یک بلوک از حافظه ثابت یا بافر نسبت به بافر اختصاص داده شده برای ذخیره سازی کند.
مهم است که از سرور خود در برابر این محافظت کنید حملات.
a. ExecShield
# sysctl -w kernel.exec-shield = 1را روشن کنید همچنین می توانید خط زیر را به /etc/sysctl.conf:ociation19459018 موفق19659006†kernel.exec-shield = 1 [روشن کنید] 19659078] ب. بررسی / فعال کردن ASLR
رتبه بندی فضای آدرس یک ویژگی امنیتی است که سرریزهای بافر را دشوار می کند.
# Sysctl -q -n -w kernel.randomize_va_space = 2اگر موجود نیست خط زیر را به /etc/sysctl.conf اضافه کنید:
kernel.randomize_va_space = 2پاداش: استفاده راه حل آماده
در حالت ایده آل ، شما می توانید سرور اختصاصی خود را خریداری کنید و برنامه های خود را روی آن مستقر کنید.
سرور از قبل آماده و به اندازه کافی ایمن خواهد بود.
نظارت بر روی VPS توسط حالت آن انجام خواهد شد.
بله ، این به پول احتیاج دارد (می توانید قیمت ها را در وب سایت https://www.hostzealot.ru/vps بررسی کنید) ، اما شما سرور خود را خواهید داشت که می توانید کارهای دیگری را انجام دهید چی، بدون تاثیر منابع است.
چرا من خاص HostZealot.ru؟
آنها ارائه قیمت های خوب و سرور به طور گسترده ای به لحاظ جغرافیایی توزیع شده است.

