Cisco pix nat pat

Bonjour à tous, pour un projet de gestion de logs je dois mettre en place un pare feu pix cisco 515e.
Actuellement j'ai des soucis pour configurer le nat ou pat (?).
Je trouve pas mal de commande sur le net mais rien de bien expliquer, ce que fais chaque commande et chaque options, je suis donc perdu!
Par exemple :
global (outside) 101 interface
nat (inside) 101 172.16.0.0 255.255.0.0
global (outside) 101 interface 255.255.255.0

Il y a d'autres commandes avec des :
static(inside, outside) ....

Pourriez vous m'expliquer les commandes et leur fonctionnement pour que je puisse moi même mettre en place le nat ou pas?
Merci d'avance!
Configuration: Windows XP
Opera 9.80

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour
    Sur un cisco PIX ou ASA
    tu peux faire du NAT statique 1 pour 1 (Network Address Translation) ou du PAT (Port Address Translation ) en entrée ET en sortie

    Avec des exemples c'est plus simple

    A et B : 2 cas de figures

    ------------------------------------ A ---------------------------------------

    A) Tu as sur Internet une plage d'adresses pour toi par exemple avec un netmask à 255.255.255.248 donc tu as un réseau avec 6 adresses IP de disponibles ex: 6.1.1.0 Mask 255.255.255.248. Les adresses Ip dispo sont
    6.1.1.1.1-6.1.1.7: dans ce cas,
    - une est réservé au routeur (SDSL ADSL) par exemple 6.1.1.1,
    - une au PIX : 61.1.1.2
    il reste 6.1.1.3 à 6.1.1.7 pour les serveurs
    . Dans ce cas tu peux faire du static 1 pour 1 (du NAT 1 pour 1)

    Par exemple imaginons sur le Pix les 2 interfaces de base : Inside (réseau Interne) Outside (Réseau Externe = Internet)

    Je vais avoir déjà une commande de route par défaut sur le PIX
    - route outside 0.0.0.0 6.1.1.1 1

    --------------------

    ACCES vers serveurs locaux DEPUIS INTERNET :

    J'ai un serveur WEB, SMTP, DNS etc.. sur mon réseau local en adresse 192.168.1.3 (en pratique ce serait plutôt sur l'interface DMZ)
    J'ai un serveur WINDOWS etc.. sur mon réseau local en adresse 192.168.1.4 qui doit être atteint par une adresse IP d'un prestataire qui est 6.99.99.99 pour la maintenance en RDP (TSE)

    je veux que ces serveur soit visibles depuis Internet et je ne veux pas m'embêter avec du PAT :
    Je vais donner les commande

    - static (inside,outside) 6.1.1.3 192.168.1.3 netmask 255.255.255.255
    - static (inside,outside) 6.1.1.4 192.168.1.4 netmask 255.255.255.255
    La syntaxe est static (interface -devant être translatée-, Interface translatée) IP translatée Ip devant être translatée netmask NetMASK

    Je rend visible mes serveur 192.168.1.3 et 192.168.1.4 sur INTERNET au travers de l'adresse 6.1.1.3 et 6.1.1.4 SUR N'IMPORTE QUEL PORT (Translation statique 1 pour 1)

    Bien sûr je ne vais autorise que le DNS, le SMTP et le WEB et le FTP uniquement sur le 192.168.1.3
    Je vais donc ajouter une access-list qui va contrôler les flux depuis Internet vers ce serveur :

    access-list aclin extended permit tcp any host 6.1.1.3 eq 25
    access-list aclin extended permit tcp any host 6.1.1.3 eq 80
    access-list aclin extended permit udp any host 6.1.1.3 eq 53

    ...
    idem pour le Windows 192.168.1.4 mais limité à l'ip du prestataire

    access-list aclin extended permit tcp host 6.99.99.99 host 6.1.1.4 eq 3389

    Ne pas oublier d'appliquer l'acces-list à l'interface Outside : aclin (ce qui rentre dans l'interface outside=
    access-group aclin in interface outside

    Je veux aussi autoriser ma machine 192.168.1.3 à accéder à INTERNET pour les DNS et le MAIL uniquement (pas WEB)

    Je vais donc autoriser la machine à sortir sur Internet uniquement sur ces protocoles:

    access-list aclout extended permit tcp host 192.168.1.3 any eq 25
    access-list aclout extended permit udp host 192.168.1.3 any eq 53


    ...
    ...

    Mon serveur windows n'a pas besoin de sortir, je ne fais rien

    Ne pas oublier d'appliquer l'acces-list à l'interface inside : aclout (ce qui rentre dans l'interface inside pour sortir ensuite
    access-group aclout in interface inside

    --------

    ACCES VERS INTERNET

    Mes postes veulent accéder sur INTERNET (et je n'ai pas de proxy et la machine 3 ne fait pas proxy)
    Je vais utiliser une adresse de dispo pour la sortie par exemple 6.1.1.4

    global (outside) 1 6.1.1.4 netmask 255.255.255.255
    Je vais dire que tous les accès vers l'extérieur seront nater (pater) sur cette adresse
    nat (inside) 1 192.168.1.0 255.255.255.0

    Je vais ajouter la permission de sortir de mon réseau local sur les protocoles que je souhaite ex: HTTP HTTPS FTP (+ FTP-DATA) + NTP (Network Time Protocol)

    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 80
    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 443
    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 21
    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 20
    access-list aclout extended permit udp 192.168.1.0 255.255.255.0 any eq 123

    Ne pas oublier d'appliquer l'acces-list à l'interface inside : aclout (ce qui rentre dans l'interface inside pour sortir ensuite
    access-group aclout in interface inside

    (comme avant)

    ----------------------------- B------------------------------------------

    B) Tu as uniquement une plage avec 2 adresses Ip dispo par exemple avec un netmask à 255.255.255.252 (Ou tu n'as pas assez d'adresses publiques :
    6.1.1.0 Mask 255.255.255.252 Tu as donc dispo 6.1.1.1 à 6.1.1.2 donc une pour le routeur : 6.1.1.1, un pour le pix 6.1.1.2

    Tu ne peux pas faire du static 1 ou pour 1 car tu n'as pas d'ip Disponible (1 est prise par le routeur, l'autre par le PIX)

    En local, Tu as toujours 2 serveurs, ton serveur WEB DNS + ton serveur Windows qui doit être accessible par la société de service en RDP

    Je vais avoir déjà une commande de route par défaut sur le PIX
    - route outside 0.0.0.0 6.1.1.1 1

    ACCES DEPUIS INTERNET

    Je vais faire du PAT en entrée en utilisant la commande static mais sur des ports spécifiques. Toutes les connexions arrivent sur l'interface Outside 6.1.1.2 et sont redirigées en fonction des protocoles vers un server spécifique

    static (inside,outside) tcp 6.1.1.2 80 192.168.1.3 80 netmask 255.255.255.255
    static (inside,outside) tcp 6.1.1.2 25 192.168.1.3 25 netmask 255.255.255.255
    static (inside,outside) tcp 6.1.1.2 25 192.168.1.3 53 netmask 255.255.255.255


    static (inside,outside) tcp 6.1.1.2 3389 192.168.1.4 33893 netmask 255.255.255.255

    TOUT CE QUI ARRIVE sur 6.1.1.2 sur le port TCP 80 est rédirigé vers 192.168.1.3 port 80
    TOUT CE QUI ARRIVE sur 6.1.1.2 sur le port TCP 3389 est rédirigé ver 192.168.1.4 port 3389

    Les access-list :
    access-list aclin extended permit tcp any host 6.1.1.2 eq 25
    access-list aclin extended permit tcp any host 6.1.1.2 eq 80
    access-list aclin extended permit udp any host 6.1.1.2 eq 53

    ...
    idem pour le Windows 192.168.1.4 mais limité à l'ip du prestataire

    access-list aclin extended permit tcp host 6.99.99.99 host 6.1.1.2 eq 3389
    access-group aclin in interface outside


    ACCES VERS INTERNET

    Idem pour Internet, je vais utiliser l'adresse IP visible du PIX 6.1.1.2. On peut mettre à ce niveau soit l'adresse ou le mot clé Interface (correspondant à l'interface du PIX)

    global (outside) 1 interface
    nat (inside) 1 0.0.0.0 0.0.0.0
    access-group aclout in interface inside


    Je vais ajouter la permission de sortir de mon réseau local sur les protocoles que je souhaite ex: HTTP HTTPS FTP (+ FTP-DATA) + NTP (Network Time Protocol)

    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 80
    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 443
    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 21
    access-list aclout extended permit tcp 192.168.1.0 255.255.255.0 any eq 20
    access-list aclout extended permit udp 192.168.1.0 255.255.255.0 any eq 123


    Ne pas oublier d'appliquer l'acces-list à l'interface inside : aclout (ce qui rentre dans l'interface inside pour sortir ensuite
    access-group aclout in interface inside

    A+

    Je te laisse le soin de voir des explications plus complètes sur cisco.com
    1. Un énorme merci pour tout ça, j'avance bien grâce à toi.
      Sur le site de cisco tout n'est pas expliqué en précision, on ne peut le comprendre que si on connait déjà presque tout, ce qui est dommage.
      Merci encore, j'espere que si j'ai d'autres questions tu sera aussi disponible
  2. Salut,
    Syslog,
    ça m'énerve un de lire tout ça:
    travailler sur ce genre d'outils demande une vraie formation quand on est dans un cadre professionnel.
    j'ai du mal à avoir envie d'être gentil avec des employeurs qui utilisent des gens sans vouloir les former, comme c'était naturel et que ça fonctionne tout seul.
    De même pour les techniciens qui essaient de se mettre en valeur par rapport à leur employeur alors qu'ils ne maitrisent pas la machine qu'on leur confie, ou pire qu'il vont aller installer chez un client.
    Les formations cisco ou autres sont là pour assurer aux clients qu'ils travaillent avec des fournisseurs compétents.
    Donc , la prochaine fois, demande à ton employeur une formation cisco , tu y gagneras immédiatement, lui aussi sur la durée et surtout vos clients prendront moins de risques.
    1. Merci brupala mais c'est pour un projet d'étudiant en IUT, il n'y a pas d'employeur, ce qui n'empeche qu'on galère^^.

      Avec les informations données nous avons essayé cette configuration:

      global (outside) 1 192.168.10.51 netmask 255.255.255.255
      nat (inside) 1 192.168.0.0 255.255.255.0
      static (inside,outside) 192.168.10.101 192.168.0.2 netmask 255.255.255.255

      Normalement l'inside 192.168.0.2 devrait pouvoir être accessible d'puis l'outside avec l'ip 192.168.10.101.
      De même l'inside 192.168.0.2 devrait pouvoir accéder au réseau outside en prenant pour ip de l'autre côté " 192.168.10.51.

      Avons nous fait une erreur quelque part? Cela ne fonctionne pas, faut-il rajouter une ligne de base ou autre?
      Merci!
      1. L'adresse 192.168.0.2 est nattée sur 192.168.10.101. cette relation est bi -directionnelle et prioritaire sur le global

        Cette adresse 192.168.0.2 sort donc sur l'adresse 192.168.10.101 (et non sur sur la 192.168.10.51)
        Cette adresse sera accessible depuis l'outside sur l'adresse 192.168.10.101 c'est exact

        Ce sont les autres adresses qui vont sortir sur l'adresse 192.168.10.51

        Donc si çà ne marche pas, il peut avoir d'autre causes :
        il manque la route vers outside,
        les access-list ne sont pas bonnes,
        les access-list ne sont pas affectées aux interfaces (ou ne sont pas dans le bon sens in/out)

        Autre cause : faire un write mem et rebooter l'asa (ou faire : clear xlate pour vider les anciens mappages de la mémoire).
        Du fait du arp cache , s'il y a un routeur/modem pour l'accès outside, il peut être également nécessaire de rebooter le routeur vers l'outside après l'ajout d'un mappage qui ne se trouve pas sur l'interface externe de l'asa.

        Autre cause également fréquente : erreur de netmask dans certaines définitions.

        Merci de poster l'intégralité de la configuration

        A+
        1. Bonjour,
          Donc:
          static (inside,outside) 192.168.10.101 192.168.0.2 netmask 255.255.255.255
          permet de communiquer dans les deux sans avec 0.2 en gros.

          Au sujet de la route je ne comprends pas l'interet, une route n'est-elle pas faite pour indiquer où aller si on ne connais pas l'ip de destination? Ici nous faisons par exemple des pings sur des ips, est-ce utile? Pourquoi?

          Il n'y a aucun autre matériel sur notre réseau que le parefeu et un poste en outside et un poste inside.

          Il n'y a normalement aucunes ACL, nous avons fais un write mem au début, voici notre config, et merci de ta réponse:

          PIX Version 7.0(1)
          names
          !
          interface Ethernet0
          nameif outside
          security-level 0
          ip address 192.168.10.1 255.255.255.0
          !
          interface Ethernet1
          nameif inside
          security-level 100
          ip address 192.168.1.1 255.255.255.0
          !
          interface Ethernet2
          shutdown
          no nameif
          no security-level
          no ip address
          !
          interface Ethernet3
          shutdown
          no nameif
          no security-level
          no ip address
          !
          interface Ethernet4
          shutdown
          no nameif
          no security-level
          no ip address
          !
          interface Ethernet5
          shutdown
          no nameif
          no security-level
          no ip address
          !
          enable password 8Ry2YjIyt7RRXU24 encrypted
          passwd Vq4S0O3Iy598V/s2 encrypted
          hostname pixlog
          domain-name domain.fr
          ftp mode passive
          pager lines 24
          logging enable
          logging standby
          logging trap informational
          logging facility 19
          logging host inside 192.168.1.2
          mtu outside 1500
          mtu inside 1500
          no failover
          monitor-interface outside
          monitor-interface inside
          asdm image flash:/asdm-501.bin
          no asdm history enable
          arp timeout 14400
          global (outside) 1 192.168.10.51 netmask 255.255.255.255
          nat (inside) 1 192.168.1.0 255.255.255.0
          static (inside,outside) 192.168.10.101 192.168.1.2 netmask 255.255.255.255
          timeout xlate 3:00:00
          timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
          timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00
          timeout mgcp-pat 0:05:00 sip 0:30:00 sip_media 0:02:00
          timeout uauth 0:05:00 absolute
          http server enable
          http 192.168.0.2 255.255.255.255 inside
          no snmp-server location
          no snmp-server contact
          snmp-server enable traps snmp
          telnet 192.168.0.2 255.255.255.255 inside
          telnet timeout 5
          ssh timeout 5
          console timeout 0
          !
          class-map inspection_default
          match default-inspection-traffic
          !
          !
          policy-map global_policy
          class inspection_default
          inspect dns maximum-length 512
          inspect ftp
          inspect h323 h225
          inspect h323 ras
          inspect netbios
          inspect rsh
          inspect rtsp
          inspect skinny
          inspect esmtp
          inspect sqlnet
          inspect sunrpc
          inspect tftp
          inspect sip
          inspect xdmcp
          !
          service-policy global_policy global
          Cryptochecksum:e300f493f10740a667984281186862b9
          : end

          Cordialement.
          1. Re

            Par defaut les flux sont autorisés d'une interface de sécurité forte vers une interface de sécurité faible mais pas l'inverse: donc si tu fais un ping depuis l'inside vers l'outside, l'icmp echo request va sortir mais l'icmp reply ne va pas pouvoir rentrer (ce n'est pas une session) . Il faut donc impérativement une access-list qui va autoriser le retour (ou egalement l'icmp request depuis l'outside vers l'inside)

            access-list aclin extended permit icmp any any (ou plus spécifique avec host ou plus specifique avec uniquement echo-reply ou request)

            + idem pour les autres protocoles

            par exemple pour autoriser http vers ton server

            access-list aclin extended permit tcp any host 192.16810.101 eq 80

            Ne pas oublier d'appliquer l'acces-list à l'interface Outside : aclin (ce qui rentre dans l'interface outside=
            access-group aclin in interface outside

            effectivement dans votre schéma, la route par défaut vers outside ne sert pas (mais dans le vraie vie, oui)
            A+
            1. Merc beaucoup c'est la donnée qui nous manquait (le fait que de base des choses soit autorisés ou pas), avec cet ACL nous pouvons désormais communiquer comme nous le souhaitons, récupérer des logs interressant, et les traiter comme il se doit.
              Merci pour votre aide et à bientot peut-être!