Fail2Ban et reverse ip

Bonjour
Je post ici car mon fail2ban est complètement inefficace
Etant en IP dynamique je me trompe volontairement de mot de passe sur le SSH par exemple.
Après quelques essai je tape le bon mot de passe et la connection se fait correctement.
Quand je fait un iptables -L je vois une entrée sur le SSH avec mon ip reverse mais d’après les log fail2ban c’est bien mon ip qui a été bannie…
Si quelqu’un a une idée pour que sa soit bien l’ip qui soit mise dans les iptables et non le reverse je suis preneur …

Envoie ici :

iptables-save

iptables-save

Generated by iptables-save v1.4.8 on Tue Mar 12 13:00:49 2013

*nat
:PREROUTING ACCEPT [21656:2469929]
:INPUT ACCEPT [2165:379959]
:OUTPUT ACCEPT [1003:68741]
:POSTROUTING ACCEPT [1003:68741]
COMMIT

Completed on Tue Mar 12 13:00:49 2013

Generated by iptables-save v1.4.8 on Tue Mar 12 13:00:49 2013

*raw
:PREROUTING ACCEPT [711457]
:OUTPUT ACCEPT [343924:259827912]
COMMIT

Completed on Tue Mar 12 13:00:49 2013

Generated by iptables-save v1.4.8 on Tue Mar 12 13:00:49 2013

*mangle
:PREROUTING ACCEPT [711457]
:INPUT ACCEPT [457534]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [343924:259827912]
:POSTROUTING ACCEPT [343924:259827912]
COMMIT

Completed on Tue Mar 12 13:00:49 2013

Generated by iptables-save v1.4.8 on Tue Mar 12 13:00:49 2013

*filter
:INPUT ACCEPT [808:99576]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [710:137356]
:fail2ban-apache - [0:0]
:fail2ban-apache-multiport - [0:0]
:fail2ban-apache-overflows - [0:0]
:fail2ban-courierauth - [0:0]
:fail2ban-couriersmtp - [0:0]
:fail2ban-named-refused-tcp - [0:0]
:fail2ban-proftpd - [0:0]
:fail2ban-sasl - [0:0]
:fail2ban-ssh - [0:0]
:fail2ban-ssh-ddos - [0:0]
:fail2ban-vsftpd - [0:0]
:fail2ban-wuftpd - [0:0]
-A INPUT -p tcp -m multiport --dports 53,953 -j fail2ban-named-refused-tcp
-A INPUT -p tcp -m multiport --dports 21,20,990,989 -j fail2ban-proftpd
-A INPUT -p tcp -m multiport --dports 25,465,143,220,993,110,995 -j fail2ban-courierauth
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-apache
-A INPUT -p tcp -m multiport --dports 25,465,143,220,993,110,995 -j fail2ban-sasl
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 21,20,990,989 -j fail2ban-wuftpd
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-couriersmtp
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-apache-overflows
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-apache-multiport
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh-ddos
-A INPUT -p tcp -m multiport --dports 21,20,990,989 -j fail2ban-vsftpd
-A fail2ban-apache -j RETURN
-A fail2ban-apache-multiport -j RETURN
-A fail2ban-apache-overflows -j RETURN
-A fail2ban-courierauth -j RETURN
-A fail2ban-couriersmtp -j RETURN
-A fail2ban-named-refused-tcp -j RETURN
-A fail2ban-proftpd -j RETURN
-A fail2ban-sasl -j RETURN
-A fail2ban-ssh -s 90.34.170.3/32 -j DROP
-A fail2ban-ssh -j RETURN
-A fail2ban-ssh-ddos -j RETURN
-A fail2ban-vsftpd -j RETURN
-A fail2ban-wuftpd -j RETURN
COMMIT

Completed on Tue Mar 12 13:00:49 2013

En interne, iptables n’utilise que des adresses IP. C’est iptables -L sans -n qui fait la résolution inverse pour l’affichage. Comme suggéré, il vaut mieux utiliser iptables-save.

effectivement mais je ne comprend pas pourquoi je peut me connecter alors que mon ip est bannie …
je pensais que cela venais du fait que c’était le reverse qui été banni mais j’ai compris que non

Ton iptables est une passoire, sauf pour :
-A fail2ban-ssh -s 90.34.170.3/32 -j DROP
tout le reste est accepté.

Ricardo :
Les seules règles iptables présentes sont celles créées par fail2ban. Une passoire, ce serait plutôt des règles inefficaces donnant un faux sentiment de sécurité.

Paramore80 :
Ton adresse IP n’a pas changé entretemps ?

Oui, je comprends bien mais, en dehors du mot “passoire”, disons qu’un tel ‘iptables’ est totalement inefficace car tout est à ACCEPT.

iptables ne bloque que ce que fail2ban a banni. Si c’est ce qui est demandé, alors il n’est pas inefficace.

Je n’avais pas compris que c’était le seul but recherché, ce qui est quand même rare, non ?

Non mon ip n’a pas changer entre temps et oui pour l’instant c’est ce qui est demander je dit bien pour l’instant je n’ai pas mis les règles iptables en place a cause d’un petit soucis avec le serveur teamspeak qui est héberger dessus et qui est bloquer mais c’est un autre soucis le principal pour l’instant est de bannir les petit rigolos qui essayerais de brute force le SSH ou autre

OK, mais, à mon avis, tu ne devrais pas trop tarder à le compléter.
Par curiosité, comment est configuré ton sshd_config ?

Je ne sait toujours pas pourquoi fail2ban qui est censser bloquer mon ip me laisse me log quand même …

pour ce qui est de mon sshd.conf :

[code]# Fail2Ban configuration file
[INCLUDES]
before = common.conf

[Definition]
failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from \s*$
^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from \s*$
^%(__prefix_line)sFailed (?:password|publickey) for .* from (?: port \d*)?(?: ssh\d*)?$
^%(__prefix_line)sROOT LOGIN REFUSED.* FROM \s*$
^%(__prefix_line)siI user .* from \s*$
^%(__prefix_line)sUser .+ from not allowed because not listed in AllowUsers$
^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=(?:\s+user=.)?\s$
^%(__prefix_line)srefused connect from \S+ ()\s*$
^%(__prefix_line)sAddress .* POSSIBLE BREAK-IN ATTEMPT!\s$
^%(__prefix_line)sUser .+ from not allowed because none of user’s groups are listed in AllowGroups\s*$

ignoreregex =
[/code]

Non, ce que j’aurais aimé voir, c’est le /etc/ssh/sshd_config
Tu en caches le N° de port par des XXX, s’il est différent de 22, ce qui est toujours souhaitable. J’entends déjà ceux qui vont dire que ça n’empêche pas de trouver le bon N°, c’est vrai mais ça évite déjà certains robots.

Salut,

Tu es peut-être en ignoreip ?

On ne pourra te dire s’il y a un problème qu’avec le contenu de jail.conf ET les logs de auth.log et fail2ban.log montrant tes essais infructueux de ssh…

mon jail.conf :

[code][DEFAULT]
ignoreip = 127.0.0.1
bantime = 31536000
maxretry = 1

backend = polling

banaction = iptables-multiport

mta = sendmail

protocol = tcp

The simplest action to take: ban only

action_ = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]

ban & send an e-mail with whois report to the destemail.

action_mw = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois[name=%(name)s, dest="%(destemail)s", protocol="%(protocol)s]

ban & send an e-mail with whois report and relevant log lines

to the destemail.

action_mwl = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois-lines[name=%(name)s, dest="%(destemail)s", logpath=%(logpath)s]

action = %(action_)s

[ssh]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 1[/code]

mon auth.log :

Mar 12 21:00:43 localhost sshd[5535]: Failed password for root from 90.34.218.10 port 50981 ssh2 Mar 12 21:00:46 localhost sshd[5535]: Failed password for root from 90.34.218.10 port 50981 ssh2

mon fail2ban.log :

2013-03-12 21:00:44,398 fail2ban.actions: WARNING [ssh] Ban 90.34.218.10 2013-03-12 21:00:47,422 fail2ban.actions: WARNING [ssh] 90.34.218.10 already banned

iptables :

Chain fail2ban-ssh (1 references) target prot opt source destination DROP all -- 90.34.218.10 0.0.0.0/0 RETURN all -- 0.0.0.0/0 0.0.0.0/0

Malgré cela je peut toujours me log et j’ai bien vérifié mon ip n’a pas changer

Pour Ricardo :

[code]# Package generated configuration file

See the sshd_config(5) manpage for details

What ports, IPs and protocols we listen for

Port XXX
Port XXX

Use these options to restrict which interfaces/protocols sshd will bind to

#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2

HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 3600
ServerKeyBits 768

Logging

SyslogFacility AUTH
LogLevel INFO

Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

Don’t read the user’s ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

For this to work you will also need host keys in /etc/ssh_known_hosts

RhostsRSAAuthentication no

similar for protocol version 2

HostbasedAuthentication no

Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication

#IgnoreUserKnownHosts yes

To enable empty passwords, change to yes (NOT RECOMMENDED)

PermitEmptyPasswords no

Change to yes to enable challenge-response passwords (beware issues with

some PAM modules and threads)

ChallengeResponseAuthentication no

Change to no to disable tunnelled clear text passwords

#PasswordAuthentication yes

Kerberos options

#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

GSSAPI options

#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

Allow client to pass locale environment variables

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

Set this to ‘yes’ to enable PAM authentication, account processing,

and session processing. If this is enabled, PAM authentication will

be allowed through the ChallengeResponseAuthentication and

PasswordAuthentication. Depending on your PAM configuration,

PAM authentication via ChallengeResponseAuthentication may bypass

the setting of “PermitRootLogin without-password”.

If you just want the PAM account and session checks to run without

PAM authentication, then enable this but set PasswordAuthentication

and ChallengeResponseAuthentication to ‘no’.

UsePAM yes
[/code]

[quote=“ricardo”]Tu en caches le N° de port par des XXX, s’il est différent de 22[/quote][quote=“Paramore80”]sshd_configPort XXX Port XXX[/quote][quote=“Paramore80”]> iptables-save -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh-ddos [/quote]
Paramore80 peux-tu confirmer explicitement que ton SSH est sur un port différent du 22 ? (on n’a pas besoin de savoir lequel réellement, juste que c’est pas le 22)
Si c’est bien le cas, tu as besoin de configurer fail2ban en fonction de ton nouveau port : actuellement ton IP est bien bannie mais seulement pour ce que fail2ban croit être SSH (le port 22), mais si ton SSH est sur un autre port ça explique le comportement que tu observes…

target prot opt source destination DROP all -- 90.34.218.10 0.0.0.0/0
moi je lis que l’ip est bannie sur tout les ports …

Et oui je suis sur un port différents que le port 22
En fait nous avons 2 port pour la connection SSH dans le cas ou un port serais bloquer, saturer, fermer par erreur,…

Non :

[quote=“Paramore80”]> iptables-save -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh -A fail2ban-ssh -s 90.34.170.3/32 -j DROP[/quote]