O servidor congela por causa do fail2ban

3

Ultimamente, tenho tido alguns problemas com o congelamento do meu servidor ou com problemas de rede (não sei dizer qual, neste momento). Estou executando o OpenSSH na porta 443 e parece que o filtro anti-SSDo DDoS do fail2ban é o culpado. Como estou em uma porta normalmente reservada para HTTPS¹, às vezes recebo solicitações inválidas:

# /var/log/auth.log
Aug 25 11:46:38 void sshd[13782]: pam_unix(sshd:session): session closed for user tim
Aug 25 11:46:38 void sshd[13782]: syslogin_perform_logout: logout() returned an error
Aug 25 11:46:41 void sshd[15911]: Bad protocol version identification 'CONNECT 194.109.153.5:11111 HTTP/1.0' from 194.109.21.230
Aug 25 11:46:45 void sshd[15915]: Bad protocol version identification 'CONNECT 194.109.153.5:11111 HTTP/1.0' from 194.109.21.230
Aug 25 11:46:53 void sshd[15912]: Did not receive identification string from 194.109.21.230
Aug 25 11:46:53 void sshd[15910]: Did not receive identification string from 194.109.21.230
Aug 25 11:46:57 void sshd[15916]: Did not receive identification string from 194.109.21.230
Aug 25 11:46:57 void sshd[15914]: Did not receive identification string from 194.109.21.230

O que, por sua vez, aciona o fail2ban:

# /var/log/fail2ban.log
2014-08-25 11:46:58,609 fail2ban.actions: WARNING [ssh-ddos] Ban 194.109.21.230
2014-08-25 11:56:58,852 fail2ban.actions: WARNING [ssh-ddos] Unban 194.109.21.230

Isso não é algo com que eu me preocupei anteriormente, apenas um pouco de barulho nos meus registros, mas não afetou o meu servidor. Nos últimos dias, porém, eu obtive proxyscanned várias vezes em 194.109.21.230 (proxyscan.xs4all.net . O resultado é a desconexão, possivelmente o congelamento do servidor, o que noto rapidamente, já que também estou usando esse servidor como um cliente de IRC. Olhando para os meus gráficos Munin parece que congelou no mesmo período fail2ban banido um IP aparentemente sem importância:

Não sei ao certo como isso pode estar relacionado, mas também experimentei recentemente um stall RCU² no mesmo servidor. Antes dessa data, nunca experimentei o congelamento do servidor, mesmo se o fail2ban fosse acionado. Desde então, fixei /etc/ntp.conf , mas somente depois de experimentar os congelamentos.

# /var/log/syslog
... (multiple 'host name not found' for ntpd)
Aug 20 20:24:22 void ntpd_intres[8124]: host name not found: 1.tid.uio.no
Aug 20 20:40:25 void ntpd_intres[8124]: host name not found: 0.ntp.uio.no
Aug 20 20:40:25 void ntpd_intres[8124]: host name not found: 1.tid.uio.no
Aug 20 20:57:44 void kernel: [18225085.384024] INFO: rcu_sched detected stall on CPU 0 (t=18892 jiffies)
Aug 20 20:57:44 void kernel: [18225085.384024] sending NMI to all CPUs:
Aug 20 20:57:44 void kernel: [18225085.384024] NMI backtrace for cpu 0
Aug 20 20:57:44 void kernel: [18225085.384024] Modules linked in: tun iptable_nat nf_nat iptable_mangle xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_mark bridge stp xt_multiport iptable_filter ip_tables x_tables vmwgfx snd_page_alloc parport_pc parport processor thermal_sys snd_timer snd soundcore evdev pcspkr serio_raw ttm drm button i2c_piix4 i2c_core ext4 crc16 jbd2 mbcache sg sr_mod cdrom ata_generic virtio_blk virtio_net floppy ata_piix libata virtio_pci virtio_ring virtio scsi_mod [last unloaded: scsi_wait_scan]
Aug 20 20:57:44 void kernel: [18225085.384024]
Aug 20 20:57:44 void kernel: [18225085.384024] Pid: 8124, comm: ntpd Not tainted 3.2.0-4-686-pae #1 Debian 3.2.41-2+deb7u2 Bochs Bochs
... (call stack)

Por enquanto, acabei de adicionar uma regra iptables bloqueando o servidor de proxyscanning:

iptables -A INPUT -p tcp --dport 443 -s 128.39.74.65 -j DROP

Eu gostaria de forçar o problema bloqueando-me para ver se a mesma coisa acontece todas as vezes e se é corrigido após uma reinicialização. Não foi possível criar um comando que realmente aciona ssh-ddos, não autenticando ou wget não parece ser suficiente. Alguma dica?

A parada da RCU ( * ) pode estar relacionada ao fail2ban / freezes e, se sim, por quê? A reinicialização provavelmente ajudaria, mas estou curioso para saber como isso pode acontecer e o motivo do congelamento do meu servidor.

Editar: Congelar não muito depois da parada da RCU:

# /usr/var/log/auth.log.1
Aug 20 21:09:28 void sshd[9115]: Bad protocol version identification 'CONNECT 194.109.153.5:11111 HTTP/1.0' from 194.109.21.230
Aug 20 21:09:40 void sshd[9114]: Did not receive identification string from 194.109.21.230
Aug 20 21:09:40 void sshd[9116]: Did not receive identification string from 194.109.21.230

# /usr/var/log/fail2ban.log.1
2014-08-20 21:10:28,747 fail2ban.actions: WARNING [ssh-ddos] Ban 194.109.21.230
2014-08-20 21:20:29,515 fail2ban.actions: WARNING [ssh-ddos] Unban 194.109.21.230

¹ Estou usando o 443 porque nem todas as redes que frequento permitem o uso de 22. Ele também tem a vantagem adicional de menos ataques SSH recebidos.
² RCU stall (CPU), não kernel panic. Veja os comentários.

    
por timss 25.08.2014 / 20:31

0 respostas