TCP / IP - PROXY - NAT/PAT

A) Architecture :

  1. PROXY (Standard)
  2. Routeur NAT (Standard)
  3. NAT + PROXY (Fonction Export de services)
  4. NAT + PROXY (Fonction Export de services + Alias réseau)
B) Filtrage (Table ZyXEL):
  1. NETBIOS
  2. FIREWALL
C) Translation d'adresse et "Port Mapping" :
  1. Exemple d'une connexion FTP (Netopia)
  2. Export de services (Netopia)
  3. Documententation (Cisco)
  4. Liste des Ports (Sockets) (Général)
Configuration des routeurs Netopia R9100 et ZyXEL S300


1) PROXY :
 


2) Routeur NAT Standard


3) NAT+ PROXY : l'utilisation de l'option "export de services" permet de rendre accessible des serveurs ayant des adresses masquées.
Note : les serveurs sont ici "à cheval" entre 2 réseaux "privé" : 192.168.1.0 et 192.168.0.0.1 (Physiquement = 2 interfaces réseau)


4) NAT+ PROXY : L'option "alias réseau" autorise la redirection vers différents réseaux privés.
Note : Les serveurs sont sur un réseau.


B) Filtres :

1)Netbios=>output

   +-#----Source IP Addr----Dest IP Addr------Proto-Src.Port-D.Port--On?-Fwd-+
   +--------------------------------------------------------------------------------------------------+
   | 1          0.0.0.0              0.0.0.0                 UDP   =137       NC      Yes   No  |
   | 2          0.0.0.0              0.0.0.0                 UDP   =138       NC      Yes   No  |
   | 3          0.0.0.0              0.0.0.0                 TCP   NC         =139    Yes   No  |
   +-------------------------------------------------------------------------------------------------+

nbname 137/udp
nbdatagram 138/udp
nbsession 139/tcp



2) Basic Firewall => Input

   +-#----Source IP Addr----Dest IP Addr------Proto-Src.Port-D.Port--On?-Fwd-+
   +-------------------------------------------------------------------------------------------------+
   | 1          0.0.0.0              0.0.0.0                 TCP   NC       =2000   Yes   No  |
   | 2          0.0.0.0              0.0.0.0                 TCP   NC       =6000   Yes   No  |
   | 3          0.0.0.0              0.0.0.0                  ICMP  NC       NC      Yes   Yes |
   | 4          0.0.0.0              0.0.0.0                 TCP   NC       >1023   Yes   Yes |
   | 5          0.0.0.0              0.0.0.0                 UDP   NC       >1023   Yes   Yes |
   +-------------------------------------------------------------------------------------------------+


C) Translation d'adresse et "Port Mapping" :

1) Exemple d'une connexion FTP:

  Connexions actives côté Serveur :

   Proto         Adresse locale         Adresse extérieure     Etat
===============================================
  TCP    192.168.0.1:2100       193.252.58.163:1625    ETABLIE
  TCP    192.168.0.1:2100       193.252.58.163:1630    ETABLIE
  TCP    192.168.0.1:2100       193.252.58.163:1638    ETABLIE
===============================================

Connexions actives côté Client :

 Proto         Adresse locale         Adresse extérieure     Etat
===============================================
  TCP   193.252.58.163:1625    193.251.60.38:2100     ETABLIE
  TCP    193.252.58.163:1630    193.251.60.38:2100     ETABLIE
  TCP    193.252.58.163:1638    193.251.60.38:2100     ETABLIE
===============================================



2) Export de services :

Exemple d'une communication entre 2 machines situées derrière deux réseaux LAN "Translatés"
Application : "Netmeeting"
La machine désignée "serveur" est celle acceptant l'appel.
La machine "cliente" étant l'appelant.

IP NETWORK serveur = 193.253.209.122
IP LAN serveur = 192.168.200.29

IP NETWORK  "appelant" = 193.251.60.193
IP LAN serveur = 192.168.0.20

Détail des connexions établies sur chacune des machines éxécutant les services Netmeeting.

Station Serveur:
========================================================================
Protocole Adresse locale Port  Adresse distante Port Etat liaison
TCP
TCP
TCP
TCP
TCP
192.168.200.29
192.168.200.29
192.168.200.29
192.168.200.29
192.168.200.29
1720
1709
1503
1503
1503
193.251.60.193
193.251.60.193
193.251.60.193
193.251.60.193
193.251.60.193
55421
55425
55505
55510
55511
Etablie
Etablie
Etablie
Etablie
Etablie
========================================================================

Station Cliente :
========================================================================
Protocole Adresse locale Port  Adresse distante Port Etat liaison
TCP
TCP
TCP
TCP
TCP
192.168.200.20
192.168.200.20
192.168.200.20
192.168.200.20
192.168.200.20
1056
1057
1059
1060
1061
193.253.209.122
193.253.209.122
193.253.209.122
193.253.209.122
193.253.209.122
1720
1709
1503
1503
1503
Etablie
Etablie
Etablie
Etablie
Etablie
========================================================================


3) Documentation :

Tout paquet traversant un routeur dans le sens interne vers l'extérieur ou inversement subit une traduction qui peut-être plus ou moins complexe suivant le protocole. L'adresse IP dans l'en-tête IP est traduite et remplacée par la nouvelle adresse.
De plus, le checksum IP doit être recalculé et vérifié. Ensuite, le checksum TCP, combinaison de l'adresse IP et du port, soit être modifié également.
Enfin, pour rendre le mécanisme transparent au niveau des applications, NAT doit également convertir des paquets pour certains protocoles ou applications.

Overloading ou PAT (Port Address Translation) ou adressage dynamique étendu :
Les adresses internes sont traduites par l'association d'une adresse interne et d'un port .
Cette adresse "étendue" est alors traduite en adresse externe associée au port. Cette fonctionnalité permet d'utiliser la même adresse externe pour différentes adresses internes.

Est-ce que tous les services sont supportés?

En particulier toute application qui transporte et utilise une adresse IP dans la partie des données ne sera pas supportée par NAT, sauf si NAT connait l'emplacement et sait le traduire.
Par exemple, le service FTP est supporté bien que la commande PORT contienne une adresse IP dans la partie des données.
Mais des services tels que talk , bootp et surtout IP Multicast ne sont pas supportés.
D'autres services peuvent être supportés partiellement : le service SMTP ne pourra pas fonctionner lorsque une adresse IP est utilisé dans l'adresse électronique plutôt qu'un nom complet de domaine. De même pour le service DNS (pas de traduction des transferts de zone). Mais Secure DNS peut être traité

Adresse IP / Type de classes :

de 10.0.0.0    à 10.255.255.255    (classe A, masque 255.0.0.0)
de 172.16.0.0  à 172.31.255.255    (classe B, masque 255.255.0.0)
de 192.168.0.0 à 192.168.255.255   (classe C, masque 255.255.255.0)


Sockets IP

echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
qotd 17/udp quote
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
name 42/tcp nameserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
nameserver 53/tcp domain # name-domain server
nameserver 53/udp domain
mtp 57/tcp # deprecated
bootp 67/udp # boot program server
tftp 69/udp
rje 77/tcp netrjs
finger 79/tcp
link 87/tcp ttylink
supdup 95/tcp
hostnames 101/tcp hostname # usually from sri-nic
iso-tsap 102/tcp
dictionary 103/tcp webster
x400 103/tcp # ISO Mail
x400-snd 104/tcp
csnet-ns 105/tcp
pop 109/tcp postoffice
pop2 109/tcp # Post Office
pop3 110/tcp postoffice
portmap 111/tcp
portmap 111/udp
sunrpc 111/tcp
sunrpc 111/udp
auth 113/tcp authentication
sftp 115/tcp
path 117/tcp
uucp-path 117/tcp
nntp 119/tcp usenet # Network News Transfer
ntp 123/udp ntpd ntp # network time protocol (exp)
nbname 137/udp
nbdatagram 138/udp
nbsession 139/tcp
NeWS 144/tcp news
sgmp 153/udp sgmp
tcprepo 158/tcp repository # PCMAIL
snmp 161/udp snmp
snmp-trap 162/udp snmp
print-srv 170/tcp # network PostScript
vmnet 175/tcp
load 315/udp
vmnet0 400/tcp
sytek 500/udp
biff 512/udp comsat
exec 512/tcp
login 513/tcp
who 513/udp whod
shell 514/tcp cmd # no passwords used
syslog 514/udp
printer 515/tcp spooler # line printer spooler
talk 517/udp
ntalk 518/udp
efs 520/tcp # for LucasFilm
route 520/udp router routed
timed 525/udp timeserver
tempo 526/tcp newdate
courier 530/tcp rpc
conference 531/tcp chat
rvd-control 531/udp MIT disk
netnews 532/tcp readnews
netwall 533/udp # -for emergency
broadcasts
uucp 540/tcp uucpd # uucp daemon
klogin 543/tcp # Kerberos
authenticated rlogin
kshell 544/tcp cmd # and remote shell
new-rwho 550/udp new-who # experimental
remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
rmonitor 560/udp rmonitord # experimental
monitor 561/udp # experimental
garcon 600/tcp
maitrd 601/tcp
busboy 602/tcp
acctmaster 700/udp
acctslave 701/udp
acct 702/udp
acctlogin 703/udp
acctprinter 704/udp
elcsd 704/udp # errlog
acctinfo 705/udp
acctslave2 706/udp
acctdisk 707/udp
kerberos 750/tcp kdc # Kerberos
authentication--tcp
kerberos 750/udp kdc # Kerberos
authentication--udp
kerberos_master 751/tcp # Kerberos authentication
kerberos_master 751/udp # Kerberos authentication
passwd_server 752/udp # Kerberos passwd server
userreg_server 753/udp # Kerberos userreg server
krb_prop 754/tcp # Kerberos slave
propagation
erlogin 888/tcp # Login and environment
passing
kpop 1109/tcp # Pop with Kerberos
phone 1167/udp
ingreslock 1524/tcp
maze 1666/udp
nfs 2049/udp # sun nfs
knetd 2053/tcp # Kerberos
de-multiplexor
eklogin 2105/tcp # Kerberos encrypted
rlogin
rmt 5555/tcp rmtd
mtb 5556/tcp mtbd # mtb backup
man 9535/tcp # remote man server
w 9536/tcp
mantst 9537/tcp # remote man server,
testing
bnews 10000/tcp
rscs0 10000/udp
queue 10001/tcp
rscs1 10001/udp
poker 10002/tcp
rscs2 10002/udp
gateway 10003/tcp
rscs3 10003/udp
remp 10004/tcp
rscs4 10004/udp
rscs5 10005/udp
rscs6 10006/udp
rscs7 10007/udp
rscs8 10008/udp
rscs9 10009/udp
rscsa 10010/udp
rscsb 10011/udp
qmaster 10012/tcp
qmaster 10012/udp


Réalisation : laurent.moreau@ac-creteil.fr
PERP93