Question sur iptables fail2ban IPv4/IPv6 et icmp Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,

J'ai installé Fail2ban v0.11.0 (https://github.com/fail2ban/fail2ban). A priori pas de problèmes:

Code : Tout sélectionner

...
2017-11-29 09:39:20,361 fail2ban.actions        [20672]: NOTICE  [sshd] Ban 213.251.x.x
...
2017-11-29 09:42:10,606 fail2ban.actions        [20672]: NOTICE  [sshd] Ban 2001:41d0:1:xxxx::
Et je suis bien bloqué sur le port ssh (en IPv4 et IPv6):

Code : Tout sélectionner

root@r2d2:~# ssh -6 2001:41d0:b:xxxx::
ssh: connect to host 2001:41d0:b:xxxx:: port 22: Connection refused
root@r2d2:~# ssh 37.59.x.x
ssh: connect to host 37.59.x.x port 22: Connection refused
Par contre le ping passe toujours alors que je supposais, vu la règle iptables de fail2ban, que ça devrait être bloqué...

Code : Tout sélectionner

# ping6 2001:41d0:b:xxxx::
PING 2001:41d0:b:xxxx::(2001:41d0:b:xxxx::) 56 data bytes
64 bytes from 2001:41d0:b:xxxx::: icmp_seq=1 ttl=60 time=9.39 ms
...

Code : Tout sélectionner

# ping 37.59.x.x
PING 37.59.x.x (37.59.x.x) 56(84) bytes of data.
64 bytes from 37.59.x.x: icmp_seq=1 ttl=59 time=9.34 ms
...

La règle fail2ban censée (selon moi) bloquer le ping:

Code : Tout sélectionner

root@master:~# ip6tables -S | grep 2001:41d0:1:xxxx::
-A f2b-sshd -s 2001:41d0:1:xxxx::/128 -j REJECT --reject-with icmp6-port-unreachable
root@master:~# iptables -S | grep 213.251.x.x
-A f2b-sshd -s 213.251.x.x/32 -j REJECT --reject-with icmp-port-unreachable

Mes règles iptables:

Code : Tout sélectionner

root@master:~# iptables-save 
# Generated by iptables-save v1.6.0 on Wed Nov 29 09:48:34 2017
*raw
:PREROUTING ACCEPT [4296:917609]
:OUTPUT ACCEPT [4168:1107381]
COMMIT
# Completed on Wed Nov 29 09:48:34 2017
# Generated by iptables-save v1.6.0 on Wed Nov 29 09:48:34 2017
*mangle
:PREROUTING ACCEPT [4296:917609]
:INPUT ACCEPT [4296:917609]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4168:1107381]
:POSTROUTING ACCEPT [4168:1107381]
COMMIT
# Completed on Wed Nov 29 09:48:34 2017
# Generated by iptables-save v1.6.0 on Wed Nov 29 09:48:34 2017
*nat
:PREROUTING ACCEPT [353:37768]
:INPUT ACCEPT [232:9460]
:OUTPUT ACCEPT [380:51933]
:POSTROUTING ACCEPT [380:51933]
-A POSTROUTING -s 10.9.8.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Nov 29 09:48:34 2017
# Generated by iptables-save v1.6.0 on Wed Nov 29 09:48:34 2017
*filter
:INPUT DROP [97:23756]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 91.200.12.126/32 -j DROP
-A INPUT -i tun+ -p icmp -j ACCEPT
-A INPUT -i tun+ -p tcp -j ACCEPT
-A INPUT -i tun+ -p udp -j ACCEPT
-A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 10/sec -m length --length 8:2000 -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 40110:40210 -j ACCEPT
-A INPUT -p udp -m udp --dport 9194 -j ACCEPT
-A INPUT -s 213.186.50.98/32 -p icmp -j ACCEPT
-A INPUT -s 37.59.26.250/32 -p icmp -j ACCEPT
-A INPUT -s 37.59.26.251/32 -p icmp -j ACCEPT
-A INPUT -s 213.186.33.62/32 -p icmp -j ACCEPT
-A INPUT -s 92.222.184.1/32 -p icmp -j ACCEPT
-A INPUT -s 92.222.185.1/32 -p icmp -j ACCEPT
-A INPUT -s 92.222.186.1/32 -p icmp -j ACCEPT
-A INPUT -s 167.114.37.1/32 -p icmp -j ACCEPT
-A INPUT -s 213.186.45.4/32 -p icmp -j ACCEPT
-A INPUT -s 213.251.184.9/32 -p icmp -j ACCEPT
-A INPUT -s 37.59.0.235/32 -p icmp -j ACCEPT
-A INPUT -s 8.33.137.2/32 -p icmp -j ACCEPT
-A INPUT -s 213.186.33.13/32 -p icmp -j ACCEPT
-A INPUT -s 188.165.15.71/32 -p icmp -j ACCEPT
-A INPUT -s 37.187.0.235/32 -p icmp -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.9.8.0/24 -o eth0 -j ACCEPT
-A OUTPUT -j ACCEPT
-A OUTPUT -p udp -m udp --dport 6100:6200 -j ACCEPT
-A f2b-sshd -s 213.251.x.x/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -j RETURN
COMMIT
# Completed on Wed Nov 29 09:48:34 2017

Code : Tout sélectionner

root@master:~# ip6tables-save 
# Generated by ip6tables-save v1.6.0 on Wed Nov 29 09:51:02 2017
*raw
:PREROUTING ACCEPT [2766:1860993]
:OUTPUT ACCEPT [2717:642041]
COMMIT
# Completed on Wed Nov 29 09:51:02 2017
# Generated by ip6tables-save v1.6.0 on Wed Nov 29 09:51:02 2017
*mangle
:PREROUTING ACCEPT [2766:1860993]
:INPUT ACCEPT [2760:1860561]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2717:642041]
:POSTROUTING ACCEPT [2717:642041]
COMMIT
# Completed on Wed Nov 29 09:51:02 2017
# Generated by ip6tables-save v1.6.0 on Wed Nov 29 09:51:02 2017
*nat
:PREROUTING ACCEPT [10:836]
:INPUT ACCEPT [2:184]
:OUTPUT ACCEPT [56:4512]
:POSTROUTING ACCEPT [56:4512]
COMMIT
# Completed on Wed Nov 29 09:51:02 2017
# Generated by ip6tables-save v1.6.0 on Wed Nov 29 09:51:02 2017
*filter
:INPUT DROP [1:60]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1959:461750]
:f2b-sshd - [0:0]
-A INPUT -p tcp -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -m limit --limit 10/sec -j ACCEPT
-A INPUT -p ipv6-icmp -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 135 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 136 -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j ACCEPT
-A OUTPUT -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j ACCEPT
-A f2b-sshd -s 2001:41d0:1:xxxx::/128 -j REJECT --reject-with icmp6-port-unreachable
-A f2b-sshd -j RETURN
COMMIT
# Completed on Wed Nov 29 09:51:02 2017

Est-ce que quelqu'un pourrait me mettre le nez sur le problème, parce que je ne comprend pas pourquoi le ping passe toujours... :icon_wink:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
PascalHambourg
Contributeur
Contributeur
Messages : 876
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Code : Tout sélectionner

-A INPUT -p tcp -j f2b-sshd
La règle ne prend que les paquets TCP.
Je trouve d'ailleurs cela curieux. Vu le nom de la chaîne, je m'attendrais à ce qu'elle ne prenne que les paquets SSH. Ou à la limite tous les paquets si on veut bannir totalement la source.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut et merci,
PascalHambourg a écrit : 30 nov. 2017, 06:50

Code : Tout sélectionner

-A INPUT -p tcp -j f2b-sshd
La règle ne prend que les paquets TCP.

C'est exactement ça.
J'ai donc modifié ceci dans mon jail.conf: (All au lieu de tcp par défaut).

Code : Tout sélectionner

protocol = all
Du coup j'ai bien:

Code : Tout sélectionner

-A INPUT -j f2b-sshd
PascalHambourg a écrit :Je trouve d'ailleurs cela curieux. Vu le nom de la chaîne, je m'attendrais à ce qu'elle ne prenne que les paquets SSH. Ou à la limite tous les paquets si on veut bannir totalement la source.
C'est peut-être de ma faute... J'ai remplacé banaction (Qui bloque en principe seulement les ports concernés par la règle) par banaction_allports.
Du coup je pense au ça a ajouté --reject-with icmp6-port-unreachable à la règle alors que par défaut seule les ports tcp sont bloqués... Il faut que je teste pour être certain de ce que je dis.

Je devrais remettre le banaction pour mes règles classiques et n'utiliser le banaction_allports que pour les récidivistes...
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Répondre