Avez-vous déjà voulu avoir ce «coup de dortoir» spécial avec votre routeur, pour qu’il «n’ouvre la porte» que 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 de consulter les articles précédents de la série:
En supposant que vous connaissez ces sujets, continuez à lire. Gardez à l’esprit que ce guide est un peu plus technique et que les débutants doivent être prudents lorsqu’ils modifient leur routeur.
Aperçu
Traditionnellement, pour pouvoir communiquer avec un appareil / service, il faudrait établir une connexion réseau avec lui. 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 un la connexion n’a pas besoin d’être établie 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 « deux bits»Réponse (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’un Application Android, ainsi qu’un ordinateur.
Remarque: bien que les instructions d’installation ne soient plus pertinentes, vous pouvez regarder la série de films J’ai créé «il y a longtemps», pour voir le récapitulatif complet de la configuration à frapper. (Excusez simplement la présentation grossière).
Implications de sécurité
La discussion sur « Quelle est la sécurité de Knockd? », c’est long et dates il y a plusieurs millénaires (en années Internet) mais l’essentiel est le suivant:
Knock est une couche de sécurité par l’obscurité, qui ne devrait être utilisée que pour d’autres moyens comme le cryptage et ne devrait pas être utilisée seule comme une 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» à installer.
- Il est fortement recommandé d’obtenir un compte DDNS pour votre adresse IP externe (généralement dynamique).
Permet de craquer
Installation et configuration de base
Installez le démon Knock en ouvrant un terminal sur le 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 à utiliser les deux options conjointement, vous devriez envisager de n’en garder qu’une.
- Le segment «wakelaptop» est un exemple de séquence qui déclenchera la commande WOL sur votre LAN pour un ordinateur avec l’adresse MAC aa: bb: cc: dd: ee: 22.
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 lancera le démon Knock sur l’interface «WAN» de votre routeur, afin qu’il écoute les paquets provenant d’Internet.
Frapper d’Android
À l’ère de la portabilité, il est presque impératif «d’avoir une application pour ça»… alors StavFX en a créé un pour la tâche 🙂
Cette application exécute les séquences de frappe directement à partir de votre appareil Android et prend en charge la création de widgets sur vos écrans d’accueil.
- Installez le Application de heurtoir du marché Android (soyez également gentil et donnez-lui 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’icône d’exemple pour la modifier, ou cliquer sur «menu» pour ajouter une nouvelle entrée. Une nouvelle entrée ressemblerait à:
- Ajoutez des lignes et remplissez les informations requises pour votre Knocking. 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 (à cause 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 qui StavFX a fait un don 🙂
Frapper de Windows / Linux
Bien qu’il soit possible d’effectuer le Knocking avec le plus simple des utilitaires réseau aka «Telnet», Microsoft a décidé que Telnet était un «risque de sécurité» et par la suite ne plus l’installer 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’éloigne du sujet.
La raison pour laquelle nous avons défini la séquence d’exemple sur des groupes de 3 pour chaque port, est que lorsque telnet ne parvient pas à se connecter au port souhaité, il réessaiera automatiquement 2 fois de plus. Cela signifie que telnet frappera 3 fois avant d’abandonner. Donc, tout ce que nous avons à faire est d’exécuter la commande telnet une fois pour chaque port du groupe de ports. C’est aussi la raison pour laquelle un intervalle de délai 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 prochain groupe de ports. Lorsque vous avez terminé la phase de test, il est recommandé d’automatiser cette procédure avec un simple script Batch / Bash.
En utilisant notre exemple de séquence, cela ressemblerait à:
- Si vous êtes sous Windows, suivez les Instruction MS pour installer Telnet.
- Passez à une ligne de commande et lancez un problème:
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 tout.
Dépannage
Si votre routeur ne réagit pas aux séquences, voici quelques étapes de dépannage que vous pouvez suivre:
- Afficher le journal – Knockd gardera un journal que vous pourrez 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 un problème dans un terminal:tail -f /var/log/knockd.log
- Faites attention aux pare-feu – Parfois, votre FAI, votre lieu de travail ou votre cybercafé, se permet de bloquer la communication à votre place. Dans un tel cas, pendant que votre routeur peut être à l’écoute, les coups sur les ports bloqués par n’importe quelle 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 afficher 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 tout 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’adresse IP interne du routeur au lieu de son externe.
Astuce: étant donné que knockd écoute au niveau «interface» et non au niveau IP, vous souhaiterez peut-être qu’une instance de KnockD s’exécute en permanence sur l’interface LAN. Comme « Heurtoir»A été mis à jour pour prendre en charge deux hôtes pour frapper, ce faisant, afin de simplifier et de consolider vos profils de frappe. - Rappelez-vous de quel côté vous êtes – Il n’est pas possible de frapper l’interface WAN à partir de l’interface LAN dans la configuration ci-dessus. Si vous souhaitez être en mesure de frapper n’importe quel côté 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 d’en haut. Il n’y a aucun problème à exécuter les deux en même temps en ajoutant simplement la commande ci-dessus au même script geek-init.
Remarques
Bien que l’exemple ci-dessus puisse être réalisé par diverses autres méthodes, nous espérons que vous pourrez l’utiliser pour apprendre comment accomplir des choses plus avancées.
Une deuxième partie de cet article qui cache le service VPN derrière un coup est à venir, alors restez à l’écoute.