nfumolea
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    SAE 2.01 Q1. | Nom du réseau | Adresse IP | Masque | Passerelle | ID VLAN | Ports associés | | ---------------- | ----------------- | --------------- | -------------- | -------- | -------------------------------- | | DMZ | 172.16.0.0/24 | 255.255.255.0 | 172.16.0.254 | VLAN 100 | Gi0/0-3 de SW-1 | | R&D | 172.16.1.0/24 | idem | 172.16.1.254 | VLAN 110 | Gi3/0 de SW-2 | | PROD | 172.16.2.0/24 | idem | 172.16.2.254 | VLAN 120 | Gi3/1 de SW-2 | | ADMIN | 172.16.3.0/24 | idem | 172.16.3.254 | VLAN 170 | Gi1/0-3 de SW-1 et 2 | | COMPTA | 192.168.86.0/25 | 255.255.255.128 | 192.168.86.126 | VLAN 130 | Gi0/0-3 de SW-3 | | VENTE | 192.168.86.128/27 | 255.255.255.224 | 192.168.86.158 | VLAN 140 | Gi1/0-3 de SW-3 | | ADMIN | 192.168.86.160/29 | 255.255.255.248 | 192.168.86.166 | VLAN 170 | Gi3/0-3 de SW-3 et Gi2/0 (trunk) | | FAI R-GW-1 - R-1 | 10.10.10.0/30 | 255.255.255.252 | 10.10.10.2 | | | | FAI R1-R2 | 10.10.10.4/30 | 255.255.255.252 | 10.10.10.6 | | | | FAI R1-R3 | 10.10.10.8/30 | 255.255.255.252 | 10.10.10.10 | | | | FAI R2-R3 | 10.10.10.12/30 | 255.255.255.252 | 10.10.10.14 | | | | FAI R-2 - R-GW-2 | 10.10.10.16/30 | 255.255.255.252 | 10.10.10.18 | | | Q3. Nous attribuons les adresses IP aux différents hôtes des réseaux selon le schéma de topologie ci-dessous : ![Capture d'écran 2024-04-28 150611](https://hackmd.io/_uploads/SJ0rM13W0.png) Dans le VLAN 170, nous attribuons à l'interface de gestion SVI de SW-3 l'adresse 192.168.86.161/29 et à celle de R-GW-2 l'adresse 192.168.86.166/29, qui constitue aussi l'adresse de passerelle du VLAN 170. Nous procédons de façon similaire pour le réseau siège. Q4. Pour configurer les VLAN sur SW-3, nous saisissons la commande vlan suivie du numéro du VLAN, puis nous lui attribuons un nom grâce à la commande name suivie du nom défini dans la topologie. Nous configurons les ports d'accès aux différents VlAN depuis le mode de configuration des interfaces (int suivie du nom et du type de l'interface, ou int range pour séléctionner plusieurs interfaces, tel que défini dans la topologie), et nous passons le port en mode d'accès grâce à la commande switchport mode access, puis switchport access vlan suivie du numéro du VLAN, pour associer le ou les ports au VlAN. Enfin, nous saisissons no shut afin que les interfaces soient actives. Nous configurons également le lien d'agrégation trunk (trames etiquetees 802.1q) sur le port Gi2/0 de SW-3. Pour ce faire, nous entrons dans le mode de configuration de l'interface Gi2/0, puis nous saisissons la commande switchport trunk encapsulation dot1q, afin que le port prenne en charge l'activation du mode trunk (la commande est requise qur un commutateur de couche 3 tel que ceux utilisés sur GNS3, mais pas sur un commutateur de couche 2), puis nous saisissons switchport mode trunk afin d'activer le lien d'agrégation sur le port. Nous choisissons ensuite le VLAN 170 comme VLAN natif sur lequel les trames étiquetées 802.1q seront acheminées, grâce à la commande switchport trunk native vlan 170. Enfin, nous activons l'interface en saisissant no shut. Q5. Nous configurons ensuite le routage inter-VLAN sur le routeur R-GW-2. Pour ce faire, nous activons l'interface Gi0/2 (reliée à l'interface Gi2/0 de SW-3) avec la commande no shut, puis nous créons les sous interfaces Gi0/2.130, Gi0/2.140 et Gi0/2.170 (commande int suivie de la sous interface). Nous saisissons la commande encapsulation dot1q 130 pour la sous interface Gi0/2.130 (respectivement 140 et 170), afin que l'interface traite les trames étiquetées 802.1q et que le routeur route les paquets encapsulés dedans. Nous attribuons ensuite à chaque sous interface la dernière adresse IP disponible de la plage de chaque VLAN lui correspondant (commande ip address suivie de l'adresse et du masque de sous réseau). Cette adresse IP constituera l'adresse de passerelle des VLAN. Concernant la sous interface Gi0/2.170, nous précisons qu'elle doit prendre en charge les trames du VLAN natif 170, en ajoutant le mot clé "native" à la fin de la commande encapsulation dot1q (encapsulation dot1q 170 native). Le routage inter-VLAN est alors fontionnel. Q6. Nous réalisons une capture Wireshark entre Gi2/0 de SW-3 et Gi0/2 de R-GW-2, et nous voyons que l'encapsulation 802.1Q est active ![screenq6](https://hackmd.io/_uploads/HkzuL29WC.jpg) Q7. Nous configurons le commutateur SW-3 et le routeur R-GW-2 afin qu'il soit possible de les administrer en SSH. Pour ce faire, nous attribuons une adresse IP à l'interface SVI (Switch Virtual Interface) de SW-3. C'est l'interface du VLAN 170 qui jouera le rôle de SVI, donc nous lui attribuons l'adresse IP 192.168.86.161/29 (cf. topologie) en entrant dans le mode de configuration d'interface (int vlan 170) puis en saisissant la commande ip address 192.168.86.161 255.255.255.248. Nous configurons également l'adresse de passerelle par défaut du commutateur afin que celui-ci puisse être joignable des autres réseaux et VLAN, par la commande ip default-gateway 192.168.86.166 (adresse de passerelle du VLAN 170). Comme SW-3 est un commutateur de couche 3, nous désactivons le routage (no ip routing) afin que l'adresse de passerelle soit prise en compte. Nous nous occupons ensuite de la configuration du service SSH. Pour ce faire, nous créons un nom de domaine IP hôte VLAN170 grâce à la commande ip domain name VLAN170. Nous générons ensuite des clés RSA en utilisant un modulus de 4096 bits, grâce à la commande crypto key generate rsa (puis saisir 4096 et entrée). Nous configurons les actifs pour qu'ils exécutent SSHv2, grâce à la commande ip ssh version 2, et nous ajoutons un compte d’utilisateur pour l’administration ayant pour nom d’utilisateur admin et comme mot de passe gtrnet, grâce à la commande username admin secret gtrnet. Nous utilisons l’utilisateur local et n’autorisons que les connexions distantes SSH (pas Telnet), grâce aux commandes suivantes : ``` line vty 0 4 login local transport input ssh ``` Nous pouvons visualiser les connexions SSH avec show ip ssh ou show ssh. Nous pouvons également attribuer un mot de passe à la console du commutateur, grâce aux commandes suivantes : ``` line console 0 password gtrnet (ou autre mdp) login ``` Q8. Après avoir effectué ces étapes, nous saisissons depuis VPC5 ou VPC6 la commande ssh 192.168.86.161 (ou .166) pour tester la connexion SSH, cependant nous obtenons l'erreur suivante : ![Capture d'écran 2024-04-28 173520](https://hackmd.io/_uploads/HkWAhkhbR.png) En effet, l'algorithme d'échange des clés SSH n'est pas le même entre les machines Linux et les actifs Cisco. Pour résoudre ce problème, nous ajoutons les lignes suivantes au fichier /etc/ssh/ssh_config : ``` Host * KexAlgorithms +diffie-hellman-group-exchange-sha1 Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsa ``` (source : https://unix.stackexchange.com/questions/615987/ssh-to-cisco-device-fails-with-diffie-hellman-group1-sha1 ) Nous réessayons ensuite de nous connecter avec le nom d'utilisateur admin (cf. Q7) grâce à la commande ssh -l admin 192.168.86.161 , et nous voyons que la connexion s'effectue avec succès : ![Capture d'écran 2024-04-28 180244](https://hackmd.io/_uploads/ryUHXl2bR.png) Q10. Nous configurons le protocole VTP sur les commutateurs SW-1, SW-2 et MLS-1 du réseau siège. Pour ce faire, nous créons d'abord les VLAN et affectons les ports à ces derniers, selon la procédure vue à la Q4. Nous configurons les ports Gi2/0 de MLS-1 et SW-1, et Gi2/1 de MLS-1 et SW-2, en mode trunk afin que les trames étiquetées soient acheminées au routeur MLS-1 de couche 3 qui se chargera du routage inter-VLAN, ainsi que pour assurer l'acheminement des trames VTP. Nous activons le protocole VTP et passons les commutateurs SW-1 et SW-2 en mode client VTP, afin qu'ils reçoivent les VLAN depuis MLS-1 sur lequel ils seront créés, grâce à la commande vtp mode client. Nous passons le commutateur MLS-1 en mode serveur VTP afin qu'il déploie sur les clients VTP les VLAN, grâce à la commande vtp mode server. Nous choisissons le nom de domaine VTP "siege" ainsi que le mot de passe VTP gtrnet. Nous appliquons ce nom de domaine et ce mot de passe sur les 3 commutateurs grâce aux commandes vtp domain siege , et vtp password gtrnet. Q12. Nous configurons le routage inter-VLAN sur le commutateur de couche 3, simplement en saisissant la commande ip routing, afin que le routage entre les interfaces (physiques et virtuelles) soit effectué. Une SVI (Switch Virtual Interface) est une interface virtuelle, le plus souvent reliée à un VLAN, et qui sert à administrer le commutateur à distance via des protocoles applicatifs (couche 7) tels que SSH. Elles possèdent une adresse IP afin d'être accessible sur les réseaux IP. Q13. Nous réalisons un test de connectivité entre le serveur du VLAN DMZ et la machine VPC3 du VLAN R&D, et nous réalisons en même temps une capture Wireshark entre les commutateurs SW-1 et MLS-3, ce qui nous permet de valider l'encapsulation 802.1Q (nous voyons ci-dessous que la trame ethernet porte une étiquette 802.1Q). ![screenq13](https://hackmd.io/_uploads/ByfLk_TbR.jpg) Q14. Nous configurons l'interconnexion entre MLS-1 et R-GW-1. Pour ce faire, nous créons le nouveau sous-réseau 172.16.4.0/24, servant spécifiquement au routage entre MLS-1 et R-GW-1, et nous passons l'interface Gi0/0 de MLS-1 en couche 3, par la commande no switchport, afin que cette interface prenne en charge l'attribution d'une adresse IP. Nous attribuons ensuite l'adresse IP 172.16.4.1/24 à l'interface Gi0/0 de MLS-1, et l'adresse IP 172.16.4.254/24 à l'interface Gi0/0 de R-GW-1. Nous créons ensuite la route par défaut 0.0.0.0/0 pointant sur le prochain saut 172.16.4.254, sur MLS-1, afin que les paquets à destination des réseaux externes, non connus de la table de routage de MLS-1, soient envoyés à R-GW-1 (interface Gi0/0) puis sur les réseaux externes. La commande à saisir sur MLS-1 est donc ip route 0.0.0.0 0.0.0.0 172.16.4.254. Nous créons également une route résumée sur R-GW-1 vers le réseau résumé 172.16.0.0/16 (résumant l'ensemble des réseaux du siège) et pointant sur le prochain saut 172.16.4.1 (interface Gi0/0 de MLS-1), afin que les paquets à destination des VLAN du siège soient correctement acheminés par ces derniers par R-GW-1. Q15. Nous affichons ci-dessous la table de routage de MLS-1 : ![screenQ15MLS1](https://hackmd.io/_uploads/H1yRHupbA.jpg) Nous voyons que la route statique par défaut 0.0.0.0/0 est correctement configurée et pointe bien sur R-GW-1 (adresse IP 172.16.4.254/24), et que l'ensemble des VLAN sont des réseaux directments connectés à MLS-1, ce qui est cohérent par rapport à la toplogie mise en place. Nous affichons également la table de routage de R-GW-1 et, comme nous le voyons ci-dessous, le routeur possède la route statique définie précédemment, vers le réseau 172.16.0.0/16 résumant tous les VLAN et pointant sur l'interface Gi0/0 de MLS-1, d'adresse 172.16.4.1/24, ainsi que les réseaux directements connectés 172.16.4.0/24 (liaison MLS-1 / R-GW-1) et 10.10.10.0/30 (liaison R-GW-1 / R1 du FAI) : ![screenQ15R-GW-1](https://hackmd.io/_uploads/ByTsvuTW0.jpg) Q16. Nous configurons le protocole SSH sur l'ensemble des actifs réseaux du siège, en suivant la procédure décrite à la Q7. Nous ne désactivons pas le routage ni ne configurons d'adresse de passerelle sur MLS1 car il s'agit d'un commutateur de couche 3 possédant déjà les routes vers les différents VLAN, mais nous le faisons sur SW-1 et 2 avec l'adresse de passerelle du VLAN 170 172.16.3.254/24, car ils ne possèdent pas de table de routage et doivent savoir où acheminer les paquets à destination d'un autre réseau que celui de la SVI (VLAN 170), et être joignables depuis ces autres réseaux pour la configuration en SSH. Nous choisissons le nom de domaine IP VLAN170RGW1 pour R-GW-1, VLAN170MLS1 pour MLS1, VLAN170SW1 pour SW-1 et VLAN170SW2 pour SW-2. Q18. Nous configurons l'adresse IP 10.10.10.1/30 sur l'interface externe (Gi0/1) du routeur R-GW-1. Q20. Nous activons le protocole OSPF sur les routeurs grâce à la ocmmande router ospf 1 (processus ospf 1). Comme il y a une zone de backbone entre R1, R2 et R3, nous choisissons l'aire de routage 0 pour cette zone (1 pour R-GW-1 / R1 et 2 pour R-2 / R-GW-2), et nous définissons les identifiants des routeurs en x.x.x.x avec x le numéro du routeur, par la commande router-id x.x.x.x et nous autorisons les différents réseaux de la zone de routage, à être diffusés dans les paquets LSA. Nous saisissons pour cela la commande network (adresse IP masque de sous réseau) area (numéro d'aire). Nous ne diffusons pas le réseau reliant le routeur R3 au réseau de la VM, car il ne fait pas partie de la zone de routage. De plus, les routeurs R-GW-1 et R-GW-2 ne participant pas au routage OSPF, nous désactivons la diffusion des paquets LSA sur ces interfaces grâce à la commande passive interface suivie du type et du numéro de l'interface. Nous propageons la route par défaut depuis R3 grâce à la commande default-information originate, et nous sauvegardons la configuration OSPF grâce à la commande clear ip ospf process 1. Les routeurs R1, R2 et R3 sont des routeurs ABR car ils relient plusieurs aires de routage OSPF, et R3 est un routeur ASBR car il est à la frontière du domaine de routage OSPF. Q21. Nous affichons ci-dessous la table de routage de R-1 : ![screenQ21routesospfR1](https://hackmd.io/_uploads/HJ48EwRbA.jpg) Nous voyons que la totalité des réseaux de la zone OSPF sont présents dans la table de routage. Les réseaux reliant R1 à R2 et à R3 sont directements connectés, et le réseau 10.10.10.12/30 (reliant R-2 à R-3) est acquis par le protocole OSPF avec une métrique de 2 (coût de 1 pour atteindre R2 ou R3 puis coût de 1 pour atteindre l'interface du réseau de destination). La métrique est par ailleurs égale pour les 2 prochains sauts 10.10.10.10/30 et 10.10.10.6/30, les deux apparaissent donc sur la même route, mais le premier a été configuré en OSPF avant le second, et apparaît donc en haut de la liste. Il y a répartition de charge entre les 2 prochains sauts pour cette route, avec un envoi des paquets en priorité vers 10.10.10.10/30 et vers le second (10.10.10.6/30) si le premier est encombré. Le réseau 10.10.10.16/30, avec une métrique de 2 (coût de 1 vers 10.10.10.6/3 soit l'interface Gi0/2 de R-2 puis coût de 1 vers l'interface de destination du réseau 10.10.10.16/30), est présent, avec l'acronyme IA signifiant inter area soit un réseau situé dans une autre aire de routage. Nous observons un résultat similaire pour R2 et R3 tel que nous le voyons ci-dessous : ![screenQ21routesospfR2](https://hackmd.io/_uploads/ry6UEDCZ0.jpg)7 ![screenQ21routesospfR3](https://hackmd.io/_uploads/BkODEwCb0.jpg) Q22. Pour vérifier si un message ICMP passe par R3 alors qu'il est destiné à R-GW-2, nous réalisons une capture de flux entre R1 et R3 et vérifions si des paquets ICMP d'adresse source celle de R-GW-1 et d'adresse de destination celle de R-GW-2, transitent sur cette liaison. Q23. Nous choisissons l'adresse IP 172.16.17.253/24 prise dans le réseau de l'interface ens18 du serveur, puis nous l'attribuons à l'interface Gi0/1 de R-3. Nous créons également la route par défaut vers l'adresse de passerelle du réseau du serveur GNS3 (172.16.17.254/24). Q24. Nous configurons la translation d'adresse sur le routeur R-3, en passant les interfaces Gi0/0 et Gi0/3 en ip nat inside, et l'interface Gi0/1 en ip nat outside. Nous créons une ACL permettant au réseau résumé 10.10.10.0/27 (résumant les interconnexions du FAI), d'être translaté, grâce à la commande access-list permit 10.10.10.0 0.0.0.31 , puis nous saisissons la commande ip nat inside source list 1 interface Gi0/1 overload, afin de mettre en place une translation NAT dynamqiue avec surcharge, permettant à tous les paquets de sortir sur Internet avec la même adresse IP mais avec un port TCP/UDP différent et ainsi les différentier. Q25. Nous affichons la table de translation d'adresses de R3, après avoir fait un test de connectivité vers le serveur DNS de Google (8.8.8.8) depuis R1 et R2, grâce à la commande sh ip nat translations. Nous en voyons ci-dessous le résultat : ![screenQ25tablenatR3](https://hackmd.io/_uploads/By3uJY0bC.jpg) Comme nous le voyons ci-dessus, la table contient les adresses internes privée et translatées en adresses externes publiques. Nous voyons que l'adresse privée 10.10.10.9/30 (correspondant au port Gi0/3 du routeur R1), ayant le port 1 (même si icmp est un protocole de couche 3, un port est attribué dans la table des translations), est traduite par l'adresse externe 172.16.17.253/24 ayant aussi le port 1, et avec l'adresse de destination 8.8.8.8 et le port 1. Il en est de même pour le test de connectivité de R2 (seconde ligne ci-dessus). Q27. Nous configurons également le NAT sur R-GW-1 et R-GW-2. Nous passons l'interface Gi0/0 en ip nat inside et l'interface Gi0/1 en ip nat outside. Nous créons une ACL sur R-GW-1 permettant de translater le réseau résumé des VLAN : 172.16.0.0/16 (commande access-list 1 permit 172.16.0.0 0.0.255.255). Nous configurons également un NAT dynamique surchargé (même commande qu'à la Q24). Sur R-GW-2, le réseau résumé 192.168.86.0/24 est autorisé à être translaté, et les commandes ip nat inside sont exécutées sur les sous interfaces Gi0/2.130, Gi0/2.140 et Gi0/2.170 et non sur l'interface Gi0/2. Q28. Nous affichons la table des translations d'adresse du routeur R-GW-1 : ![screenQ28tablenatRGW1](https://hackmd.io/_uploads/HJc7D7MzA.jpg) Nous voyons que lorsque VPC1 envoie une requête ICMP vers le serveur 8.8.8.8, son adresse privée 172.16.3.1/24 est translatée par l'adresse publique 10.10.10.1/30 qui correspond à l'adresse externe du routeur R-GW-1 ayant effectué la translation. Le port 29440 permet d'identifier le VPC1 afin que le routeur sache lui envoyer un paquet qui lui est destiné, s'il reçoit un paquet sur son IP externe et sur ce port. Nous observons un résultat similaire pour R-GW-2, avec l'adresse privée de VPC5 192.168.86.1/25 translatée par l'adresse publique 10.10.10.18/30 et le port 48300 : ![screenQ28natRGW2](https://hackmd.io/_uploads/SyerFQGzC.jpg) Q29. Le serveur situé dans la DMZ n'est pas accessible à partir des ordinateurs de Filiale, car son adresse IP se situe dans le réseau DMZ qui est privé (partie interne du NAT du siège). L'adresse privée du serveur n'est donc pas accessible des réseaux externes à celui de la DMZ et il faudrait mettre en place une redirection de ports vers le serveur, afin que le trafic reçu sur l'adresse externe de R-GW-1 et sur ces ports, soit redirigé vers l'IP interne du serveur. Il faut saisir sur R-GW-1 la commande ip nat inside source static tcp 172.16.0.1 80 10.10.10.1 80 afin de configurer une telle redirection. Nous faisons de même pour le service DNS (port udp et tcp 53) afin que le serveur DNS soit joignable depuis le réseau filiale via l'adresse externe de R-GW-1, grâce aux commandes ip nat inside source static tcp 172.16.0.1 53 10.10.10.1 53 et ip nat inside source static udp 172.16.0.1 53 10.10.10.1 53. Nous configurons ensuite les hôtes du réseau filiale avec comme adresse du serveur DNS, l'adresse externe de R-GW-1. Q30. Nous installons le service HTTP (serveur NGINX) grâce à la commande apt update, puis apt install nginx. Q31. Nous créons le fichier db.netcom.local à partir du fichier db.empty, dans /etc/bind , grâce à la commande cp db.empty db.netcom.local puis nous déclarons la zone netcom.local dans le fichier /etc/bind/named.conf.local , dont le contenu doit être le suivant : ``` // // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "netcom.local" { type master; file "/etc/bind/db.netcom.local"; }; ``` Nous définissons ensuite la zone netcom.local dans le fichier /etc/bind/db.netcom.local , de la façon suivante : ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN netcom.local. $TTL 86400 @ IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS web.netcom.local. ; web IN A 172.16.0.1; vpc1 IN A 172.16.3.1; vpc2 IN A 172.16.3.2; vpc3 IN A 172.16.1.1; vpc4 IN A 172.16.2.1; sw1 IN A 172.16.3.251; sw2 IN A 172.16.3.252; ``` Nous configurons l'adresse DNS 172.16.0.1 (adresse du serveur) sur les clients puis nous réalisons une requête HTTP vers web.netcom.local. (par exemple grâce à l'utilitaire curl). Nous configurons également les adresses IP des autres hôtes du réseau et leur associons un FQDN (cf. ci-dessus). Nous mettons également en place une résolution inverse, de l'adresse 172.16.0.1 vers le FQDN web.netcom.local. et idem pour les autres hôtes du réseau. Dans le fichier named.conf.local nous déclarons la zone inverse de la DMZ, de la façon suivante : ``` zone "0.16.172.in-addr.arpa" { type master; file "/etc/bind/db.dmz.netcom.local.rev"; }; ``` Nous créons ensuite le fichier db.dmz.netcom.local.rev à partir du fichier db.empty, selon la méthode vue plus haut. Nous obtenons le fichier suivant : ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 0.16.172.in-addr.arpa. $TTL 86400 0.16.172.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS web.netcom.local. ; 1 PTR web.netcom.local. ; ``` Nous procédons de façon similaire pour le réseau admin et les hôtes VPC-1, VPC-2 et les SVI des actifs réseau (fichier db.admin.netcom.local.rev) : ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 3.16.172.in-addr.arpa. $TTL 86400 3.16.172.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS vpc1.netcom.local. ; 1 PTR vpc1.netcom.local. ; @ IN NS vpc2.netcom.local. ; 2 PTR vpc2.netcom.local. ; @ IN NS sw1.netcom.local. ; 251 PTR sw1.netcom.local. ; @ IN NS sw2.netcom.local. ; 252 PTR sw2.netcom.local. ; @ IN NS mls1.netcom.local. ; 254 PTR mls1.netcom.local. ; ``` Nous procédons de la même façon pour le réseau R&D et l'hôte VPC-3 (fichier db.rd.netcom.local.rev) : ``` GNU nano 7.2 db.rd.netcom.local.rev * ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 1.16.172.in-addr.arpa. $TTL 86400 1.16.172.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS vpc3.netcom.local. ; 1 PTR vpc3.netcom.local. ; Ainsi que pour le réseau PROD (fichier db.prod.netcom.local.rev) : ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 2.16.172.in-addr.arpa. $TTL 86400 2.16.172.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS vpc4.netcom.local. ; 1 PTR vpc4.netcom.local. ; ``` Et pour le réseau interconnectant MLS1 et RGW1 (fichier db.inter.netcom.local ) : ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 4.16.172.in-addr.arpa. $TTL 86400 4.16.172.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS rgw1.netcom.local. ; 1 PTR rgw1.netcom.local. ; ``` Enfin, nous ajoutons les différentes zones au fichier named.conf.local , de sorte à obtenir le fichier complet suivant : ``` // // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "netcom.local" { type master; file "/etc/bind/db.netcom.local"; }; zone "0.16.172.in-addr.arpa" { type master; file "/etc/bind/db.dmz.netcom.local.rev"; }; zone "3.16.172.in-addr.arpa" { type master; file "/etc/bind/db.admin.netcom.local.rev"; }; zone "1.16.172.in-addr.arpa" { type master; file "/etc/bind/db.rd.netcom.local.rev"; }; zone "2.16.172.in-addr.arpa" { type master; file "/etc/bind/db.prod.netcom.local.rev"; }; zone "4.16.172.in-addr.arpa" { type master; file "/etc/bind/db.inter.netcom.local.rev"; }; ``` Nous réalisons également une redirection des requêtes non résolues par le serveur DNS, vers le serveur DNS de l'IUT d'adresse 195.220.217.6 en modifiant le fichier named.conf.options de la manière suivante : ``` options { directory "/var/cache/bind"; recursion yes ; allow-recursion {any ; } ; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. forwarders { 195.220.217.6; }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; listen-on-v6 { any; }; }; ``` Les paramètres recursion yes ; et allow-recursion {any ; } ; permettent les requêtes DNS récursives émises par les clients DNS. Nous testons la résolution directe et inverse grâce à l'utilitaire dig, dont nous voyons ci-dessous le résultat si l'on saisit la commande dig mls1.netcom.local : ``` ; <<>> DiG 9.18.24-1-Debian <<>> mls1.netcom.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25116 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 04c5c67038fdef590100000066420438000df3a3ac64765f (good) ;; QUESTION SECTION: ;mls1.netcom.local. IN A ;; ANSWER SECTION: mls1.netcom.local. 86400 IN A 172.16.3.254 ;; Query time: 16 msec ;; SERVER: 172.16.0.1#53(172.16.0.1) (UDP) ;; WHEN: Mon May 13 12:14:48 UTC 2024 ;; MSG SIZE rcvd: 90 Si nous saisissons la commande nslookup 172.16.3.254 , nous obtenons bien le FQDN mls1.netcom.local. ce qui montre que la résolution inverse est fonctionnelle : 254.3.16.172.in-addr.arpa name = mls1.netcom.local. ``` Nous voyons ci-dessous une capture Wireshark de la résolution directe de l'hôte mls1.netcom.local depuis VPC1 (requête DNS) : ![screenQ33wiresharkVPC1SW1reqDNS](https://hackmd.io/_uploads/H1ZJwKk7A.jpg) Nous voyons ci-dessous la réponse du serveur DNS : ![screenQ33wiresharkVPC1SW1repDNS](https://hackmd.io/_uploads/H1XuPYk7C.jpg) Nous voyons également le résultat de la résolution inverse de l'adresse IP 172.16.3.254 (requête ci-dessous) : ![screenQ33wiresharkVPC1SW1reqinvDNS](https://hackmd.io/_uploads/r1G8dtJmA.jpg) Ainsi que la réponse du serveur DNS : ![screenQ33wiresharkVPC1SW1repinvDNS](https://hackmd.io/_uploads/Hk35OtJXC.jpg) Q35. Nous réalisons une capture de flux sur le serveur grâce à l'utilitaire tcpdump et la commande du même nom, saisie sur le serveur et dont nous voyons ci-dessous le résultat : ![screenQ35tcpdump](https://hackmd.io/_uploads/BJSNcKyXC.jpg) Nous voyons ainsi qu'une requête émise depuis VPC1 vers www.google.fr est redirigée du serveur DNS interne de l'entreprise vers le serveur de l'IUT. Nous souhaitons également pouvoir accéder à l'intranet de l'entreprise depuis l'extérieur du réseau siège (par exemple, depuis filiale ou Internet), grâce au nom de domaine intranet.netcom.local. Nous ajoutons l'enregistrement suivant au fichier db.netcom.local : ``` @ IN NS intranet.netcom.local. ; intranet IN A 10.10.10.1 ; ``` Ainsi qu'un enregistrement de zone inverse dans le fichier db.intranet.netcom.local.rev : ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 10.10.10.in-addr.arpa. $TTL 86400 10.10.10.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS intranet.netcom.local. ; 1 PTR intranet.netcom.local. ; ``` Nous déclarons le fichier de zone inverse dans named.conf.local par l'ajout de l'enregistrement suivant : ``` zone "10.10.10.in-addr.arpa" { type master; file "/etc/bind/db.intranet.netcom.local.rev"; }; ``` Q36. Le service ssh est déjà installé. Afin que les hôtes parviennent à joindre le serveur en SSH, nous allons dans le fichier /etc/ssh/ssh_config et nous décommentons les 2 lignes suivantes sur le serveur ainsi que les clients : ``` Port 22 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc ``` Nous configurons également une translation d'adresse statique sur le port 22, afin que les hôtes de réseaux externes puissent accéder en SSH au serveur. Nous saisissons la commande ip nat inside source static tcp 172.16.0.1 22 10.10.10.1 22 sur R-GW-1. Afin de se connecter au serveur, nous saisissons la commande ssh debian@172.16.0.1 (puis mot de passe debian), si nous nous connectons depuis le réseau siège, sinon nous utilisons l'IP externe de R-GW-1 (10.10.10.1). Bonus Nous créons un nouveau VLAN 150 "Ressources", d'adresse IP 172.16.5.0/24, affecté aux ports Gi3/0-3 de SW-1, et sur lequel nous connectons un nouveau serveur linux au port Gi3/0. Nous créons également l'interface SVI VLAN150 sur MLS-1, qui sera la passerelle du VLAN 150 et avec l'adresse IP 172.16.5.254/24. Nous installons le service isc-dhcp-server sur le nouveau serveur Linux, ainsi que le paquet net-tools (outils de diagnostics). Nous déclarons l'interface DHCP ens4 dans le fichier /etc/default/isc-dhcp-server avec la ligne INTERFACESv4="ens4" et nous ajoutons les informations des différents réseaux pour lesquels attribuer des adresses en DHCP, dans le fichier /etc/dhcp/dhcpd.conf . Exemple pour le VLAN ressources : ``` subnet 172.16.5.0 netmask 255.255.255.0 { range 172.16.5.10 172.16.5.30; option domain-name-servers 172.16.0.1; option domain-name "internal.netcom.local"; option routers 172.16.5.254; option broadcast-address 172.16.5.255; default-lease-time 600; max-lease-time 7200; } ``` Nous configurons ensuite une agent relai DHCP sur les différentes interfaces virtuelles de MLS1, à l'exception du VLAN 150 (car c'est dans ce dernier que se situe le serveur DHCP), afin que le serveur DHCP soit accessible depuis les autres VLAN (les requêtes DHCP étant en broadcast et normalement non routées). Ensuite, nous installons le serveur FTP ftpd-ssl avec un chiffrement SSL. Il faut également installer le client ftp sur les clients (commande apt install ftp). Nous testons le service FTP depuis un client grâce à la commande ftp 172.16.5.1 (IP du serveur du VLAN 150). Nous ajoutons ensuite un enregistrement DNS pour ce serveur afin que celui-ci soit résolvable pour les hôtes du siège et de la filiale, nous ajoutns les lignes suivantes au fichier /etc/bind/db.netcom.local : ``` @ IN NS server-dhcp-ftp.netcom.local. ; server-dhcp-ftp IN A 172.16.5.1 ; ``` Nous créons ausssi le fichier d'enregistrement de zone inverse db.ressources.netcom.local dont le contenu est : ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $ORIGIN 5.16.172.in-addr.arpa. $TTL 86400 5.16.172.in-addr.arpa. IN SOA dns.netcom.local. hostmaster.netcom.loc> 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS server-dhcp-ftp.netcom.local. ; 1 PTR server-dhcp-ftp.netcom.local. ; ``` Et nous déclarons le fichier dans /etc/bind/named.conf.local : ``` zone "5.16.172.in-addr.arpa" { type master; file "/etc/bind/db.ressources.netcom.local.rev"; }; ``` Puis, nous créons 2 règles NAT statique sur R-GW-1 (ports 20 et 21) permettant d'accéder, depuis le réseau filiale, au serveur FTP : ``` ip nat inside source static tcp 172.16.5.1 20 10.10.10.1 20 ip nat inside source static tcp 172.16.5.1 21 10.10.10.1 21 ```

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully