Exemple : Configurer un filtre pour bloquer l’accès Telnet et SSH
Conditions préalables
Vous avez besoin de deux équipements fonctionnant Junos OS avec une liaison réseau partagée. Aucune configuration particulière au-delà de l’initialisation de base de l’appareil (interface de gestion, accès à distance, comptes de connexion des utilisateurs, etc.) est nécessaire avant de configurer cet exemple. Bien qu’il ne s’agisse pas d’une exigence stricte, l’accès de la console au périphérique R2 est recommandé.
Notre équipe de test de contenu a validé et mis à jour cet exemple.
Vue d’ensemble et topologie
Dans cet exemple, vous créez un filtre de pare-feu sans état IPv4 qui consigne et rejette les paquets Telnet ou SSH envoyés au moteur de routage local, sauf si le paquet provient du sous-réseau 192.168.1.0/30 . Le filtre est appliqué à l’interface de bouclage pour s’assurer que seul le trafic destiné à l’équipement local est affecté. Vous appliquez le filtre dans le sens de la saisie. Aucun filtre de sortie n’est utilisé. Par conséquent, tout le trafic généré localement est autorisé.
-
Pour faire correspondre les paquets provenant d’un sous-réseau ou d’un préfixe IP spécifique, vous utilisez la condition de correspondance IPv4 appliquée dans la
source-address
direction d’entrée. -
Pour faire correspondre les paquets destinés au port Telnet et aux ports SSH, vous utilisez la condition de correspondance combinée aux conditions de correspondance a
port telnet
etport ssh
IPv4 appliquées dans laprotocol tcp
direction d’entrée.
Exemple de topologie
Figure 1 affiche la topologie de test pour cet exemple. Le filtre de pare-feu est appliqué à l’appareil R2, ce qui en fait l’appareil testé (DUT). Les périphériques R1 et R2 partagent une liaison à laquelle est attribué un sous-réseau de 192.168.1.0/30. Les deux périphériques ont des adresses de bouclage attribuées à partir du préfixe 192.168.255.0/30 à l’aide d’un masque de sous-réseau /32. Les routes statiques assurent l’accessibilité entre les adresses de bouclage, car aucun protocole de passerelle intérieure n’est configuré dans cet exemple de base.
Configuration
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, consultez Utilisation de l’éditeur CLI en mode Configuration.
De par sa conception, le filtre d’échantillonnage restreint l’accès Telnet et SSH à R2, sauf s’il provient du sous-réseau partagé à R1. Si vous utilisez SSH ou Telnet pour accéder directement au périphérique R2, vous perdrez la connectivité lorsque le filtre sera appliqué. Nous vous recommandons d’avoir accès à la console lors de la configuration de cet exemple. Si nécessaire, vous pouvez utiliser le périphérique R1 en tant qu’hôte de saut pour lancer une session SSH vers R2 après l’application du filtre. Vous pouvez également envisager de modifier l’exemple de filtre pour autoriser également le sous-réseau IP affecté à la machine que vous utilisez à accéder au périphérique R2.
Pour configurer cet exemple, effectuez les tâches suivantes :
- Configuration rapide de l’interface de ligne de commande
- Configurer l’appareil R1
- Vérifier et valider la configuration sur l’appareil R1
- Configurer le périphérique R2
- Vérifier et valider la configuration sur l’appareil R2
Configuration rapide de l’interface de ligne de commande
Configuration rapide de l’appareil R1
Pour configurer rapidement l’appareil R1, modifiez les commandes suivantes selon vos besoins et collez-les dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie. Assurez-vous d’émettre un commit
en mode de configuration pour activer les modifications.
set system host-name R1 set system services ssh root-login allow set interfaces ge-0/0/0 description "Link from R1 to R2" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 set interfaces lo0 unit 0 family inet address 192.168.255.1/32 set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
Configuration rapide de l’appareil R2
Pour configurer rapidement l’appareil R2, modifiez les commandes suivantes selon vos besoins et collez-les dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie. Assurez-vous d’émettre un commit
en mode de configuration pour activer les modifications.
Pensez à l’utiliser lorsque vous apportez des modifications susceptibles d’affecter l’accès commit-confirmed
à distance à votre appareil. Activation d’une configuration Junos OS mais nécessitant une confirmation
set system host-name R2 set system services ssh root-login allow set system services telnet set interfaces ge-0/0/0 description "Link from R2 to R1" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 set interfaces lo0 unit 0 family inet filter input local_acl set interfaces lo0 unit 0 family inet address 192.168.255.2/32 set firewall family inet filter local_acl term terminal_access from source-address 192.168.1.0/30 set firewall family inet filter local_acl term terminal_access from protocol tcp set firewall family inet filter local_acl term terminal_access from port ssh set firewall family inet filter local_acl term terminal_access from port telnet set firewall family inet filter local_acl term terminal_access then accept set firewall family inet filter local_acl term terminal_access_denied from protocol tcp set firewall family inet filter local_acl term tcp-estab from protocol tcp set firewall family inet filter local_acl term tcp-estab from tcp-established set firewall family inet filter local_acl term tcp-estab then accept set firewall family inet filter local_acl term terminal_access_denied from port ssh set firewall family inet filter local_acl term terminal_access_denied from port telnet set firewall family inet filter local_acl term terminal_access_denied then log set firewall family inet filter local_acl term terminal_access_denied then reject set firewall family inet filter local_acl term default-term then accept set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
Configurer l’appareil R1
Procédure étape par étape
Pour configurer l’appareil R1, procédez comme suit :
-
Configurez les interfaces :
[edit] user@R1# set interfaces ge-0/0/0 description "Link from R1 to R2" user@R1# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.255.1/32
-
Configurez le nom d’hôte et l’itinéraire statique vers l’adresse de bouclage du périphérique R2. Vous pouvez également configurer l’accès Telnet et SSH :
[edit] user@R1# set system host-name R1 user@R1# set system services ssh root-login allow user@R1# set system services telnet user@R1# set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
Vérifier et valider la configuration sur l’appareil R1
Procédure étape par étape
Procédez comme suit pour vérifier et valider votre configuration candidate sur l’appareil R1 :
-
Confirmez la configuration de l’interface à l’aide de la
show interfaces
commande configuration mode. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.[edit] user@R1# show interfaces ge-0/0/0 { description "Link from R1 to R2"; unit 0 { family inet { address 192.168.1.1/30; } } } lo0 { unit 0 { family inet { address 192.168.255.1/32; } } }
-
Vérifiez l’itinéraire statique utilisé pour atteindre l’adresse de bouclage de l’appareil R2 et que l’accès SSH et Telnet sont activés. Utilisez les commandes et
show routing-options
show system services
en mode de configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.[edit] user@R1# show routing-options static { route 192.168.255.2/32 next-hop 192.168.1.2; } user@R1# show system services ssh { root-login allow; } telnet;
-
Lorsque vous êtes satisfait de la configuration sur l’appareil R1, validez votre configuration candidate.
[edit] user@R1# commit
Configurer le périphérique R2
Procédure étape par étape
Procédez comme suit pour configurer l’appareil R2. Vous commencez par définir le filtre de pare-feu sans état qui bloque sélectivement l’accès Telnet et SSH :
-
Positionnez-vous dans la
edit firewall family inet filter
local_acl hiérarchie :[edit] user@R2# edit firewall family inet filter local_acl
-
Définissez le terme terminal_accessde filtre . Ce terme autorise Telnet et SSH à partir du ou des préfixes source spécifiés :
[edit firewall family inet filter local_acl] user@R2# set term terminal_access from source-address 192.168.1.0/30 user@R2# set term terminal_access from protocol tcp user@R2# set term terminal_access from port ssh user@R2# set term terminal_access from port telnet user@R2# set term terminal_access then accept
-
Définissez le terme terminal_access_deniedde filtre . Ce terme rejette SSH et Telnet de toutes les autres adresses source. Ce terme est configuré pour consigner les correspondances avec le terme et pour générer une réponse explicite ICMP (Internet Control Message Protocol) de destination inaccessible à la source du paquet. Pour plus d’informations sur les options de journalisation des filtres, reportez-vous à la section Actions de journalisation des filtres du pare-feu .
Conseil :Vous pouvez utiliser cette action pour supprimer la génération de messages d’erreur ICMP vers la
discard
source. Pour plus d’informations, reportez-vous à la section Actions de terminaison du filtre de pare-feu .[edit firewall family inet filter local_acl] user@R2# set term terminal_access_denied from protocol tcp user@R2# set term terminal_access_denied from port ssh user@R2# set term terminal_access_denied from port telnet user@R2# set term terminal_access_denied then log user@R2# set term terminal_access_denied then reject user@R2# set term default-term then accept
- Optionnel.
Définissez le terme tcp-estabde filtre . Ce terme autorise l’accès sortant à Internet pour prendre en charge les connexions au cloud Juniper Mist (tcp-established est une condition de correspondance de champ binaire, , qui indique une session TCP établie, tcp-flags "(ack | rst)"mais pas le premier paquet d’une connexion TCP) :
[edit firewall family inet filter local_acl] user@R2# set term tcp-estab from protocol tcp user@R2# set term tcp-estab from tcp-established user@R2# set term tcp-estab then accept
-
Définissez le terme default-termde filtre . Ce terme accepte tout autre trafic. Rappelez-vous que Junos OS les filtres sans état ont un terme de refus implicite à leur extrémité. Le default-term remplace ce comportement en mettant fin au filtre par une action d’acceptation explicite. La terminaison du filtre entraîne l’acceptation de tous les autres trafics par le serveur de fichiers.
REMARQUE :Dans cet exemple, nous autorisons tous les autres types de trafic, mais pour votre réseau, vous pouvez sécuriser le moteur de routage. Pour plus d’informations , consultez Protection du moteur de routage .
[edit firewall family inet filter local_acl] user@R2# set term default-term then accept
-
Configurez l’interface de bouclage et appliquez le filtre dans le sens d’entrée :
[edit] user@R2# set interfaces lo0 unit 0 family inet filter input local_acl user@R2# set interfaces lo0 unit 0 family inet address 192.168.255.2/32
-
Configurez le nom d’hôte, l’interface ge-0/0/0, la route statique vers l’adresse de bouclage du périphérique R1 et activez l’accès à distance via SSH et Telnet :
[edit] user@R2# set system host-name R2 user@R2# set system services ssh root-login allow user@R2# set system services telnet user@R2# set interfaces ge-0/0/0 description "Link from R2 to R1" user@R2# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 user@R2# set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
Vérifier et valider la configuration sur l’appareil R2
Procédure étape par étape
Procédez comme suit pour vérifier et valider votre configuration candidate sur l’appareil R2 :
-
Confirmez la configuration du filtre de pare-feu sans état à l’aide de la
show firewall
commande configuration mode. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.[edit] user@R2# show firewall family inet { filter local_acl { term terminal_access { from { source-address { 192.168.1.0/30; } protocol tcp; port [ssh telnet]; } then accept; } term terminal_access_denied { from { protocol tcp; port [ssh telnet]; } then { log; reject; } } term default-term { then accept; } } }
-
Confirmez la configuration de l’interface et filtrez l’application à l’aide de la
show interfaces
commande configuration mode. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.[edit] user@R2# show interfaces ge-0/0/0 { description "Link from R2 to R1"; unit 0 { family inet { address 192.168.1.2/30; } } } lo0 { unit 0 { family inet { filter { input local_acl; } address 192.168.255.2/32; } } }
-
Vérifiez l’itinéraire statique utilisé pour atteindre l’adresse de bouclage du périphérique R1 et vérifiez que l’accès Telnet et SSH est activé. Utilisez les commandes et
show routing-options
show system services
en mode de configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.[edit] user@R2# show routing-options static { route 192.168.255.1/32 next-hop 192.168.1.1; } user@R2# show system services ssh { root-login allow; } telnet;
-
Lorsque vous êtes satisfait de la configuration sur l’appareil R2, validez votre configuration candidate.
Conseil :Pensez à l’utiliser lorsque vous apportez des modifications susceptibles d’affecter l’accès
commit-confirmed
à distance à votre appareil.[edit] user@R2# commit
Vérifier le filtre du pare-feu sans état
Vérifiez que le filtre de pare-feu pour limiter l’accès Telnet et SSH fonctionne correctement.
Vérifier les paquets acceptés
But
Vérifiez que le filtre de pare-feu autorise correctement SSH et Telnet lorsque le trafic provient du sous-réseau 192.168.1.0/30 .
Action
-
Effacez le journal du pare-feu sur votre routeur ou commutateur.
user@R2> clear firewall log
-
À partir d’un hôte dont l’adresse IP se trouve dans le sous-réseau 192.168.1.0/30 , utilisez une commande pour vérifier que vous pouvez vous connecter au périphérique à l’aide de SSH à partir d’une
ssh 192.168.255.2
adresse source autorisée. Ce paquet doit être accepté, mais les informations d’en-tête de paquet pour ce paquet ne doivent pas être consignées dans la mémoire tampon du journal du filtre du pare-feu dans le moteur de transfert de paquets. Vous serez invité à enregistrer la clé d’hôte SSH s’il s’agit de la première connexion SSH entre user ces périphériques.REMARQUE :Par défaut, le périphérique R1 sourcera le trafic SSH à partir de l’interface de sortie utilisée pour atteindre la destination. Par conséquent, ce trafic provient de l’adresse 192.168.1.1 attribuée à l’interface ge-0/0/0 du périphérique R1.
user@R1>ssh 192.168.255.2 Password: Last login: Wed Aug 19 09:23:58 2020 from 192.168.1.1 --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
Déconnectez-vous de l’interface de ligne de commande sur le périphérique R2 pour fermer la session SSH.
user@R2> exit logout Connection to 192.168.255.2 closed. user@R1>
-
À partir d’un hôte dont l’adresse IP se trouve dans le sous-réseau 192.168.1.0/30 , utilisez la
telnet 192.168.255.2
commande pour vérifier que vous pouvez vous connecter à votre routeur ou commutateur à l’aide de Telnet à partir d’une adresse source autorisée. Ce paquet doit être accepté, mais les informations d’en-tête de paquet pour ce paquet ne doivent pas être consignées dans la mémoire tampon du journal du filtre du pare-feu dans le moteur de transfert de paquets.user@host-A> telnet 192.168.255.2 Trying 192.168.255.2... Connected to 192.168.255.2. Escape character is '^]'. login: user Password: --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
Déconnectez-vous de la CLI pour fermer la session Telnet sur le périphérique R2.
user@R2:~ # exit Connection closed by foreign host. root@R1>
-
Utilisez la commande pour vérifier que la
show firewall log
mémoire tampon du journal du pare-feu sur le moteur de transfert de paquets (PFE) du périphérique R2 ne contient aucune entrée avec une adresse source dans le sous-réseau 192.168.1.0/30 .user@R2> show firewall log
Vérifier les paquets consignés et rejetés
But
Vérifiez que le filtre du pare-feu rejette correctement le trafic SSH et Telnet qui ne provient pas du sous-réseau 192.168.1.0/30 .
Action
-
Effacez le journal du pare-feu sur votre routeur ou commutateur.
user@R2> clear firewall log
-
Générez du trafic SSH provenant de l’adresse de bouclage de l’appareil R1. L’adresse source de ce trafic se trouve en dehors du sous-réseau 192.168.1.0/30 autorisé. Utilisez la
ssh 192.168.255.2 source 192.168.255.1
commande pour vérifier que vous ne pouvez pas vous connecter à l’appareil à l’aide de SSH à partir de cette adresse source. Ce paquet doit être rejeté et les informations d’en-tête du paquet doivent être consignées dans la mémoire tampon du journal du filtre du pare-feu.user@R1 ssh 192.168.255.2 source 192.168.255.1 ssh: connect to host 192.168.255.2 port 22: Connection refused root@R1>
La sortie indique que la connexion SSH est rejetée. Cette sortie confirme que le filtre génère un message d’erreur ICMP et qu’il bloque correctement le trafic SSH lorsqu’il est envoyé à partir d’une adresse source non autorisée.
-
Générez du trafic Telnet provenant de l’adresse de bouclage de l’appareil R1. L’adresse source de ce trafic se trouve en dehors du sous-réseau 192.168.1.0/30 autorisé. Utilisez la
telnet 192.168.255.2 source 192.168.255.1
commande pour vérifier que vous ne pouvez pas vous connecter à l’appareil à l’aide de Telnet à partir de cette adresse source. Ce paquet doit être rejeté et les informations d’en-tête de paquet de ce paquet doivent être consignées dans la mémoire tampon du journal du filtre du pare-feu dans le PFE.user@R1> telnet 192.168.255.2 source 192.168.255.1 Trying 192.168.255.2... telnet: connect to address 192.168.255.2: Connection refused telnet: Unable to connect to remote host
La sortie indique que la connexion Telnet est rejetée. Cette sortie confirme que le filtre génère un message d’erreur ICMP et qu’il bloque correctement le trafic Telnet lorsqu’il est envoyé à partir d’une adresse source non autorisée.
-
Utilisez la commande pour vérifier que la
show firewall log
mémoire tampon du journal du pare-feu sur le périphérique R2 contient des entrées indiquant que les paquets dont l’adresse source est 192.168.255.1 ont été rejetés.user@R2> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 15:17:11 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2 15:12:04 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2
La sortie confirme que le trafic provenant de l’adresse source 192.168.255.1 correspond au terme du terminal_access_denied filtre. La
Action
colonne affiche un pourR
indiquer que ces paquets ont été rejetés. L’interface, le protocole de transport et les adresses source et de destination sont également répertoriés. Ces résultats confirment que le filtre de pare-feu fonctionne correctement pour cet exemple.