LINUX.ORG.RU
ФорумAdmin

Помогите разобраться с fail2ban

 , ,


0

2

В общем сервер стал в течении нескольких часов уходить в ступор.

Делаешь

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

Оживает, нагрузка на проц в момент ступора минимальная

В общем что может быть не так?

Кроме того сервер управляется хостинг панелью vectacp

Конкретные проблемы которые возникают:

* не удается подключиться по ssh, или на это уходит много времени (2-3 минуты)

* не открываются сайты, или на это уходит неприлично много времени


Ответ на: комментарий от Bers666

Я думаю в течении суток что то подобное вылезет, ждем

Shulman
() автор топика

Диагностика отличная, совершенно очевидно что виноват именно fail2ban. Сними список процессов в момент ступора, и сислог покажи.

slowpony ★★★★★
()
Ответ на: комментарий от slowpony

Приведу, обязательно. Пока ждем воспроизведения проблемы

Shulman
() автор топика

Им еще кто-то пользуентся? Это жирное питоноподели жрет памяти больше чем nohang!

anonymous
()
Ответ на: комментарий от slowpony
top - 12:28:00 up 1 day,  3:01,  2 users,  load average: 1,21, 1,44, 1,47
Tasks: 243 total,   1 running, 173 sleeping,   0 stopped,   0 zombie
%Cpu(s):  7,2 us,  3,0 sy,  0,0 ni, 84,7 id,  5,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  9977884 total,   264436 free,  2305140 used,  7408308 buff/cache
KiB Swap:  5117948 total,  5106416 free,    11532 used.  7218740 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
63517 www-data  20   0  508516  89252  66476 S  17,9  0,9   0:10.93 apache2
63516 www-data  20   0  500520  88468  69640 S  13,6  0,9   0:06.40 apache2
63518 portal    20   0  579412  92708  68744 S   9,6  0,9   0:09.08 apache2
53310 mysql     20   0 6968036 882860  21664 S   8,0  8,8  30:17.23 mysqld
63362 www-data  20   0   58136  10424   4872 S   1,7  0,1   0:02.16 nginx
63514 Uryumts+  20   0  583560  98156  74148 S   0,7  1,0   0:10.58 apache2
    8 root      20   0       0      0      0 I   0,3  0,0   2:03.15 rcu_sched
41710 root      20   0  441756  55872  31828 S   0,3  0,6   0:01.76 Xorg
41888 lightdm   20   0  459116  13532  11812 S   0,3  0,1   0:00.13 indicator-datet
59526 nommaner  20   0   94928   3452   2516 S   0,3  0,0   0:00.31 sshd
60191 root      20   0   43152   4044   3248 R   0,3  0,0   0:04.64 top
63356 www-data  20   0   58136   9916   4872 S   0,3  0,1   0:00.49 nginx
63358 www-data  20   0   58136   9912   4872 S   0,3  0,1   0:00.66 nginx
    1 root      20   0  119784   5540   3620 S   0,0  0,1   0:37.48 systemd
    2 root      20   0       0      0      0 S   0,0  0,0   0:00.05 kthreadd
    4 root       0 -20       0      0      0 I   0,0  0,0   0:00.00 kworker/0:0H
    6 root       0 -20       0      0      0 I   0,0  0,0   0:00.00 mm_percpu_wq
    7 root      20   0       0      0      0 S   0,0  0,0   0:01.51 ksoftirqd/0
    9 root      20   0       0      0      0 I   0,0  0,0   0:00.00 rcu_bh
   10 root      rt   0       0      0      0 S   0,0  0,0   0:00.08 migration/0
   11 root      rt   0       0      0      0 S   0,0  0,0   0:00.28 watchdog/0
   12 root      20   0       0      0      0 S   0,0  0,0   0:00.00 cpuhp/0
   13 root      20   0       0      0      0 S   0,0  0,0   0:00.00 cpuhp/1
   14 root      rt   0       0      0      0 S   0,0  0,0   0:00.27 watchdog/1
   15 root      rt   0       0      0      0 S   0,0  0,0   0:00.10 migration/1
   16 root      20   0       0      0      0 S   0,0  0,0   0:00.78 ksoftirqd/1
   18 root       0 -20       0      0      0 I   0,0  0,0   0:00.00 kworker/1:0H
   19 root      20   0       0      0      0 S   0,0  0,0   0:00.00 cpuhp/2
   20 root      rt   0       0      0      0 S   0,0  0,0   0:00.27 watchdog/2
   21 root      rt   0       0      0      0 S   0,0  0,0   0:00.10 migration/2
   22 root      20   0       0      0      0 S   0,0  0,0   0:02.57 ksoftirqd/2
   24 root       0 -20       0      0      0 I   0,0  0,0   0:00.00 kworker/2:0H
   25 root      20   0       0      0      0 S   0,0  0,0   0:00.00 cpuhp/3
   26 root      rt   0       0      0      0 S   0,0  0,0   0:00.26 watchdog/3
   27 root      rt   0       0      0      0 S   0,0  0,0   0:00.09 migration/3
   28 root      20   0       0      0      0 S   0,0  0,0   0:00.62 ksoftirqd/3
   30 root       0 -20       0      0      0 I   0,0  0,0   0:00.00 kworker/3:0H
   31 root      20   0       0      0      0 S   0,0  0,0   0:00.00 cpuhp/4
   32 root      rt   0       0      0      0 S   0,0  0,0   0:00.26 watchdog/4
   33 root      rt   0       0      0      0 S   0,0  0,0   0:00.11 migration/4
   34 root      20   0       0      0      0 S   0,0  0,0   0:01.26 ksoftirqd/4
   36 root       0 -20       0      0      0 I   0,0  0,0   0:00.00 kworker/4:0H
   37 root      20   0       0      0      0 S   0,0  0,0   0:00.00 cpuhp/5
   38 root      rt   0       0      0      0 S   0,0  0,0   0:01.86 watchdog/5
   39 root      rt   0       0      0      0 S   0,0  0,0   0:00.10 migration/5

Сервер пока не упал, но вызывает вопрос по остатку физической памяти. Что такое buff/cache?

top - 12:32:02 up 1 day,  3:05,  2 users,  load average: 1,96, 1,63, 1,53
Tasks: 247 total,   3 running, 175 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2,7 us,  1,7 sy,  0,0 ni, 92,7 id,  2,9 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  9977884 total,   236336 free,  2304660 used,  7436888 buff/cache
KiB Swap:  5117948 total,  5106416 free,    11532 used.  7218864 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
53310 mysql     20   0 6968036 882964  21664 S   6,0  8,8  30:44.60 mysqld
  834 clamav    20   0 1055488 808356   7224 S   0,0  8,1   2:24.44 clamd
64430 portal    20   0  517312 104956  73524 R  18,5  1,1   0:11.27 apache2
64428 obr86     20   0  508380  92688  65916 R   4,6  0,9   0:11.80 apache2
64436 www-data  20   0  505528  87772  67944 S   0,0  0,9   0:04.15 apache2
64441 www-data  20   0  504168  87492  69144 S   4,3  0,9   0:04.96 apache2
64431 www-data  20   0  502304  87424  71024 S   0,0  0,9   0:06.96 apache2
64427 www-data  20   0  580420  87164  66232 S   0,0  0,9   0:08.76 apache2
64522 www-data  20   0  520484  86848  52092 S   0,0  0,9   0:01.72 apache2
  992 root      20   0  170852  81624   5088 S   0,0  0,8   0:22.98 spamd
64432 www-data  20   0  579164  81256  61488 S   0,0  0,8   0:05.75 apache2
64429 Uryumts+  20   0  572828  79176  61848 S   0,0  0,8   0:06.54 apache2
 1070 root      20   0  170852  78032   1492 S   0,0  0,8   0:01.19 spamd child
 1069 root      20   0  170852  78028   1492 S   0,0  0,8   0:03.84 spamd child
41828 lightdm   20   0 1021796  64284  51776 S   0,0  0,6   0:01.83 unity-greeter
 1832 root      20   0 1068532  61444   5976 S   0,0  0,6  51:12.31 fail2ban-server
41710 root      20   0  441756  55872  31828 S   0,0  0,6   0:01.76 Xorg
 1823 root      20   0  493492  47404  35460 S   0,0  0,5   1:19.56 apache2
39112 root      20   0  509184  34540   8464 S   0,0  0,3   0:01.94 fwupd
41875 lightdm   20   0  587028  33504  28092 S   0,0  0,3   0:00.31 nm-applet
  967 bind      20   0  728668  32988   6216 S   0,0  0,3   0:01.83 named
41889 lightdm   20   0  565288  30108  23332 S   0,0  0,3   0:01.34 indicator-keybo
41877 lightdm   20   0  620160  24916  20444 S   0,0  0,2   0:00.30 unity-settings-
  958 root      20   0  175824  16424   8352 S   0,0  0,2   0:00.19 unattended-upgr
41888 lightdm   20   0  459116  13532  11812 S   0,0  0,1   0:00.13 indicator-datet
58371 admin     20   0  168776  12896   7612 S   0,0  0,1   0:00.13 vesta-php
44120 admin     20   0  168772  12764   7484 S   0,0  0,1   0:00.17 vesta-php
41905 lightdm   20   0  403148  12732  11260 S   0,0  0,1   0:00.03 indicator-appli
58254 admin     20   0  168512  12500   7624 S   0,0  0,1   0:00.18 vesta-php
  789 root      20   0  450444  11796   9176 S   0,0  0,1   0:06.48 NetworkManager
  297 root      20   0   43996  11352   8784 S   0,0  0,1   0:18.10 systemd-journal
41890 lightdm   20   0  738316  10616   9028 S   0,0  0,1   0:00.18 indicator-sound
 1225 whoopsie  20   0  373992  10420   8828 S   0,0  0,1   0:00.07 whoopsie
  722 clamav    20   0  134312  10196   6688 S   0,0  0,1   0:08.18 freshclam
64274 www-data  20   0   58136  10176   4876 S   0,0  0,1   0:00.85 nginx
64269 www-data  20   0   58136   9976   4924 S   0,0  0,1   0:00.32 nginx
64272 www-data  20   0   58136   9932   4876 S   0,0  0,1   0:00.45 nginx
64268 www-data  20   0   58136   9912   4872 S   0,0  0,1   0:00.26 nginx
64271 www-data  20   0   58136   9912   4876 S   0,0  0,1   0:00.45 nginx
62308 root      20   0  274816   9544   8324 S   0,0  0,1   0:00.04 cups-browsed
64426 www-data  20   0  167480   9380   1644 S   0,0  0,1   0:00.00 apache2
 1390 colord    20   0  302316   9216   6632 S   0,0  0,1   0:00.16 colord
64270 www-data  20   0   58136   9204   4308 S   0,7  0,1   0:00.26 nginx
64267 www-data  20   0   58136   9144   4248 S   0,0  0,1   0:00.28 nginx
 1283 root      20   0  167896   8904   4808 S   0,0  0,1   0:03.11 vesta-php

Shulman
() автор топика
Ответ на: комментарий от slowpony

Диагностика отличная, совершенно очевидно что виноват именно fail2ban.

Действительно очень интересный вывод, в духе «во всем виноват слоненок».

anc ★★★★★
()
Ответ на: комментарий от anc

Вангую, там проблема с сетью - может какие хитро мудрые правила, может самозабан, может conntrack overflow, раз iptables flush помогло, и загрузка сервера нулевая.

Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

Вангую, там проблема с сетью - может какие хитро мудрые правила, может самозабан, может conntrack overflow, раз iptables flush помогло, и загрузка сервера нулевая.

Врядли, я вангану за 1. ddos 2. ботнет
Обратите внимание помогло не

iptables flush

А помогла очистка правил в таблице filter+полный дроп, к conntrack как бэ это не имеет отношения.

anc ★★★★★
()

Перейти на action на базе ipset.

targitaj ★★★★★
()
Ответ на: комментарий от anc

Какой там полный дроп? Наоборот, тс сделал flush (-F) и default policy accept же. Всё разрешил, и ступор пропал. Если бы была проблема в ддос, то это бы не помогло.

Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

Упс, сорри, чего это я... виноват, как это я так лоханулся, даже сам не знаю.

anc ★★★★★
()

Тут был чел с таким именем. Я думал у вас стрелка.

anonymous
()
Ответ на: комментарий от Bers666

Ничего не произошло, подождем еще. На этой неделе уже было 2 раза, а тут как на зло нет…

Shulman
() автор топика
Ответ на: комментарий от Bers666
root@vesta4:/home/nommaner# cat ~/iptables-save
# Generated by iptables-save v1.6.0 on Wed Nov 20 09:08:15 2019
*filter
:INPUT ACCEPT [122:34064]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [109:86746]
:f2b-sshd - [0:0]
:fail2ban-FTP - [0:0]
:fail2ban-MAIL - [0:0]
:fail2ban-SSH - [0:0]
:fail2ban-VESTA - [0:0]
:vesta - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A f2b-sshd -j RETURN
-A fail2ban-SSH -s 41.214.138.178/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 106.12.208.211/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 118.24.149.248/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 91.207.40.45/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 112.85.42.171/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 116.196.80.104/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 112.217.225.61/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 165.169.241.28/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 103.110.89.148/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 150.109.52.25/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 83.221.222.251/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 185.232.67.5/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 61.157.78.29/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 222.186.175.220/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 118.25.126.32/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -j RETURN
COMMIT
# Completed on Wed Nov 20 09:08:15 2019

Но в этот раз метод описанный выше не помог. Я прибил один процесс апача, и сервер ожил... странно что один процесс мог повесить всю веб подсистему...

Shulman
() автор топика
Последнее исправление: Shulman (всего исправлений: 1)
Ответ на: комментарий от Shulman

ну вот теперь пойди и поищи какой шкрипт он там исполняет
веб-шелл небось, из которого дудосят кого-нибудь

slowpony ★★★★★
()
Ответ на: комментарий от Bers666
root@vesta4:/home/nommaner# cat ~/iptables-save
# Generated by iptables-save v1.6.0 on Mon Dec  2 08:09:59 2019
*filter
:INPUT DROP [91:9371]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6636:12599766]
:f2b-sshd - [0:0]
:fail2ban-FTP - [0:0]
:fail2ban-MAIL - [0:0]
:fail2ban-SSH - [0:0]
:fail2ban-VESTA - [0:0]
:vesta - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A INPUT -p tcp -m multiport --dports 25,465,587,2525,110,995,143,993 -j fail2ban-MAIL
-A INPUT -p tcp -m tcp --dport 8083 -j fail2ban-VESTA
-A INPUT -p tcp -m tcp --dport 21 -j fail2ban-FTP
-A INPUT -s 192.168.2.11/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -s 178.208.255.149/32 -p tcp -m multiport --dports 21,12000:12100 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 21,12000:12100 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 25,465,587,2525 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 3306,5432 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8083 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A f2b-sshd -j RETURN
-A f2b-sshd -j RETURN
-A fail2ban-FTP -j RETURN
-A fail2ban-MAIL -s 92.118.38.38/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 46.38.144.17/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 46.38.144.179/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 46.38.144.202/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 92.118.38.55/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 46.38.144.57/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -j RETURN
-A fail2ban-SSH -s 185.232.67.6/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 159.65.146.250/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 80.211.180.203/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 222.186.175.202/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 222.186.173.215/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 185.232.67.6/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -j RETURN
-A fail2ban-VESTA -j RETURN
COMMIT

Shulman
() автор топика
Последнее исправление: Shulman (всего исправлений: 1)
Ответ на: комментарий от Bers666
nommaner@vesta4:~$ cat /etc/iptables.rules
# Generated by iptables-save v1.6.0 on Mon Nov 18 14:12:01 2019
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-sshd - [0:0]
:fail2ban-FTP - [0:0]
:fail2ban-MAIL - [0:0]
:fail2ban-SSH - [0:0]
:fail2ban-VESTA - [0:0]
:vesta - [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A INPUT -p tcp -m multiport --dports 25,465,587,2525,110,995,143,993 -j fail2ban-MAIL
-A INPUT -p tcp -m tcp --dport 8083 -j fail2ban-VESTA
-A INPUT -p tcp -m tcp --dport 21 -j fail2ban-FTP
-A INPUT -s 192.168.2.11/32 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -j ACCEPT
-A INPUT -s 178.208.255.149/32 -p tcp -m multiport --dports 21,12000:12100 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 21,12000:12100 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 25,465,587,2525 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 3306,5432 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8083 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A f2b-sshd -j RETURN
-A fail2ban-FTP -j RETURN
-A fail2ban-MAIL -s 46.38.144.179/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 46.38.144.202/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 92.118.38.55/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -s 46.38.144.57/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-MAIL -j RETURN
-A fail2ban-SSH -s 159.65.146.250/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 80.211.180.203/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 222.186.175.202/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 222.186.173.215/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 185.232.67.6/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -j RETURN
-A fail2ban-VESTA -j RETURN
COMMIT
# Completed on Mon Nov 18 14:12:01 2019

Shulman
() автор топика
Ответ на: комментарий от Shulman

Я бы в первую очередь ставил что там обычный шелл или штука позволяющая исполнять произвольный код из хттп-запроса. Т.е. искать в акцеслогах, в окрестностях пары минут от времени зависания. Внимание на GET-запросы с подозрительными параметрами (например если в качестве аргумента передается IP-адрес), а если таких нет - на POST-запросы к файликам с подозрительными именами или путями. Либо выбрать все запросы за заданный time range и отсортировать их по времени выполнения или потраченному процессорному времени (mod_rchecker, например, может в этом помочь).

slowpony ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.