• Serveurs
  • [Discussion] Port Knocking : cacher son port SSH

22 jours plus tard
Salut Aerya,

Tu sait si il y possibilité d'ajouter une "pré-command" en l'occurence "knock" dans le ~/.ssh/config coté client avant de lancé la connexion final sur le bon port ?

Rien n'en parle dans le man et google ne me renvoie rien d’intéressant.

Il reste toujours la solution de l'alliasse dans le .shellrc, mais se serait plus propre de passé direct par le fichier ssh_config ! NESPA !!!

Thx <3
Coucou

Vu mon client SSH j'ai jamais eu besoin de tester mais en théorie tu peux ajouter ce que tu veux à ta config SSH. Donc j'ajouterais juste ceci
Host 123.456.789.101
knock 123.456.789.101 -v PORT1 PORT2 PORT3
Voire même la commande complète avec le user approprié.
Ok Merci je vais essayer ça quand j'aurais fini ma migration
4 mois plus tard

Merci pour ton tuto

Tu pourrais rajouter dedans la modification de l'interface d'écoute lorsque tu en as plusieurs

Fichier à modifier : /etc/default/knockd

################################################
#
# knockd's default file, for generic sys config
#
################################################

# control if we start knockd at init or not
# 1 = start
# anything else = don't start
#
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=0

# command line options
KNOCKD_OPTS="-i eth1"

Chez moi par défaut KNOCKD_OPTS était commenté

Ah il manquait aussi un petit quelque chose dans mon copier/coller :

START_KNOCKD=1

Pour que le service se lance au démarrage 🙂

J'ai pas trop compris pourquoi par défaut il était à 0 tout comme le commentaire des interfaces... je pouvais chercher longtemps pourquoi ma règles iptables ne se mettait pas en place 🙂

J'ai pas encore tester, mais on peut lancer des scripts autres que pour la gestion de iptables ?

Comment ça ? Tu penses à quels scripts ?

Je sais pas encore exactement, mais je sais pas, à imaginer un truc du genre couper ou lancer un service, un doker, un reboot du serveur, activer / desactiver l'interface wifi.

ça peu sans doute être "pratique"

Ben là c'est que du port knocking, ça ne lance rien, c'est juste une solution pour accéder un SSH "caché".

Ah, je me suis dit, peut-être que l'on peut faire un truc du genre

[test]
  sequence    = 5000,8000,9000
  seq_timeout = 5
  command     = /root/script/test.sh
  tcpflags    = syn

Dommage

Ah oui c'est peut-être possible, n'en ayant pas besoin je ne suis pas allé plus loin.

10 mois plus tard

Bonsoir à tous.

Je viens de découvrir et de tester l'excellent Port Knocking.
Concernant Knocking, aucun problème. Et Je remercie au passage l'auteur de ce tuto .
Les soucis que j'ai rencontrés ont été avec filezilla et rutorrent (mondedié debian 7 ).

Ça ne fonctionnait pas sur mon serveur. Impossible de me connecter.
Donc,
plutôt que d'autoriser une application comme indiqué et de tout "dropper" après coup,
("sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT" par exemple
puis "sudo iptables -A INPUT -j DROP"),

Je suis parvenu à résoudre mon problème en bloquant toutes les connexions
mais en y intégrant des exceptions. Voilà à quoi ressemble la chose;

iptables -A INPUT -p tcp multiport ! --dports 20,21,80,443,45000:65000 -j ACCEPT

iptables -A INPUT -p udp -m multiport ! --dports 45000:65000 -j ACCEPT

Le trafic, ici, est droppé dans sa totalité sauf filezilla (tcp 20,21), le web (tcp80), le Https (tcp 443),
et enfin rutorrent (tcp et udp 45000 À 65000).
Le voyant de rutorrent est resté au vert et j'ai pu enfin me connecter avec filezilla.
Si cela peut aider une âme en détresse...

Correction de la ligne

iptables -A INPUT -p tcp multiport ! --dports 20,21,80,443,45000:65000 -j ACCEPT

est en fait

iptables -A INPUT -p tcp -m multiport ! --dports 20,21,80,443,45000:65000 -j ACCEPT

non à effacer je me suis planté dans le copier coller,
MILLE EXCUSES.

J'ai mis ACCEPT au lieu de DROP

je me suis planté en beauté...
Cordialement

iptables -A INPUT -p tcp -m multiport ! --dports 20,21,80,443,45000:65000 -j DROP
Cette commande semble fonctionner.
Le ftp ne fonctionne pas si je ne rajoute pas upd en 20 et 21 alors que c'est uniquement du TCP ????
iptables -A INPUT -p udp -m multiport ! --dports 20,21,45000:65000 -j DROP
Désolé pour le foutoir, vous l'aurez compris, je ne suis pas un pro de linux
et c'est ma 1ère intervention sur ce type de site.
N'hésitez pas à me corriger, merci d'avance.

Pas à facile à configurer le ftp passif ou actif sur un serveur visiblement
après un détour sur fr.wikipedia.org et des sites spécialisés.
Le port 20, 21 tcp et sur le client de 1024 à 65635 et des problèmes avec le routeur NAT...
Je vais étudier ça à tête reposée.

4 mois plus tard

Le truc bête.. jusque là, j'utilise le port knocking et n'ai aucun soucis avec, mais là, j'aimerai pouvoir me connecter depuis... Windows !
A priori, Putty ne le gère pas (ou alors je n'ai pas trouvé comment !)

Vous connaissez un petit utilitaire tout bête qui permet de knocker sur le serveur avant d'éxécuter putty ?
z.

Bonjour,

Regarde du coté de Kitty, fork de putty avec quelques options en plus, dont le port knocking dans la partie Connexion à gauche

Répondre…