6Aug
Nous vous avons montré comment déclencher WOL à distance par "Port Knocking" 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 pouvez apprécier la possibilité de le protéger des attaques par force brute en le cachant derrière une séquence de cliquetis. En faisant cela, vous allez filtrer les script kiddies qui essaient d'accéder à votre réseau. Cela dit, comme indiqué dans l'article précédent, le portage ne remplace pas un bon mot de passe et / ou une politique de sécurité.Rappelez-vous qu'avec suffisamment de patience, un attaquant peut découvrir la séquence et effectuer une attaque de rejeu.
Gardez également à l'esprit que l'inconvénient de cette implémentation est que, lorsqu'un client VPN veut se connecter, il doit déclencher la séquence de clics avant et que s'ils ne peuvent pas terminer la séquence pour une raison quelconque, ilsne sera pas capable de VPN du tout.
Présentation
Afin de protéger * le service VPN, nous allons d'abord désactiver toutes les communications possibles avec lui en bloquant le port d'instanciation de 1723. Pour atteindre cet objectif, nous utiliserons iptables. C'est parce que c'est ainsi que la communication est filtrée sur les distributions Linux / GNU les plus 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 jetez un oeil à notre article précédent sur le sujet. Une fois le service protégé, nous créerons une séquence de cliquetis qui ouvrira temporairement le port d'instanciation VPN et le fermera automatiquement après un laps de temps configuré, tout en maintenant la session VPN déjà établie connectée.
Remarque: Dans ce guide, nous utilisons le service VPN PPTP à titre d'exemple. Cela dit, la même méthode peut être utilisée pour d'autres types de VPN, il vous suffit de changer le port bloqué et / ou le type de communication.
Prérequis, hypothèses et amp;Recommandations
- Il est supposé / requis que vous ayez un routeur DD-WRT activé par Opkg.
- Il est supposé / requis que vous ayez déjà exécuté les étapes du guide "Comment entrer dans votre réseau( DD-WRT)".
- Certaines connaissances en réseau sont supposées.
Faisons craquer.
par défaut "Bloquer les nouveaux VPN" règle sur DD-WRT
Alors que l'extrait ci-dessous de "code" fonctionnerait probablement sur tous les iptables utilisant la distribution Linux / GNU, car il y a tellement de variantes là-bas nous allonsmontre seulement comment l'utiliser sur DD-WRT.Rien ne vous empêche, si vous le souhaitez, de l'implémenter directement sur la boîte VPN.Cependant, comment le faire, est au-delà de la portée de ce guide.
Parce que nous voulons augmenter le Firewall du routeur, il est logique que nous l'ajoutions au script "Firewall".Cela entraînerait l'exécution de la commande iptables chaque fois que le pare-feu est actualisé, ce qui maintient notre augmentation en place pour les gardes.
De Web-GUI de DD-WRT:
- Allez dans "Administration" - & gt;"Commandes".
- Entrez le "code" ci-dessous dans la zone de texte:
inline = "$( iptables -L INPUT -n | grep -n" état RELATED, ESTABLISHED "| awk -F:{ 'print $ 1'})";inline = $( ($ inline-2 + 1));iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP
- Cliquez sur "Save Firewall".
- Fait.
Quelle est cette commande "Voodoo"?
La commande "magie vaudou" ci-dessus fait ce qui suit:
- Trouve où est la ligne iptable qui permet à la communication déjà établie de passer. Nous faisons cela, parce que 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 à notre objectif de continuer à permettre aux sessions VPN déjà établies de continuer après lefrapper l'événement.
- 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, ajoute un( 1) au nombre 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é ce "problème mathématique" très simple ici, juste pour faire la logique de "pourquoi on doit réduire l'un de la place de la règle au lieu d'en ajouter un" clair.
KnockD configuration
Nous devons créer une nouvelle séquence de déclenchement qui permettra de créer de nouvelles connexions VPN.Pour ce faire, éditez le fichier knockd.conf en émettant un terminal:
vi /opt/etc/ knockd.conf
Ajouter à la configuration existante:
[enable-VPN] Séquence
= 02,02,02,01,01,01,20102010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s% IP% -p tcp --dport 1723 -j ACCEPT
cmd_timeout = 20
stop_commande = iptables -D INPUT -s% IP% -ptcp --dport 1723 -j ACCEPT
Cette configuration va:
- Définir la fenêtre d'opportunité pour terminer la séquence, à 60 secondes.(Il est recommandé de garder le plus court possible)
- Écoutez une séquence de trois coups sur les ports 2, 1 et 2010( cet ordre est délibéré de jeter les scanners de ports hors piste).
- Une fois la séquence détectée, exécutez la commande "start_command".Cette commande "iptables" placera un "trafic d'acceptation destiné au port 1723 d'où proviennent les frappes" en haut des règles du pare-feu.(La directive% IP% est traitée spécialement par KnockD et est remplacée par l'adresse IP de l'origine des frappes).
- Attendez 20 secondes avant d'émettre la commande "stop_command".
- Exécute la commande "stop_command".Où cette commande "iptables" fait l'inverse de ce qui précède et supprime la règle qui permet la communication.
Auteur Astuces de
Alors que vous devriez être tous ensemble, il ya quelques points que je pense avoir besoin de 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 faire en sorte que les directives "start / stop" exécutent plusieurs commandes en les séparant avec un semi-colen( ;) ou même un script. Cela vous permettra de faire des choses intéressantes. Par exemple, j'ai envoyé un email * me disant qu'une séquence a été déclenchée et d'où.
- N'oubliez pas qu '"il y a une application pour ça" et même si ce n'est pas mentionné dans cet article, vous êtes encouragé à attraper le programme heurtoir Android de StavFX.
- Alors que sur le sujet d'Android, n'oubliez pas qu'il existe un client VPN PPTP généralement intégré dans le système d'exploitation du fabricant.
- La méthode consistant à bloquer quelque chose initialement, puis à continuer à autoriser une communication déjà établie, peut être utilisée sur pratiquement toute communication basée sur TCP.En fait, dans le Knockd sur DD-WRT 1 ~ 6 films, je l'ai fait en arrière quand, j'ai utilisé le protocole de bureau à distance( RDP) qui utilise le port 3389 à titre d'exemple.
Qui dérange mon sommeil?