مراحل امنیت VPS ما

این آموزش نحوه تهیه و ایمن سازی سرور خصوصی مجازی (VPS) با دبیان GNU / Linux را نشان می دهد. قبل از شروع ، چند مورد فرض می شود:

  1. شما با GNU / Linux سطح آشنایی متوسطی دارید.
  2. VPS برای استفاده شخصی وجود دارد که از طریق SSH به آن دسترسی داریم.
  3. VPS دارای اختصاصی داخلی ipv4 250.250.250.155 است و ارائه دهنده ما بلوک 250.250.0.0/16 را دارد. (1)
  4. در VPS ما فقط سرویس های http ، https و ssh را برای دسترسی از خارج فعال خواهیم کرد.
  5. DNS خارجی فعال نخواهد شد زیرا این کار معمولاً در پنل ارائه دهنده ما انجام می شود. (2)
  6. این به عنوان یک کاربر فوق العاده کار خواهد کرد.

نصب

به عنوان اولین قدم ، بیایید سرور را به روز کنیم و برخی از بسته های مورد نیاز را نصب کنیم:

# به روزرسانی استعداد و بروزرسانی ایمن استعداد

پیکر بندی

اکنون ما قصد داریم یک کاربر کار ایجاد کنیم. کار به عنوان root بر روی یک سرور ناامن است ، بنابراین ما ابتدا یک کاربر خاص ایجاد خواهیم کرد:

اپراتور adduser usermod -aG اپراتور sudo

دستور اول کاربر اپراتور را ایجاد می کند ، دستور دوم آن را به گروه اضافه می کند کد: sudo، که به شما امکان می دهد برنامه ها را به عنوان root اجرا کنید.

مجوزها را برای کاربران فوق العاده تنظیم کنید

برای کار منظم ما از کاربر استفاده خواهیم کرد اپراتور قبلاً ایجاد شده است ، ما باید گزینه های اجرای دستور را به عنوان superuser تنظیم کنیم ، برای این کار دستور زیر را اجرا می کنیم:

ویسودو

این دستور در اصل امکان اصلاح پرونده را فراهم می کند / etc / sudoers؛ که در آن باید این خطوط را داشته باشیم:

پیش فرض ها env_reset ، timestamp_timeout = 0٪ sudo ALL = (ALL: ALL) ALL

در خط اول گزینه به مقادیر پیش فرض اضافه می شود timestamp_timeout که اجازه می دهد زمان انقضا (در دقیقه) رمز عبور هنگام اجرای دستور sudo تنظیم شود. پیش فرض 5 است ، اما این به دو دلیل گاهی اوقات ناامن است:

  1. اگر سهواً قبل از انقضا exp رمز ورود ، رایانه خود را وارد سیستم کنیم ، کسی می تواند بدون محدودیت یک دستور را به عنوان root اجرا کند.
  2. اگر از طریق ناآگاهی ، ما یک برنامه یا اسکریپت را که حاوی کد مخربی است قبل از انقضا رمز عبور اجرا کنیم ، این برنامه بدون رضایت صریح ما می تواند به عنوان کاربر فوق العاده به سیستم ما دسترسی داشته باشد.

بنابراین برای جلوگیری از خطرات ، مقدار آن را صفر قرار داده ایم ، یعنی هر بار که دستور sudo اجرا می شود ، رمز ورود باید وارد شود. اگر مقدار منفی -1 تنظیم شود ، نتیجه این است که گذرواژه هرگز منقضی نمی شود ، که نتیجه معکوس آنچه می خواهیم را به وجود می آورد.

در خط دوم مشخص شده است که گروه sudo می تواند هر دستوری را روی هر رایانه ای اجرا کند ، که معمول است ، اگرچه قابل تنظیم است. (3) کسانی هستند که برای راحتی کار خط را به صورت زیر قرار می دهند تا از تایپ رمز عبور جلوگیری کنند:

٪ sudo ALL = (ALL: ALL) NOPASSWD: ALL

با این حال ، همانطور که قبلا توضیح دادیم ، این خطرناک است و بنابراین توصیه نمی شود.

راه اندازی مجدد را غیرفعال کنید

به دلایل امنیتی ، ما همچنین راه اندازی مجدد را با استفاده از ترکیب کلید غیرفعال خواهیم کرد Ctrl + Alt + Del، که باید این خط را در پرونده اضافه کنیم / etc / inittab:

ca: 12345: ctrlaltdel: / bin / echo "Ctrl + Alt + Del غیرفعال شده است."

OpenSSH را با DropBear جایگزین کنید

اکثر VPS ها با OpenSSH نصب شده اند ، که مطمئناً بسیار مفید است ، اما مگر اینکه ما نیاز به بهره برداری از تمام قابلیت های OpenSSH داشته باشیم ، گزینه های سبک تری برای VPS وجود دارد ، مانند قطره قطره، که معمولاً برای استفاده منظم کافی است. با این حال ، یک اشکال از این برنامه این است که با یک سرور SFTP یکپارچه همراه نیست ، و به همین دلیل ما در ابتدا بسته را نصب کردیم gesftpserver.

برای پیکربندی Dropbear ، ما پرونده را اصلاح خواهیم کرد / etc / default / dropbear به طوری که شامل این دو خط باشد:

NO_START = 0 DROPBEAR_EXTRA_ARGS = "- w -p 127.0.0.1:22 -I 1200 -m"

خط اول به سادگی سرویس را فعال می کند و خط دوم چندین کار را انجام می دهد:

  1. از دسترسی ریشه خودداری کنید.
  2. این سرویس باعث می شود که سرویس از پورت 22 رابط محلی گوش فرا دهد (بعداً دلیل آن را توضیح خواهیم داد).
  3. زمان انتظار را تنظیم می کند (20 دقیقه).

SSLH

پورت 22 (SSH) کاملاً شناخته شده است و به طور کلی یکی از اولین مواردی است که هکرها سعی در نقض آن دارند ، بنابراین ما به جای آن از پورت 443 (SSL) استفاده خواهیم کرد. این اتفاق می افتد که این پورت برای مرور امن از طریق HTTPS استفاده می شود.

برای این منظور ما از بسته sslh استفاده خواهیم کرد ، که چیزی بیش از یک مالتی پلکسر نیست که بسته های وارد شده به پورت 443 را تجزیه و تحلیل می کند و بسته به نوع ترافیک SSH یا SSL آنها را به داخل سرویس یا سرویس دیگری هدایت می کند.

SSLH نمی تواند روی رابطی که سرویس دیگری قبلاً در حال گوش دادن است ، گوش دهد ، به همین دلیل ما قبلاً Dropbear را از طریق رابط محلی گوش می دادیم.

اکنون کاری که باید انجام دهیم این است که sslh رابط و پورتی را که باید از طریق آن گوش دهد و اینکه کجا بسته ها را بسته به نوع سرویس هدایت می کند ، نشان دهیم ، و برای این کار پرونده پیکربندی را تغییر می دهیم. / etc / default / sslh:

DAEMON = / usr / sbin / sslh DAEMON_OPTS = "- کاربر sslh - مشاهده 250.250.250.155:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile / var / run / sslh / sslh .pid "RUN = بله

سرانجام ، سرویس ها را مجدداً راه اندازی می کنیم:

service ssh stop && service dropbear start && service sslh راه اندازی مجدد

بعد از دستور قبلی ، جلسه امن ما قطعاً قطع می شود ، در این صورت کافی است دوباره وارد سیستم شوید ، اما این بار با کاربر کار و استفاده از پورت 443 کافی است. اگر جلسه قطع نشود ، توصیه می شود آن را ببندید و دوباره با مقادیر مناسب شروع کنید.

اگر همه چیز درست کار کند ، می توانیم به عنوان root کار کنیم و در صورت تمایل OpenSSH را حذف نصب کنیم:

sudo su - aptitude -r purge openssh-server

فایروال

کار بعدی که ما انجام خواهیم داد جدا کردن سیاهههای مربوط از فایروال به پرونده جداگانه است /var/log/firewall.log برای تسهیل تجزیه و تحلیل بیشتر ، به همین دلیل ما در هنگام راه اندازی بسته ulogd را نصب کردیم. بدین منظور ما پرونده را ویرایش خواهیم کرد /etc/logd.conf برای تنظیم بخش مربوطه:

[LOGEMU] فایل = "/ var / log / firewall.log" همگام سازی = 1

بعد ، پرونده چرخش رکورد را اصلاح خواهیم کرد / etc / logrotate / ulogd برای چرخش روزانه (همراه با تاریخ) و ذخیره نرم افزارهای فشرده در فهرست / var / log / ulog /:

/var/log/ulog/*.log /var/log/firewall.log {روزانه تاریخ از دست رفته .gz / var / log / ulog / endcript}

سپس با اجرای موارد زیر قوانین netfilter را ایجاد خواهیم کرد:

IPT = $ (کدام iptables) IPEXT = 250.250.250.155 IPEXTBLK = 250.250.0.0 / 16 IPBCAST = 255.255.255.255 $ IPT -F $ IPT -X $ IPT -Z $ IPT -A INPUT -i lo -j ACCEPT $ IPT - P INPUT DROP $ IPT -P FORWARD DROP $ IPT -P OUTPUT ACCEPT $ IPT -A INPUT -m state --state INVALID -j ULOG --ulog-prefix IN_INVALID $ IPT -A INPUT -p igmp -j ULOG --ulog -پیشوند IN_IGMP $ IPT -A INPUT -m pkttype - پخش نوع pkt -j ULOG --ulog-پیشوند IN_BCAST $ IPT -A INPUT -m pkttype - نوع pkt چندپخشی -j ULOG - پیشوند پیشوند IN_MCAST $ IPT -A FORWARD -j ULOG --ulog-prefix FORWARD $ IPT -N ICMP_IN $ IPT -A INPUT!  -i lo -p icmp -j ICMP_IN $ IPT -A ICMP_IN -p icmp -f -j ULOG --ulog-پیشوند IN_ICMP_FRAGMENTED $ IPT -A ICMP_IN -p icmp -m icmp -m طول!  --length 28: 1322 -j ULOG --ulog-prefix IN_ICMP_INVALIDSIZE $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-above 4 / sec - hashlimit-mode srcip --hashlimit-srcmask 24 - -hashlimit-name icmpflood -j ULOG --ulog-prefix IN_ICMP_FLOOD $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-upto 64kb / min --hashlimit-mode srcip --hashlimit-srcmask 24 - hashlimit-name icmpattack -j ULOG --ulog-prefix IN_ICMP_FLOOD $ IPT -A ICMP_IN -p icmp -m icmp -m u32!  --u32 "0x4 & 0x3fff = 0x0" -j ULOG - پیشوند ulog-IN_ICMP_ATTACK $ IPT -A ICMP_IN -p icmp -m icmp!  - eic-type echo-request -m state --state NEW -j ULOG --ulog-prefix IN_ICMP_INVALID $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type echo-request -j ULOG --ulog- پیشوند IN_ICMP $ IPT -A ICMP_IN -p icmp -m icmp - نوع cmp-echo-درخواست -m حد - محدودیت 1 / ثانیه --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp - ازطریق echo-reply -icmp -m limit - حد 2 / sec --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type destination-unreachable -m limit - حد 2 / ثانیه - محدودیت پشت سر هم 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp - نوع نوع بیش از حد مجاز -m - محدودیت 2 / ثانیه - محدودیت-انفجار 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp - پارامتر نوع type-problem -m محدودیت -mimit - محدودیت 2 / ثانیه - limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -j RETURN $ IPT -N UDP_IN $ IPT -A ورودی!  -i lo -p udp -j UDP_IN $ IPT -A UDP_IN!  !  -p udp -f -j ULOG - پیشوند Uulog IN_UDP_FRAGMENTED $ IPT -A UDP_IN -p udp -m udp --sport 53 -m length!  - طول 28: 576 -j ULOG - پیشوندulog-IN_UDP_DNS_INVALIDSIZE $ IPT -A UDP_IN -p udp -m udp --dport 53 -m -state - state NEW -j ULOG --ulog-prefix IN_UDP_DNSREQUEST $ IPT - UDP_IN -p udp -m udp --dport 53 -m -state - state NEW -j REJECT - رد-با icmp-port-غیرقابل دسترسی $ IPT -A UDP_IN -p udp -m udp!  --Sport 53!  -s $ IPEXTBLK!  -d $ IPBCAST -m state - دولت NEW -j ULOG --ulog-prefix IN_UDP $ IPT -A UDP_IN -p udp -m udp -m state --state ESTABLISHED، RELATED -j ACCEPT $ IPT -A UDP_IN -j RETURN $ IPT -N TCP_IN $ IPT -A INPUT!  -i lo -p tcp -j TCP_IN $ IPT -A TCP_IN!  !  -p tcp -f -j ULOG --ulog-prefix IN_TCP_FRAGMENTED $ IPT -A TCP_IN -p tcp -m tcp --sport 53 -m state - ایالت تأسیس ، مرتبط -m طول!  - طول 513: 1500 -j ULOG - پیشوندulog-IN_TCP_DNS_INVALIDSIZE $ IPT -A TCP_IN -p tcp -m tcp --dport 53 -m state - state NEW -j ULOG --ulog-prefix IN_TCP_DNS $ IPT -A TCP_IN -p tcp -m tcp - dport 53 -m state - دولت NEW -j REJECT - رد-با icmp-port-غیرقابل دسترسی $ IPT -A TCP_IN -p tcp -m tcp -m multiport!  --dports 80,443،80,443 -m state --state NEW -j ULOG --ulog-prefix IN_TCP $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dports 4،16 -m state - state NEW -m hashlimit - hashlimit -با حداکثر 80,443 ثانیه - hashlimit-burst XNUMX - hashlimit-mode srcip --hashlimit-name navreq -j ACCEPT $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dports XNUMX،XNUMX -m state - ایالت تأسیس شده -m connlimit!  --connlimit-above 16 -j ACCEPT $ IPT -A TCP_IN -p tcp -m tcp -m multiport! 

با پیکربندی قبلی ، VPS ما باید به طور منطقی ایمن باشد ، اما اگر بخواهیم می توانیم کمی بیشتر آن را ایمن کنیم ، برای این کار می توانیم از برخی قوانین پیشرفته تر استفاده کنیم.

همه VPS اجازه نصب ماژول های اضافی برای فیلتر فیلتر را نمی دهد ، اما یک مورد بسیار مفید است PSD، که به شما امکان می دهد از اسکن درگاه جلوگیری کنید. متاسفانه ، این ماژول به طور پیش فرض در فیلتر فیلتر نیست ، بنابراین لازم است بسته های خاصی را نصب کنید و سپس ماژول را بسازید:

استعداد -RvW نصب iptables-dev xtables-addons-source ماژول-دستیار ماژول-دستیار - verbose - حالت متن متن نصب خودکار xtables-addons-source

پس از انجام موارد فوق ، می توانیم یک قانون مانند این را اضافه کنیم:

iptables -A INPUT -m psd - psd-weight-threshold 15 - psd-delay-threshold 2000 --psd-lo-port-weight 3 --psd-hi-ports-weight 1 -j ULOG --ulog- پیشوند IN_PORTSCAN

قاعده قبلی اساساً بدین معنی است که ما یک شمارنده ایجاد خواهیم کرد که هر بار تلاش برای دسترسی به پورت کمتر از 3 و 1024 بار هربار تلاش برای دسترسی به پورت بالاتر از 1 ، 1023 برابر می شود و این شمارنده در مدت زمان کمتر از 15 ثانیه به 20 می رسد ، بسته ها توسط ثبت می شوند اولوگ به عنوان تلاشی در portscan. بسته ها هنوز می توانند به یک باره دور انداخته شوند ، اما در این حالت قصد استفاده از آنها را داریم fail2ban، که بعداً پیکربندی خواهیم کرد.

پس از ایجاد قوانین ، ما باید اقدامات احتیاطی خاصی را برای پایدار نگه داشتن آنها انجام دهیم ، در غیر این صورت هنگام راه اندازی مجدد سرور ، آنها را از دست خواهیم داد. روش های مختلفی برای تحقق این امر وجود دارد. در این آموزش ما از بسته iptables-persistent که در ابتدا نصب کردیم ، استفاده می کنیم که قوانین را در آن ذخیره می کند /etc/iptables/rules.v4 y /etc/iptables/rules.v6 برای ipv6.

iptables-save> /etc/iptables/rules.v4

در حقیقت ، اگرچه استفاده از ipv6 در کوبا هنوز گسترده نیست ، ما می توانیم برخی از قوانین اساسی را ایجاد کنیم:

IPT = $ (کدام ip6 جدول) $ IPT -P INPUT DROP $ IPT -P FORWARD DROP $ IPT -P OUTPUT ACCEPT $ IPT -A INPUT -i lo -j ACCEPT $ IPT -A INPUT! -i lo -m state - state ESTABLISHED، RELATED -j ACCEPT unset IPT

این قوانین همچنین می توانند پایدار باشند:

ip6tables-save> /etc/iptables/rules.v6

سرانجام ، برای امنیت بیشتر ، رجیستری فایروال را تمیز کرده و سرویس ها را مجدداً راه اندازی می کنیم:

echo -n> /var/log/firewall.log سرویس logrotate restart service ulogd restart service iptables-persistent restart

Nginx

ما از Nginx به عنوان یک وب سرور استفاده خواهیم کرد ، زیرا VPS ها در مقایسه با یک سرور واقعی مقدار RAM کمتری دارند ، بنابراین به طور کلی داشتن چیزی سبک تر از Apache راحت است.

قبل از پیکربندی Nginx ، ما یک گواهی (بدون رمز عبور) برای استفاده از HTTPS ایجاد خواهیم کرد:

cd / etc / nginx openssl genrsa -des3 -out cert.key 4096 cp -v cert.key cert.key.original openssl req-جدید-کلید cert.key -out cert.csr openssl rsa -in cert.key.original - out cert.key openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt

پس از انجام این کار ، ما یک پرونده رمز عبور برای کاربر "elusuario" ایجاد خواهیم کرد:

htpasswd -c .htpasswd کاربر

بعد ، ما پرونده را اصلاح خواهیم کرد / etc / nginx / sites-available / default برای تنظیم تنظیمات برگزیده سایت. این می تواند به این شکل باشد:

سرور {server_name localhost؛ index index.html index.htm default.html default.htm؛ root / var / www؛ اگر URI پیدا نشد ، ترتیب تأیید صحت و بارگذاری صفحه را تنظیم کنید ، try_files $ uri $ uri / /index.html را بارگیری کنید. }} سرور {listen 127.0.0.1:443؛ server_name localhost؛ index index.html index.htm default.html default.htm؛ root / var / www؛ ssl روشن ssl_certificate cert.crt؛ ssl_certificate_key cert.key؛ ssl_session_timeout 5m؛ # HTTPS را فقط از طریق TLS (ایمن تر از SSL) فعال کنید ssl_protocols TLSv1 TLSv1.1 TLSv1.2؛ # اولویت دادن به رمزهای بالا [HIGH] ، # انتقال رمزهای متوسط ​​[MEDIUM] به انتهای لیست ، # رمزهای کم [LOW] رمز غیرفعال (40 و 56 بیت) # رمزهای غیرفعال با الگوریتم های صادرات [ EXP] # رمزهای صفر را غیرفعال کنید [eNULL] ، بدون احراز هویت [aNULL] ، SSL (نسخه های 2 و 3) و DSS (فقط کلیدهای تا 1024 بیت را مجاز می دانید) ssl_ciphers HIGH: + MEDIUM:! LOW:! EXP:! aNULL :! eNULL :! SSLv3:! SSLv2:! DSS؛ # روش های رمزگذاری سرور را ترجیح دهید (به طور پیش فرض از مشتری استفاده می شود) ssl_prefer_server_ciphers در؛ مکان / {# فعال کردن احراز هویت auth_basic "ورود"؛ auth_basic_user_file /etc/nginx/.htpasswd؛ # دستور تأیید و کد صفحه را بارگذاری کنید ، اگر URI try_files $ uri $ uri / = 404 پیدا نشد ، بارگیری شود. # ایجاد یک فهرست برای کاربران معتبر خودکار در روشن شدن ؛ autoindex_exact_size خاموش autoindex_localtime در؛ }}

ما بررسی می کنیم که پیکربندی درست است:

nginx -t

سرانجام ، سرویس را مجدداً راه اندازی می کنیم:

خدمات nginx راه اندازی مجدد

Fail2Ban

قبل از شروع تنظیمات Fail2Ban ، برای امنیت بیشتر سرویس را متوقف کرده و رجیستری را تمیز می کنیم:

fail2ban-client stop echo -n> /var/log/fail2ban.log

بعد ، پرونده پیکربندی را ایجاد می کنیم /etc/fail2ban/jail.local با محتوای سفارشی زیر:

# پرونده پیکربندی سفارشی /etc/fail2ban/jail.local # [DEFAULT] findtime = 43200؛ مدت زمان 12 ساعت = 86400 حداکثر 1 روز = 3؛ ممنوعیت پس از تلاش چهارم اعمال می شود [ssh] enabled = false [nginx-auth] enabled = true filter = nginx-auth action = iptables-multiport [name = NoAuthFailures، port = "http، https"] logpath = / var / log / nginx * / * خطا * .log [nginx-badbots] فعال = فیلتر واقعی = apache-badbots action = iptables-multiport [name = BadBots، port = "http، https"] logpath = / var / log / nginx * /*access*.log bantime = 4؛ حداکثر 604800 هفته = 1 [nginx-login] فعال = فیلتر صحیح = nginx-login action = iptables-multiport [name = NoLoginFailures، port = "http، https"] logpath = / var / log / nginx * / * دسترسی *. ورود به سیستم = 0؛ 1800 دقیقه [nginx-noscript] فعال = عمل واقعی = iptables-multiport [name = NoScript، port = "http، https"] filter = nginx-noscript logpath = /var/log/nginx*/*access*.log maxretry = 30 [nginx-proxy] enabled = true action = iptables-multiport [name = NoProxy، port = "http، https"] filter = nginx-proxy logpath = /var/log/nginx*/*access*.log bantime = 0 ؛ حداکثر 604800 هفته = 1 [فایروال] فعال = عمل واقعی = iptables-multiport [نام = فایروال] فیلتر = فایروال logpath = /var/log/firewall.log حداکثر = 0

پس از انجام این کار ، ما در پوشه ایجاد می کنیم /etc/fail2ban/filters.d/ پرونده های زیر:

# /etc/fail2ban/filter.d/nginx-auth.conf # فیلتر Auth # IP هایی را مسدود می کند که با استفاده از احراز هویت اساسی تأیید اعتبار نمی شوند # [تعریف] failregex = هیچ کاربر / رمز عبوری برای احراز هویت اساسی ارائه نشده است. * مشتری: کاربر. * در. یافت نشد. مشتری: کاربر. * عدم تطابق رمز عبور. * مشتری: نادیده گرفتن =
# /etc/fail2ban/filter.d/nginx-login.conf # فیلتر ورود # مسدود کردن IP هایی که با استفاده از صفحه ورود به سیستم برنامه وب تأیید نمی شوند # ورود دسترسی اسکن برای HTTP 200 + POST / جلسات => ورود ناموفق # [تعریف ] failregex = ^ -. * POST / جلسات HTTP / 1 \ .. "200 ignoreregex =
# /etc/fail2ban/filter.d/nginx-noscript.conf # فیلتر Noscript # مسدود کردن IP ها که سعی در اجرای اسکریپت هایی مانند .php ، .pl ، .exe و سایر اسکریپت های خنده دار دارند. # مسابقات به عنوان مثال # 192.168.1.1 - - "GET /something.php # [تعریف] failregex = ^ -. * GET. * (\. Php | \ .asp | \ .exe | \ .pl | \ .cgi | \ scgi) ignoreregex =
# /etc/fail2ban/filter.d/proxy.conf # فیلتر پروکسی # مسدود کردن IP هایی که سعی می کنند از سرور به عنوان پروکسی استفاده کنند. # مسابقات به عنوان مثال # 192.168.1.1 - - "GET http://www.something.com/ # [تعریف] failregex = ^ -. * GET http. * Ignoreregex =
# /etc/fail2ban/filter.d/firewall.conf # فیلتر فایروال # [تعریف] failregex = ^. * IN_ (INVALID | PORTSCAN | UDP | TCP |). * SRC = . * $ ignoreregex =

در آخر ، سرویس را شروع کرده و پیکربندی را بارگذاری می کنیم:

fail2ban-service -b fail2ban-client بارگیری مجدد

تایید

به عنوان آخرین مرحله ، می توانیم رکوردها را با دم -ف o چند دم - همه را دنبال کنید. در حقیقت ، برنامه اخیر این مزیت را دارد که اجازه می دهد چندین فایل به طور هم زمان مشاهده شوند و برجسته سازی نحوی اساسی را فراهم می کند.

در صورت پیکربندی نشدن یک حساب ایمیل در VPS ، توصیه می شود پیام هشدار ظاهر شده هنگام شروع چند دم را غیرفعال کنید ، دستور زیر را برای آن اجرا می کنیم:

echo "check_mail: 0"> ~ / .multitailrc

در واقع ، ما می توانیم یک نام مستعار (4) ایجاد کنیم تا سیاهههای مربوطه را با یک دستور کوتاه ، به عنوان مثال ، "شلاق" سریع مشاهده کنیم:

alias flog = 'multitail --follow-all /var/log/firewall.log /var/log/fail2ban.log'

1) اینها ارزشهای ساختگی است.
2) هنگامی که کارکرد آن را فهمیدید ، فعال کردن سایر خدمات آسان است.
3) برای جزئیات بیشتر ، sudoers را اجرا کنید.
4) به صورت اختیاری می تواند به پرونده ~ / .bash_aliases اضافه شود


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

6 نظر ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد.

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   MSX dijo

    چیزهای جالبی وجود دارد ، 1+

  2.   یوکیترو dijo

    Hugo این خط در پیکربندی:

    ssl_protocols SSLv3 TLSv1؛

    من SSLv3 را از آن حذف می کنم زیرا این پروتکل دیگر ایمن نیست ، حتی در دبیان جسی ، بسیاری از سرویس ها پیکربندی شده اند تا به همین دلیل از استفاده از آن پروتکل جلوگیری کنند.

    اطلاعات در مورد موضوع در اینجا:

    https://www.linode.com/docs/security/security-patches/disabling-sslv3-for-poodle
    http://disablessl3.com/

    1.    هوگو dijo

      هدف واقعاً ارائه خدمات اصلی از طریق HTTPS نبود ، بلکه توضیح نحوه استفاده از پورت 443 برای SSH بدون از دست دادن امکان استفاده از آن برای HTTPS در صورت لزوم بود ، اما با تشکر برای هشدار.

      به هر حال من مقاله را به روز كردم تا كمي پيكربندي nginx را تغيير دهم و اتفاقاً نظراتي را نيز در بر داشته باشم تا كمي بيشتر با اين مكانيزم رمزگذاري شفاف شود و برخي از خطاهاي اصلي را برطرف كنم.

  3.   دانیل PZ dijo

    از این آموزش عالی بسیار متشکرم ، اکنون آن را عملی خواهم کرد! : D ، این کار را از لینوکس ادامه دهید ، شما همیشه مرا شگفت زده می کنید ، سلام از پرو.

  4.   ekuandekuera dijo

    از شما بسیار سپاسگزارم برای به اشتراک گذاری.

  5.   فرناندو dijo

    راهنمای بسیار خوبی است و این از مرواریدها می آید که من در این وبلاگ شروع به کار کردم ، اما حتی بیشتر از این که می خواهم اولین vps خود را نصب کنم و هنوز هم با مشکلات زیادی روبرو هستم ، اما این مقاله مرا از شک و تردید ، تشکر و سلام فرا گرفته است

bool (درست)