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]