Sécurisé le port 943

Tags: #<Tag:0x00007feddc6c7ab0>

Bonjour,
Je débute depuis quelques mois car j’ai du installer des VPN.
Au final j’en ai installé un (pas cher) chez BlueVPS.
Il est sous debian 9, et openvpn fonctionne nickel.
Par contre si je fais un test firewall, le port de connexion 943 reste ouvert.
Pour protéger le port SSH, j’ai donc installer fail2ban.
Voici le script :

----------------------------------------------------
[DEFAULT]
ignoreip = 127.0.0.1/8 (ainsi que mes IP)
findtime = 3600
bantime = 864000
maxretry = 5
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/fail2ban.log
maxretry = 5
---------------------------------------------------------

La question est, puisque le port reste ouvert, puis-je rajouter quelques lignes pour protéger le port 943 ?

Merci à tous de votre aide
JC

le port 943 doit effectivement resté ouvert c’est ton port pour ton VPN … tu cherche à le protéger de quoi exactement ?

PS : Sémantiquement, un port se ferme, s’ouvre et se filtre mais ne se sécurise pas, c’est le service qui est en écoute derrière que l’on sécurise.

Salut,
Effectivement tu as raison. Je ne peux pas laisser fermé ce port, sauf si j’ai une solution de ne l’ouvrir qu’avec mon IP. Du coup l’idée est la suivante :
Le Port 943 permet d’avoir accès à la config du VPN. Donc :
Utiliser fail2ban, pour qu’au bout de 3 tentatives de connexions infructueuses, l’IP soit bannie.

Et comme tu le dis très bien, je pense qu’il faut chercher sur le service qui est écoute, mais je ne sais pas lequel…

Qu’entends-tu par « test firewall » ?
A quoi correspond ce « port de connexion » ? Connexion à quoi ?

« donc » suppose une relation de causalité. Quel est le rapport entre SSH et ce port 943 ?

Filtrage, port knocking…

C’est-à-dire ?

Ça se voit comment, une tentative de connexion infructueuse ?

netstat -tunlp
ss -tunlp

Tu peux enlever t si c’est un port UDP ou u si c’est un port TCP

Je me connecte avec mon vpn et je test les ports avec : https://www.grc.com/x/ne.dll?bh0bkyd2

C’est le port utilisé pour gérer le serveur openvpn, donc l’accès à son administration…

Fail2ban permet de bannir un IP après quelques connexions infructueuses. ça marche très pour le port 22 qui prend en compte les accès en SSHD.
Je souhaite faire de même avec le port 943, mais qui lui est un port d’accès http.

ça je ne connais pas, mais si tu as un lien vers un tuto pour debian 9 ce serait super (je vais quand même regardé en attendant…)

Dans le fichier log du SSHD

OK merci, je test ça !

Merci beaucoup de ton aide en tout cas

Tu connectes quoi à quoi et que vient faire le VPN dans le test de ports ?

Je sais ce que fait fail2ban, merci. Il le fait en surveillant les logs des services à protéger. Ton port HTTP, qu’est-ce qui écoute dessus ? Un programme autonome ou une application PHP ou autre servie par un serveur web classique comme apache ? Dans le second cas, est-ce une authentification au niveau HTTP (avec .htaccess/.htpasswd) ou au niveau applicatif ?

A ma connaissance sshd n’a pas de logs spécifiques, ils sont écr dans /var/log/auth.log. Ton gestionnaire openvpn écrit aussi dedans ?

Et bien tout simplement un client openvpn installé sur mon PC, qui se connecte à l’OpenVPN.
L’idée est de passer par un VPN pour naviguer ou télécharger. Il me semble que ce sont des possibilités qu’offrent les VPN ?

C’est là que je bute, la distrib openvpn fournie par le serveur VPS ne m’indique pas sur quel serveur HTTP, et donc je ne peux pas reproduire l’accès aux log de fail2ban sur le plan http. Je ne pense pas qu’il y est 50 types de serveur http pour un openvpn, reste à savoir lequel et trouver les logs de connexions…

A priori non, juste pour le SSHD.

En fait, l’idée est de savoir, comment paramétrer les adresses IP qui peuvent avoir accès au port 943…

Oui, mais l’accès à internet déporté n’est pas le seul usage d’un VPN. Donc ça ne va pas de soi quand on parle de VPN.

Avec les commandes netstat ou ss mentionnées plus haut tu devrais pouvoir identifier le processus qui écoute sur ce port.

Avec iptables ou son successeur nftables.
Par exemple avec iptables :

iptables -A INPUT -p tcp --dport 943 -j REJECT --reject-with tcp-reset
iptables -I INPUT -p tcp -s adresse.autorisée --dport 943 -j ACCEPT
iptables -I INPUT -p tcp -s autre.adresse.autorisée --dport 943 -j ACCEPT

Attention, par défaut ce n’est pas persistant après un redémarrage sans un service qui les enregistre et les recrée.

Merci beaucoup, il faut donc créer un script ou un bash pour les « auto exécuter » ?

image
Ben c’est Python 2, j’avoue que ça m’aide pas…

Ou bien utiliser un paquet comme iptables-persistent.

Donc c’est un serveur autonome écrit en python. On doit pouvoir retrouver la ligne de commande complète avec ps grâce au numéro de processus (il y a sûrement mieux mais la flemme de chercher)

ps -Af |grep 445

mais ça ne dira pas où sont ses logs. A voir dans /var/log s’il y a des fichiers dont le nom t’interpelle, sinon rechercher dans les fichiers syslog, daemon.log et messages de ce répertoire.

Bon OK, je teste ça, mais je comprend pas qu’openvpn n’y est pas pensé…

C’est à l’administrateur du système de gérer ce genre de chose qui a un impact global, pas à un composant particulier comme openvpn.

1 J'aime

A considérer que la configuration du service en question aient les logs d’activés.

Bon, en cherchant un peu j’ai fini par comprendre qu’il fallait que je modifie une règles dans IPTABLES.
Voici donc la ligne qui serait à modifier :
-A INPUT -d IPDEMONVPN/32 -p tcp -m state --state NEW -m tcp --dport 943 -j AS0_WEBACCEPT

et je voudrais intégrer que seulement mon IP puisse accéder au port 943

S’il y a déjà un jeu de règles iptables en place, ça veut dire qu’il y a un gestionnaire de pare-feu et qu’il faut passer par lui pour modifier les règles.

Hello,
By default only iptables is enabled with no custom settings.
You can set your own firewall settings the way you need.

Let us know more details if any assistance required

voici la réponse du support

Problème résolu, il suffisait de modifier la ligne qui accept :
-A INPUT -p tcp --dport 943 -s MONIPxxx.xxx.xxx.xxx -m comment --comment « private » -j ACCEPT
Et d’ajouter dessous
-A INPUT -p tcp -m tcp --dport 943 -j DROP

Et le tour est joué !
Petit clin d’oeil à Christophe CASALEGNO, si vous ne le connaissez pas, retrouvez le sur Facebook ou sur sa chaine Youtube, y a un max de conseil à prendre… Il est super le mec !

Cela correspond peu ou prou aux règles que j’avais proposées.
Mais s’il n’y a pas de jeu de règles préexistantes, d’où as-tu sorti cette « ligne qui serait à modifier » avec cette chaîne personnalisée AS0_WEBACCEPT ?