Login
blog > farwarx > Knockd knock... Il y a quelqu'un? Ouvre la porte!!!

Knockd knock... Il y a quelqu'un? Ouvre la porte!!!

Posté par : farwarx - Le Mercredi 2 Juin 2010 à 22:12

port knocking

 

 

Qu'est ce qui ce cache derrière ce titre porteur?

Le port knocking ou comment mettre en place un cadena à code sur votre serveur!!!

Un deamon (service) tourne sur votre serveur (pc) et écoute les tentatives de connections.

Vous allez configurer une séquence qui exécutera une action (script ou autre).

Cette séquence ou combinaison est illimitée et traite sur les ports UDP et TCP, donc (65536 x 2) x X fois !!!

Donc pour que quelqu'un la trouve, il y a du boulot!!!! Surtout que vous configurez un timing maximum pour la séquence!!!

Un bon petit cadena que vous aurez là!!!!!

 

Quelle utilisation?

Etant donné que vous pouvez exécuter n'importe quelle action une fois que la séquence est jouée, tout est possible.

Vous pouvez relancer votre serveur, relancer des services, mettre à jour des programmes, ouvrir un port pour vous connectez à distance, ouvrir un accès pour X temps, ouvrir l'accès Webmin pendant 2 secondes après la séquence......

 

Configuration

Récupérez tout d'abord knock et knockd (via votre gestionnaire de package ou les sources à compiler), au choix!

 

Fichier : /etc/knockd.conf

 

[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence    = 7000:tcp,8000:udp,9000:tcp
        seq_timeout = 5
        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

[closeSSH]
        sequence    = 9000:tcp,8000:udp,7000:tcp
        seq_timeout = 5
        command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

[opencloseSSH]
        sequence      = 80:udp,80:tcp,80:udp,80:tcp,443:tcp,80:udp,443:udp,80:tcp,80:udp
        seq_timeout   = 5
        tcpflags      = syn
        start_command = /sbin/iptables -A INPUT -s %IP% -p tcp
--dport 22 -j ACCEPT
        cmd_timeout   = 10
        stop_command  = /sbin/iptables -D INPUT -s %IP% -p tcp
--dport 22 -j ACCEPT

 

Cet exemple vous montre quelques possibilités du service.

  • openSSH: Si la séquence est jouée en moins de 5 secondes, ouverture du port 22 pour l'adresse IP qui a joué la séquence.
  • closeSSH: Idendtique à la précédente mais ferme le port.
  • opencloseSSH: permet d'ouvrir le port SSH pour l'adresse IP qui a joué la séquence pour 10 secondes, ensuite referme le port. J'ai réalisé cet exemple avec les port 80 et 443, mais vous pouvez utiliser les ports 1 à 65536 (il suffit qu'ils soient accessibles à votre serveur, dans mon cas ils ne l'étaient pas).

Ce dernier exemple n'est possible que si votre serveur est paramétré pour autoriser les connexions déjà établies.

 

Exemple configuration iptables

 

iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

 

Utilisation

Côté serveur

 

knockd -d -c /etc/knockd.conf

 

Côté client

Sur votre PC client (quelque soit l'OS), vous allez devoir jouer la séquence prédéfinie.

La séquence est donc une tentative de connexion sur un port TCP ou UDP sur un port donné.

Vous pouvez réaliser ceci avec un telnet (tcp) mais je ne sais pas comment en udp...

Enfin, knock est là pour ça, c'est le client du deamon knockd.*

 

 

Exemples:

 

knock myserver.example.com 123:tcp 456:udp 789:tcp

knock serveur 80:udp 80:tcp 80:udp 80:tcp 443:tcp 80:udp 443:udp 80:tcp 80:udp

knock serveur.domaine.tld 7000:tcp 8000:udp 9000:tcp

 

Maintenant à vous de voir si cela vous sera utile en entreprise, chez vous ou pas.

Personnellement, je n'en ai pas l'utilité au boulot, mais pour chez moi, ça va venir.

Ouvrir un accès SSH sur mon serveur via une séquence, me permettrai de bien mieux sécuriser mon port plutôt que de l'ouvrir 24h/24. A moi le tunneling ;)

Pour un serveur hébergé (1and1, OVH, Gandi... etc...), l'intêret est plus grand, sachant que c'est vous qui gérer le parefeu.

 

Les liens qui m'ont servis

 

 

Billet sous licence Creative Commons BY-NC-SA

Maxime T.
Rédacteur chez Kookyoo.net > blog/farwarx
www.teissedre.info

 

 

NB: Pour en parler, n'hésitez pas à me contacter ci-dessous.







Commentaires 4 commentaires

Seb le 02 Juin 2010 à 23:36

Alors ça pour une idée, c'est vraiment pas mal j'aurais pas pensé à utiliser ce type de séquence pour définir un mot de passe / commande. Vraiment pas mal.

farwarx le 02 Juin 2010 à 23:46

Héhé ;)
En plus les séquences sont quasiment impossibles à trouver vu le nombre aléatoire!!!
T'as vu la photo? Je l'ai prise moi même et j'ai appliqué 2 filtres ^^

Seb le 03 Juin 2010 à 10:03

J'avais pas vu la poignée de porte (mauvais angle et luminosité d'écran hier soir), d'ailleurs ça fait un moment que j'ai pas jeté un oeil à Caioucaiou.

farwarx le 03 Juin 2010 à 12:28

Caioucaiou n'est pas à jour depuis un ptit moment.... je vais essayer de MAJ ce weekend mais pas sur, je ferai un shoot ;)
www.caioucaiou.fr



.laisser un commentaire




Codes html interdits. Les liens sont convertis automatiquement.

Réalisation

Code & Design : Sébastien Cardona

Page générée en : 0.057198s