Nous vous avons montré comment déclencher WOL à distance en « désactivant le port » sur votre routeur. Dans cet article, nous allons montrer comment l’utiliser pour protéger un service VPN.

Image par Aviad Raviv & bfick.

Préface

Si vous avez utilisé la fonctionnalité intégrée de DD-WRT pour VPN ou si vous avez un autre serveur VPN dans votre réseau, vous pourriez apprécier la possibilité de le protéger des attaques par force brute en le cachant derrière une séquence de frappe. Ce faisant, vous filtrerez les script kiddies qui tentent d’accéder à votre réseau. Cela dit, comme indiqué dans l’article précédent, le détournement de port ne remplace pas un bon mot de passe et / ou une politique de sécurité. Souvenez-vous qu’avec suffisamment de patience, un attaquant peut découvrir la séquence et effectuer une attaque de relecture.
Gardez également à l’esprit que l’inconvénient de l’implémentation est que lorsqu’un client VPN souhaite se connecter, il devra déclencher la séquence de cliquetis. préalablement et que s’ils ne peuvent pas terminer la séquence pour une raison quelconque, ils ne pourront pas du tout VPN.

Aperçu

Afin de protéger * le service VPN, nous désactiverons d’abord toutes les communications possibles avec lui en bloquant le port d’instanciation de 1723. Pour atteindre cet objectif, nous utiliserons iptables. En effet, c’est ainsi que la communication est filtrée sur la plupart des distributions Linux / GNU modernes en général et sur DD-WRT en particulier. Si vous souhaitez plus d’informations sur iptables, consultez son entrée wiki et consultez notre article précédent sur le sujet. Une fois le service protégé, nous créerons une séquence de cliquetis qui ouvrirait temporairement le port d’instanciation VPN et le fermera automatiquement après une durée configurée, tout en gardant la session VPN déjà établie connectée.

Remarque: Dans ce guide, nous utilisons le service VPN PPTP comme exemple. Cela dit, la même méthode peut être utilisée pour d’autres types de VPN, il vous suffit de modifier le port bloqué et / ou le type de communication.

Prérequis, hypothèses et recommandations

  • Il est supposé / requis que vous disposiez d’un routeur DD-WRT compatible Opkg.
  • Il est supposé / requis que vous avez déjà effectué les étapes du guide «Comment brancher votre réseau (DD-WRT)».
  • Une certaine connaissance des réseaux est supposée.

Permet de se fissurer.

Défaut «Bloquer les nouveaux VPN» sur DD-WRT

Bien que l’extrait ci-dessous de «code» fonctionnerait probablement sur toutes les distributions iptables qui se respectent et utilisent Linux / GNU, car il existe tellement de variantes que nous ne montrerons que comment l’utiliser sur DD-WRT. Rien ne vous empêche, si vous le souhaitez, de l’implémenter directement sur la box VPN. Cependant, la procédure à suivre dépasse le cadre de ce guide.

Parce que nous voulons augmenter le pare-feu du routeur, il est logique que nous ajoutions au script «pare-feu». Cela entraînerait l’exécution de la commande iptables chaque fois que le pare-feu est actualisé et garderait ainsi notre augmentation en place pour toujours.

Depuis l’interface Web de DD-WRT:

  • Allez dans «Administration» -> «Commandes».
  • Entrez le «code» ci-dessous dans la zone de texte:

    inline="$( iptables -L INPUT -n | grep -n "state RELATED,ESTABLISHED"  | awk -F : {'print $1'} )"; inline=$(($inline-2+1)); iptables -I INPUT "$inline" -p tcp --dport 1723 -j DROP

  • Cliquez sur «Enregistrer le pare-feu».
  • Terminé.

Qu’est-ce que cette commande «Voodoo»?

La commande «magie vaudou» ci-dessus fait ce qui suit:

  • Trouve où se trouve la ligne iptable qui permet à une communication déjà établie de passer. Nous le faisons, car A. Sur les routeurs DD-WRT, si le service VPN est activé, il sera situé juste en dessous de cette ligne et B. Il est essentiel pour notre objectif de continuer à permettre aux sessions VPN déjà établies de continuer à vivre après la événement de frappe.
  • Déduit deux (2) de la sortie de la commande de listage pour tenir compte du décalage provoqué par les en-têtes de colonne d’information. Une fois cela fait, ajoutez un (1) au numéro ci-dessus, de sorte que la règle que nous insérons viendra juste après la règle qui permet une communication déjà établie. J’ai laissé ici ce « problème mathématique » très simple, juste pour clarifier la logique « pourquoi il faut en réduire un à la place de la règle au lieu d’en ajouter un ».

Configuration de KnockD

Nous devons créer une nouvelle séquence de déclenchement qui permettra de créer de nouvelles connexions VPN. Pour ce faire, modifiez le fichier knockd.conf en le lançant dans un terminal:

vi /opt/etc/knockd.conf

Ajouter à la configuration existante:

[enable-VPN]
sequence = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s %IP% -p tcp --dport 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s %IP% -p tcp --dport 1723 -j ACCEPT

Cette configuration:

  • Définissez la fenêtre d’opportunité pour terminer la séquence, à 60 secondes. (Il est recommandé de le garder aussi court que possible)
  • Écoutez une séquence de trois coups sur les ports 2, 1 et 2010 (cette commande est délibérée pour faire fuir les scanners de ports).
  • Une fois la séquence détectée, exécutez la «start_command». Cette commande «iptables» placera un «accepter le trafic destiné au port 1723 d’où proviennent les coups» en haut des règles de pare-feu. (La directive% IP% est traitée spécialement par KnockD et est remplacée par l’IP de l’origine des coups).
  • Attendez 20 secondes avant d’émettre la «commande stop_».
  • Exécutez la «stop_command». Lorsque cette commande «iptables» fait l’inverse de ce qui précède et supprime la règle qui autorise la communication.
Voilà, votre service VPN ne devrait désormais pouvoir être connecté qu’après un «coup» réussi.

AuteurConseils de

Alors que vous devriez être prêt, il y a quelques points que je pense devoir mentionner.

  • Dépannage. N’oubliez pas que si vous rencontrez des problèmes, le segment « dépannage » à la fin du premier article devrait être votre premier arrêt.
  • Si vous le souhaitez, vous pouvez demander aux directives «start / stop» d’exécuter plusieurs commandes en les séparant avec un point-virgule (;) ou même un script. Cela vous permettra de faire des trucs astucieux. Par exemple, j’ai frappé m’envoyer un * e-mail me disant qu’une séquence a été déclenchée et d’où.
  • N’oubliez pas qu’il existe une application pour cela et même si elle n’est pas mentionnée dans cet article, vous êtes encouragé à utiliser le programme de heurtoir Android de StavFX.
  • En ce qui concerne Android, n’oubliez pas qu’il existe un client PPTP VPN généralement intégré au système d’exploitation par le fabricant.
  • La méthode consistant à bloquer initialement quelque chose et à continuer ensuite à autoriser une communication déjà établie peut être utilisée sur pratiquement n’importe quelle communication basée sur TCP. En fait, dans les films Knockd sur DD-WRT 1 ~ 6, j’ai fait un bon retour en arrière lorsque j’ai utilisé le protocole de bureau à distance (RDP) qui utilise le port 3389 comme exemple.
Remarque: Pour ce faire, vous devrez obtenir la fonctionnalité de messagerie sur votre routeur, qui actuellement ne fonctionne vraiment pas parce que l’instantané SVN des packages opkg d’OpenWRT est en déroute. C’est pourquoi je suggère d’utiliser knockd directement sur la boîte VPN qui vous permet d’utiliser toutes les options d’envoi d’e-mails disponibles sous Linux / GNU, comme SSMTP et sendEmail pour n’en citer que quelques-unes.

Qui dérange mon sommeil?

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici