[OpenVPN] Sécurité anti brute force ?

Salut à tous !

Voilà, après mon dernier problème avec fail2ban pour MySQL (securite-anti-brute-force-t39497.html), je reviens vers vous pour faire la même chose avec mon OpenVPN.

J’ai fais une regex pour lui :

[code]# Fail2Ban configuration file

Author: Darel

[Definition]
failregex = :\d{1,5} TLS Auth Error[/code]
J’ai testé avec sudo fail2ban-regex /var/log/openvpn.log /etc/fail2ban/filter.d/openvpn.conf :

[code]/usr/share/fail2ban/server/filter.py:442: DeprecationWarning: the md5 module is deprecated; use hashlib instead
import md5

Running tests

Use regex file : /etc/fail2ban/filter.d/openvpn.conf
Use log file : /var/log/openvpn.log

Results

Failregex
|- Regular expressions:
| [1] :\d{1,5} TLS Auth Error
|
`- Number of matches:
[1] 12 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary

Addresses found:
[1]
xxx.xxx.xxx.xxx (Thu Aug 16 08:50:01 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:20:39 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:20:46 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:20:54 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:21:03 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:21:10 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:34:28 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:34:40 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:34:50 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:35:01 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:35:10 2012)
xxx.xxx.xxx.xxx (Thu Aug 16 09:35:17 2012)

Date template hits:
472 hit(s): MONTH Day Hour:Minute:Second
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/MONTH/Year:Hour:Minute:Second
0 hit(s): Month/Day/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
0 hit(s): Day-Month-Year Hour:Minute:Second
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601
0 hit(s): Hour:Minute:Second
0 hit(s): <Month/Day/Year@Hour:Minute:Second>
0 hit(s): YearMonthDay Hour:Minute:Second

Success, the total number of match is 12

However, look at the above section ‘Running tests’ which could contain important
information.[/code]
Pour moi tout me semble bon, il trouve les adresses IP et il reconnait nativement les dates…
Voici en prime moi jail.conf (le minimum) :

[code][DEFAULT]
ignoreip = 127.0.0.1
bantime = 1600
maxretry = 3
backend = polling
destemail = xxxxxxxxx@gmail.com
banaction = iptables-multiport
mta = sendmail
protocol = tcp

action_ = %(banaction)s[name=%(name)s, port="%(port)s", protocol="%(protocol)s]
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]
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_mwl)s

[openvpn]
enabled = true
port = 443
filter = openvpn
logpath = /var/log/openvpn.log[/code]
Avez-vous une petite idée de pourquoi il ne veut pas me bloquer se satané port ?

Merci d’avance !

Salut,
Openvpn est sur le port 443 ?

Oui, je l’ai mis là pour pouvoir passer un peu partout (école, hotspot, entreprise…).

Tu as eu des alertes depuis que tu as relancé fail2ban ?

Non, rien.

J’ai tester de mettre banaction avec hostdeny.
Pour les autre service, aucun problème, il rajoute la ligne en question dans /etc/hosts.deny
Pour OpenVPN, rien.

J’ai aussi vérifier les droits sur le fichier de log de OpenVPN, ils sont les mêmes que sur les autres fichiers.

Rien d’annormal non plus du coté des log de fail2ban…

Creating new jail 'openvpn' 2012-08-16 14:19:42,541 fail2ban.jail : INFO Jail 'openvpn' uses poller 2012-08-16 14:19:42,545 fail2ban.filter : INFO Added logfile = /var/log/openvpn.log 2012-08-16 14:19:42,547 fail2ban.filter : INFO Set maxRetry = 3 2012-08-16 14:19:42,550 fail2ban.filter : INFO Set findtime = 600 2012-08-16 14:19:42,552 fail2ban.actions: INFO Set banTime = 1600 2012-08-16 14:19:42,614 fail2ban.jail : INFO Jail 'openvpn' started

Que renvoie

Si tu veux que je teste avec mon openvpn donne moi ton ip en MP.

-P INPUT DROP -P FORWARD DROP -P OUTPUT DROP -N fail2ban-apache -N fail2ban-mysql -N fail2ban-openvpn -N fail2ban-pure-ftpd -N fail2ban-ssh -A INPUT -p tcp -m multiport --dports 443 -j fail2ban-openvpn -A INPUT -p tcp -m multiport --dports 8743 -j fail2ban-ssh -A INPUT -p tcp -m multiport --dports 21 -j fail2ban-pure-ftpd -A INPUT -p tcp -m multiport --dports 3306 -j fail2ban-mysql -A INPUT -p tcp -m multiport --dports 80 -j fail2ban-apache -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -p udp -m udp --dport 6100:6200 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -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 tcp -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8743 -j ACCEPT -A INPUT -s 10.8.0.1/32 -p tcp -m tcp --dport 8080 -j ACCEPT -A INPUT -p tcp -m tcp --dport 51413 -j ACCEPT -A INPUT -p udp -m udp --dport 51413 -j ACCEPT -A INPUT -i tun0 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1 -j ACCEPT -A INPUT -p tcp -m tcp --dport 7 -j ACCEPT -A INPUT -p tcp -m tcp --dport 9 -j ACCEPT -A INPUT -p tcp -m tcp --dport 11 -j ACCEPT -A INPUT -p tcp -m tcp --dport 15 -j ACCEPT -A INPUT -p tcp -m tcp --dport 70 -j ACCEPT -A INPUT -p tcp -m tcp --dport 79 -j ACCEPT -A INPUT -p tcp -m tcp --dport 109 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT -A INPUT -p tcp -m tcp --dport 119 -j ACCEPT -A INPUT -p tcp -m tcp --dport 138 -j ACCEPT -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m tcp --dport 512 -j ACCEPT -A INPUT -p tcp -m tcp --dport 513 -j ACCEPT -A INPUT -p tcp -m tcp --dport 514 -j ACCEPT -A INPUT -p tcp -m tcp --dport 515 -j ACCEPT -A INPUT -p tcp -m tcp --dport 540 -j ACCEPT -A INPUT -p tcp -m tcp --dport 635 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1080 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1524 -j ACCEPT -A INPUT -p tcp -m tcp --dport 2000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 2001 -j ACCEPT -A INPUT -p tcp -m tcp --dport 4000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 4001 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5742 -j ACCEPT -A INPUT -p tcp -m tcp --dport 6000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 6001 -j ACCEPT -A INPUT -p tcp -m tcp --dport 6667 -j ACCEPT -A INPUT -p tcp -m tcp --dport 12345 -j ACCEPT -A INPUT -p tcp -m tcp --dport 12346 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20034 -j ACCEPT -A INPUT -p tcp -m tcp --dport 27665 -j ACCEPT -A INPUT -p tcp -m tcp --dport 30303 -j ACCEPT -A INPUT -p tcp -m tcp --dport 32771 -j ACCEPT -A INPUT -p tcp -m tcp --dport 32772 -j ACCEPT -A INPUT -p tcp -m tcp --dport 32773 -j ACCEPT -A INPUT -p tcp -m tcp --dport 32774 -j ACCEPT -A INPUT -p tcp -m tcp --dport 31337 -j ACCEPT -A INPUT -p tcp -m tcp --dport 40421 -j ACCEPT -A INPUT -p tcp -m tcp --dport 40425 -j ACCEPT -A INPUT -p tcp -m tcp --dport 49724 -j ACCEPT -A INPUT -p tcp -m tcp --dport 54320 -j ACCEPT -A INPUT -p udp -m udp --dport 1 -j ACCEPT -A INPUT -p udp -m udp --dport 7 -j ACCEPT -A INPUT -p udp -m udp --dport 9 -j ACCEPT -A INPUT -p udp -m udp --dport 66 -j ACCEPT -A INPUT -p udp -m udp --dport 67 -j ACCEPT -A INPUT -p udp -m udp --dport 68 -j ACCEPT -A INPUT -p udp -m udp --dport 69 -j ACCEPT -A INPUT -p udp -m udp --dport 111 -j ACCEPT -A INPUT -p udp -m udp --dport 137 -j ACCEPT -A INPUT -p udp -m udp --dport 138 -j ACCEPT -A INPUT -p udp -m udp --dport 161 -j ACCEPT -A INPUT -p udp -m udp --dport 162 -j ACCEPT -A INPUT -p udp -m udp --dport 474 -j ACCEPT -A INPUT -p udp -m udp --dport 513 -j ACCEPT -A INPUT -p udp -m udp --dport 517 -j ACCEPT -A INPUT -p udp -m udp --dport 518 -j ACCEPT -A INPUT -p udp -m udp --dport 635 -j ACCEPT -A INPUT -p udp -m udp --dport 640 -j ACCEPT -A INPUT -p udp -m udp --dport 641 -j ACCEPT -A INPUT -p udp -m udp --dport 666 -j ACCEPT -A INPUT -p udp -m udp --dport 700 -j ACCEPT -A INPUT -p udp -m udp --dport 2049 -j ACCEPT -A INPUT -p udp -m udp --dport 31335 -j ACCEPT -A INPUT -p udp -m udp --dport 27444 -j ACCEPT -A INPUT -p udp -m udp --dport 34555 -j ACCEPT -A INPUT -p udp -m udp --dport 32770 -j ACCEPT -A INPUT -p udp -m udp --dport 32771 -j ACCEPT -A INPUT -p udp -m udp --dport 32772 -j ACCEPT -A INPUT -p udp -m udp --dport 32773 -j ACCEPT -A INPUT -p udp -m udp --dport 32774 -j ACCEPT -A INPUT -p udp -m udp --dport 31337 -j ACCEPT -A INPUT -p udp -m udp --dport 54321 -j ACCEPT -A FORWARD -i tun0 -j ACCEPT -A FORWARD -o tun0 -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p icmp -j ACCEPT -A OUTPUT -p udp -m udp --dport 6100:6200 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 51413 -j ACCEPT -A OUTPUT -p udp -m udp --dport 51413 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 2710 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 56969 -j ACCEPT -A OUTPUT -o tun0 -j ACCEPT -A fail2ban-apache -j RETURN -A fail2ban-mysql -j RETURN -A fail2ban-openvpn -j RETURN -A fail2ban-pure-ftpd -j RETURN -A fail2ban-ssh -j RETURN

Ton openvpn écoute sur du tcp ?

Oui.

Je ne pense pas que ce soit les règles…
J’ai n’ai pas de mail de notification, ni de trace dans les logs de fail2ban.
On dirait simplement qu’il ne voit pas se qu’il se passe.

ça n’existe tout simplement pas , tu peux te bastiller comme pas possible ,si on veux t’avoir il y auras toujours un autre moyens…

je ferais toujours plus attention au MITM…

de plus avec les outils de nos jours !! …

mais rien ne t’empeche de te securisée a fond !

as tu deja essayer des outils tels wireshark ? (pour le plus connu )

ça n’existe tout simplement pas , tu peux te bastiller comme pas possible ,si on veux t’avoir il y auras toujours un autre moyens…

je ferais toujours plus attention au MITM…

de plus avec les outils de nos jours !! …

mais rien ne t’empeche de te securisée a fond !

as tu deja essayer des outils tels wireshark ? (pour le plus connu )[/quote]
Je n’ai pas dis vouloir faire quelque chose d’imprenable.
Il y aura toujours quelques personnes pouvant relever cet exploit, mais je fais le maximum que je peux pour y remédier.
“Ça ne sert à rien de sécuriser un serveur, de toute façon il y aura toujours quelqu’un pour le prendre… Laissons le ouvert aux quatre vents !” est le genre de connerie qu’on ne peut pas sortir en entreprise.

De plus, que vient faire un analyseur de trame ici ?
On parle de brute force, pas de sniffing !

Je pense que tu balances des choses un peu vite sans savoir de quoi tu parles, ou alors tu n’as pas bien cerné le sujet de la conversation. Ça parle de comment sécuriser OpenVPN contre du brute force. Mais ce n’est pas la seule sécurité en place actuellement, et certainement pas la dernière, pour ce service ou pour un autre.

Enfin, désolé si je me trompe sur ton cas et que ton post est parti d’une bonne intention, mais ton post ressemble à un Kikoo qui fait Troll (se que je déteste quand il s’agit d’un sujet sérieux).

ça n’existe tout simplement pas , tu peux te bastiller comme pas possible ,si on veux t’avoir il y auras toujours un autre moyens…

je ferais toujours plus attention au MITM…

de plus avec les outils de nos jours !! …

mais rien ne t’empeche de te securisée a fond !

as tu deja essayer des outils tels wireshark ? (pour le plus connu )[/quote]
Je n’ai pas dis vouloir faire quelque chose d’imprenable.
Il y aura toujours quelques personnes pouvant relever cet exploit, mais je fais le maximum que je peux pour y remédier.
“Ça ne sert à rien de sécuriser un serveur, de toute façon il y aura toujours quelqu’un pour le prendre… Laissons le ouvert aux quatre vents !” est le genre de connerie qu’on ne peut pas sortir en entreprise.

De plus, que vient faire un analyseur de trame ici ?
On parle de brute force, pas de sniffing !

Je pense que tu balances des choses un peu vite sans savoir de quoi tu parles, ou alors tu n’as pas bien cerné le sujet de la conversation. Ça parle de comment sécuriser OpenVPN contre du brute force. Mais ce n’est pas la seule sécurité en place actuellement, et certainement pas la dernière, pour ce service ou pour un autre.

Enfin, désolé si je me trompe sur ton cas et que ton post est parti d’une bonne intention, mais ton post ressemble à un Kikoo qui fait Troll (se que je déteste quand il s’agit d’un sujet sérieux).[/quote]

rhaaaaa…Mouais…allez je te laisse le regler tout seul ton “probleme” byz! ras le Q des gens comme toi …

…ma fille Léna 18 ans (qui a aussi un compte debianfr argh grillé lool, et qui es tomber sur ma reponse ) m’a dit que j’y eté aller un peu fort avec toi …

donc on va le faire tranquillement :slightly_smiling:

ma reponse en effet aurais dù etre dans pause café pas en reponse support

maintenant : (me frotte les mains ,le mechant moi !! ) :005 :005

donc tu bosse en entreprise et tu ne sais pas comment securisée betement un opnvpn de base … ?

[quote]De plus, que vient faire un analyseur de trame ici ?
On parle de brute force, pas de sniffing !
[/quote]

ok j’aurais pas dù t’incité a penser comment voir de sois meme ce qui ne va pas , entre autre suffit juste d’un second pc , mais on est pas sur le bon forum pour cela …

hoooo pauv’ biche’ …bref ! :005

et vus que je suis cool :041 authsecu.com/cours-formation … debian.php

:006

Salut,
Je rappelle que ce n’est pas Pause-café.

Les interventions sans rapport avec le sujet seront déplacée/supprimées.

pour protéger ta connections tu devrai maître en place un authentification par clef priver clef public et interdire tous les autres modes authentification.
ceci évite aussi le brute force car sans la clef priver personnes ne peuvent ce connecter au serveur. par contre bien faire attention aux mode de distribution des clef privées.
pour plus de sécurité bien mètre une passe phrase sur les clef privé.

Avant c’était le cas, j’avais suivi ce tuto : blog.nicolargo.com/2010/10/insta … buntu.html

Mais une fois en prod il va y avoir pas mal d’utilisateurs, donc c’est plus facile de gérer une base MySQL pour administrer les droits de connexion au FTP, OpenVPN…
Il y a quand même des certificats pour l’authentification (coté client : ca.crt et ta.key).

L’anti brute force c’est surtout au cas ou il y aurait un petit malin qui veut faire des bêtises avec le compte d’un de ses collègue :slightly_smiling: !

Merci quand même hulk :023 !

Openvpn est fondé sur des certificats. Tu peux soit le configurer avec un certificat par client, soit autoriser plusieurs certificats (option duplicate-cn). Quiconque n’a pas ces certificats peut se brosser pour se connecter. Seul le deuxième cas peut éventuellement faire envisager le cas d’un intrus sur le réseau par subtilisation d’un des certificats. Dans tous les cas, une attaque brute force sur ce type de VPN est inenvisageable. Tu as maintenant une configuration de openvpn par clef, mais même là la clef fait 636 octets et une attaque par force brute est vouée à l’échec. Bref, je ne crois pas que le jeu en vaille la chandelle.
À ce stade une conservation des logs de openvpn me parait plus judicieuse, savoir qu’un certificat est grillé est plus important que de parer une attaque ayant une chance nulle d’aboutir.