Avez-vous déjà voulu avoir ce «coup de dortoir» spécial avec votre routeur, de façon à ce qu’il «ouvre la porte» uniquement lorsque le coup secret a été reconnu? How-To Geek explique comment installer le démon Knock sur DD-WRT.

Image de Bfick et Aviad Raviv

Si vous ne l’avez pas déjà fait, assurez-vous et consultez les articles précédents de la série:

  • Transformez votre routeur domestique en un routeur ultra-puissant avec DD-WRT
  • Comment installer des logiciels supplémentaires sur votre routeur domestique (DD-WRT)
  • Comment supprimer des publicités avec Pixelserv sur DD-WRT

En supposant que vous connaissez ces sujets, continuez à lire. Gardez à l’esprit que ce guide est un peu plus technique, et les débutants doivent être prudents lors de la modification de leur routeur.

Aperçu

Traditionnellement, pour pouvoir communiquer avec un appareil / service, il fallait initier une plein connexion réseau avec elle. Cependant, cela expose, ce qu’on appelle à l’ère de la sécurité, une surface d’attaque. Le démon Knock est une sorte de renifleur de réseau qui peut réagir lorsqu’une séquence préconfigurée est observée. Comme il n’est pas nécessaire d’établir une connexion pour que le démon knock reconnaisse une séquence configurée, la surface d’attaque est réduite tout en conservant la fonctionnalité souhaitée. Dans un sens, nous allons préconditionner le routeur avec un voulu Réponse «deux bits» (contrairement au pauvre Roger…).

Dans cet article, nous allons:

  • Montrez comment utiliser Knockd pour que le routeur Wake-On-Lan soit un ordinateur sur votre réseau local.
  • Montrez comment déclencher la séquence Knock à partir d’une application Android, ainsi que d’un ordinateur.

Remarque: Bien que les instructions d’installation ne soient plus pertinentes, vous pouvez regarder la série de films que j’ai créée «il y a longtemps», pour voir le récapitulatif complet de la configuration pour frapper. (Excusez simplement la présentation grossière).

Implications pour la sécurité

La discussion sur «la sécurité de Knockd?» Est longue et remonte à plusieurs millénaires (en années Internet), mais le résultat est le suivant:

Knock est une couche de sécurité par obscurité, qui ne doit être utilisée que pour améliorer d’autres moyens comme le chiffrement et ne doivent pas être utilisés seuls comme fin, toutes mesures de sécurité.

Prérequis, hypothèses et recommandations

  • Il est supposé que vous disposez d’un routeur DD-WRT compatible Opkg.
  • Un peu de patience car cela peut prendre un certain temps à configurer.
  • Il est fortement recommandé d’obtenir un compte DDNS pour votre IP externe (généralement dynamique).

Permet de se fissurer

Installation et configuration de base

Installez le démon Knock en ouvrant un terminal au routeur et en émettant:

opkg update ; opkg install knockd

Maintenant que Knockd est installé, nous devons configurer les séquences de déclenchement et les commandes qui seront exécutées une fois déclenchées. Pour ce faire, ouvrez le fichier «knockd.conf» dans un éditeur de texte. Sur le routeur, ce serait:

vi /opt/etc/knockd.conf

Faites ressembler son contenu à:

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

[wakelaptop]
sequence = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
command = /usr/sbin/wol aa:bb:cc:dd:ee:22 -i $( nvram get lan_ipaddr | cut -d . -f 1,2,3 ).255
tcpflags = sync

Expliquons ce qui précède:

  • Le segment «options» permet de configurer les paramètres globaux du démon. Dans cet exemple, nous avons demandé au démon de conserver un journal à la fois dans le syslog et dans un fichier. Bien que cela ne nuise pas à l’utilisation conjointe des deux options, vous devriez envisager de n’en conserver qu’une seule.
  • Le segment «wakelaptop» est un exemple de séquence qui déclenchera la commande WOL sur votre réseau local pour un ordinateur avec l’adresse MAC aa: bb: cc: dd: ee: 22.
    Remarque: La commande ci-dessus suppose le comportement par défaut d’avoir un sous-réseau de classe C.

Pour ajouter plus de séquences, copiez et collez simplement le segment «wakelaptop» et ajustez avec de nouveaux paramètres et / ou commandes à exécuter par le routeur.

Commencez

Pour que le routeur appelle le démon au démarrage, ajoutez ce qui suit au script « geek-init » du guide OPKG:

knockd -d -c /opt/etc/knockd.conf -i "$( nvram get wan_ifname )"

Cela démarrera le démon Knock sur l’interface «WAN» de votre routeur, afin qu’il écoute les paquets provenant d’Internet.

Frapper depuis Android

À l’ère de la portabilité, il est presque impératif «d’avoir une application pour ça»… donc StavFX en a créé une pour la tâche 🙂
Cette application effectue les séquences de frappe directement depuis votre appareil Android et prend en charge la création de widgets sur vos écrans d’accueil.

  • Installez l’application Knocker sur le marché Android (veuillez également être gentil et lui donner une bonne note).
  • Une fois installé sur votre appareil, lancez-le. Vous devriez être accueilli par quelque chose comme:
  • Vous pouvez appuyer longuement sur l’exemple d’icône pour le modifier, ou cliquer sur « menu » pour ajouter une nouvelle entrée. Une nouvelle entrée ressemblerait à:
  • Ajoutez des lignes et remplissez les informations nécessaires à votre frappe. Pour l’exemple de configuration WOL ci-dessus, ce serait:
  • Modifiez éventuellement l’icône en appuyant longuement sur l’icône à côté du nom de Knock.
  • Sauvez le coup.
  • Appuyez une fois sur le nouveau Knock dans l’écran principal pour l’activer.
  • Créez éventuellement un widget pour celui-ci sur un écran d’accueil.

Gardez à l’esprit que bien que nous ayons configuré l’exemple de fichier de configuration avec des groupes de 3 pour chaque port (en raison de la section Telnet ci-dessous), avec cette application, il n’y a aucune restriction sur le nombre de répétitions (le cas échéant) pour un port.
Amusez-vous en utilisant l’application que StavFX a donnée 🙂

Frapper à partir de Windows / Linux

Bien qu’il soit possible d’effectuer le Knocking avec le plus simple des utilitaires réseau, par exemple «Telnet», Microsoft a décidé que Telnet est un «risque de sécurité» et ne l’installe plus par défaut sur les fenêtres modernes. Si vous me demandez «Ceux qui peuvent renoncer à la liberté essentielle pour obtenir un peu de sécurité temporaire, ne méritent ni liberté ni sécurité. ~ Benjamin Franklin »mais je m’égare.

La raison pour laquelle nous avons défini l’exemple de séquence sur des groupes de 3 pour chaque port, c’est que lorsque telnet n’est pas en mesure de se connecter au port souhaité, il réessayera automatiquement 2 fois de plus. Cela signifie que telnet va frapper 3 fois avant d’abandonner. Il nous suffit donc d’exécuter la commande telnet une fois pour chaque port du groupe de ports. C’est également la raison pour laquelle un intervalle de temporisation de 30 secondes a été sélectionné, car nous devons attendre le délai d’expiration de telnet pour chaque port jusqu’à ce que nous exécutions le groupe de ports suivant. Il est recommandé que lorsque vous avez terminé la phase de test, vous automatisiez cette procédure avec un simple script Batch / Bash.

En utilisant notre exemple de séquence, cela ressemblerait à ceci:

  • Si vous êtes sous Windows, suivez les instructions MS pour installer Telnet.
  • Passez à une ligne de commande et lancez:
    telnet geek.dyndns-at-home.com 56
    telnet geek.dyndns-at-home.com 43
    telnet geek.dyndns-at-home.com 1443

Si tout s’est bien passé, ça devrait être ça.

Dépannage

Si votre routeur ne réagit pas aux séquences, voici quelques étapes de dépannage que vous pouvez prendre:

  • Afficher le journal – Knockd gardera un journal que vous pouvez consulter en temps réel pour voir si les séquences de frappe sont arrivées au démon et si la commande a été exécutée correctement.
    En supposant que vous utilisez au moins le fichier journal comme dans l’exemple ci-dessus, pour le voir en temps réel, émettez dans un terminal:

    tail -f /var/log/knockd.log

  • Faites attention aux pare-feu – Parfois, votre FAI, votre lieu de travail ou votre cybercafé prennent la liberté de bloquer la communication pour vous. Dans un tel cas, pendant que votre routeur écoute, les coups sur les ports bloqués par une partie de la chaîne n’atteindront pas le routeur et il aura du mal à y réagir. C’est pourquoi il est recommandé d’essayer des combinaisons qui utilisent les ports bien connus tels que 80, 443, 3389 et ainsi de suite avant d’essayer des ports plus aléatoires. Encore une fois, vous pouvez consulter le journal pour voir quels ports atteignent l’interface WAN du routeur.
  • Essayez les séquences en interne – Avant d’impliquer la complexité ci-dessus que d’autres parties de la chaîne peuvent introduire, il est recommandé d’essayer d’exécuter les séquences en interne pour voir qu’elles A. frappent le routeur comme vous pensez qu’elles devraient B. exécuter la commande / s comme prévu. Pour ce faire, vous pouvez démarrer Knockd en étant lié à votre interface LAN avec:

    knockd -d -i "$( nvram get lan_ifnameq )" -c /opt/etc/knockd.conf

    Une fois que ce qui précède est exécuté, vous pouvez diriger le client Knocking vers l’IP interne du routeur au lieu de son externe.
    Astuce: Étant donné que knockd écoute au niveau de « l’interface » et non au niveau IP, vous souhaiterez peut-être avoir une instance de KnockD en cours d’exécution sur l’interface LAN tout le temps. Comme «Knocker» a été mis à jour pour prendre en charge deux hôtes pour le cliquetis, cela le fera afin de simplifier et de consolider vos profils de cliquetis.

  • Rappelez-vous de quel côté vous allumez – Il n’est pas possible de faire tomber l’interface WAN de l’interface LAN dans la configuration ci-dessus. Si vous souhaitez pouvoir frapper, peu importe «de quel côté vous êtes», vous pouvez simplement exécuter le démon deux fois, une fois lié au WAN comme dans l’article et une fois lié au LAN comme dans l’étape de débogage ci-dessus. Il n’y a aucun problème à exécuter les deux conjointement en ajoutant simplement la commande ci-dessus au même script geek-init.

Remarques

Bien que l’exemple ci-dessus puisse être accompli par diverses autres méthodes, nous espérons que vous pourrez l’utiliser pour apprendre à accomplir des choses plus avancées.
Une deuxième partie de cet article qui cache le service VPN derrière un coup arrive, alors restez à l’écoute.

Grâce à Knocking, vous pourrez: ouvrir dynamiquement des ports, désactiver / activer des services, des ordinateurs WOL à distance et plus encore…

Laisser un commentaire