User Tools

Site Tools


coursieps:20060210

toc

Installation ferme (suite)

Suite de la semaine précédente.

Générer les certificats pour pop3s et imaps

Créer la clef privée:

 openssl genrsa -out mail_server.key

Générer le certificat pour la machine

openssl req -new -key mail_server.key -out imaps54.csr

L'envoyer sur l'autorité de certification:

scp imaps54.csr 192.168.2.55:

Ensuite, s'identifier sur l'autorité de certification:

ssh 192.168.2.55

et signer le certificat:

openssl ca -policy policy_anything -out mail.deb.crt -infiles ../imaps54.csr

Ensuite, rapatrier le certificat signé sur le serveur mail:

scp mail.deb.crt 192.168.2.54:

S'identifier sur le serveur mail et déplacer le certificat signé par l'autorité de certification et la clef privée.

mv mail.deb.crt /etc/ssl/certs/
mv mail_server.key /etc/ssl/private/

Configurer Dovecot

Changer le fichier /etc/dovecot/dovecot.conf:

protocols = imap imaps pop3 pop3s

imap_listen = *
pop3_listen = *

log_path = /var/log/dovecot.log

ssl_cert_file = /etc/ssl/certs/mail.deb.crt
ssl_key_file = /etc/ssl/private/mail_server.key

Redémarrer le service:

/etc/init.d/dovecot restart

Ensuite tester avec un client…

Routage

Pour voir ce qui se passe, nous allons avoir besoin du paquet tcpdump:

apt-get update
apt-get install tcpdump

Soit un réseau interne 10.0.0.0/24 et un réseau externe 192.168.2.0/24. Pour router des packets d'un réseau à un autre, il faut une machine connectée aux 2 réseaux, donc 2 cartes réseaux physiques distinctes.

Ensuite, il faut configurer les 2 interfaces dans /etc/network/interfaces.

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 eth1
iface eth0 inet static
        address 192.168.2.42
        netmask 255.255.255.0
        gateway 192.168.2.2

iface eth1 inet static
        address 10.0.0.12
        netmask 255.255.255.0

Pour pouvoir faire passer les paquets d'un réseau à l'autre, il faut mettre dans /etc/network/options:

ip_forward=yes

Ensuite, soit redémarrer le service réseau:

/etc/init.d/networking restart

Soit taper:

echo "1" > /proc/sys/net/ipv4/ip_forward

Le routage est alors activé.

La machine B dans le réseau interne a l'IP 10.0.0.22.

Sur la machine A du réseau externe a l'IP 192.168.2. Pour que A joigne B, il faut lui dire où aller pour le réseau 10.0.0.0/24:

route add -net 10.0.0.0/24 gw 192.168.2.42

Si on essaie:

ping 10.0.0.22

Les paquets ne passent pas. C'est parce que la machine B ne sait pas joindre la machine A. Il faut donc rajouter la route suivante sur la machine A:

route add -net 192.168.2.0/24 gw 10.0.0.12

Ensuite lorsqu'une machine “ping” l'autre, ça marche.

Installer sur les 3 machines tcpdump.

NAT

= network address translation

Si on veut que le réseau interne puisse aller sur internet, c'est obligatoire: on a besoin d'une adresse routable sur internet, alors que le réseau interne a des adresses privées.

Il faut donc transformer l'adresse source du paquet. Quand B envoie un paquet vers A, lorsque le paquet passe par le routeur, celui-ci masque l'IP source du paquet et la remplace par son adresse (celle sur le même réseau que B).

On réalise cette transformation de paquets IP grâce au logiciel iptables, qui est connu comme le firewall par excellence sous Linux.

iptables travaille avec des tables, notamment une table de translation d'adresses réseau (NAT).

Pour lister la table nat:

iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Il y a 3 chaînes dans la table nat:

  • prerouting: avant le routage du paquet
  • postrouting: après le routage du paquet
  • pour les paquets qui ne font que transiter
iptables -t nat -A POSTROUTING -p tcp --dst 10.0.0.11 -j SNAT --to-source 10.0.0.1

= faire du nat -A POSTROUTING : append dans la chaîne après le routege concerne le trafic tcp à destination de la machine 10.0.0.11 faire (-j): du nat source à remplacer par l'IP 10.0.0.1

vu que l'extérieur du réseau 10.0.0.0, tout va paraître venir de 10.0.0.1.

Le routeur va prendre note de qui était l'émetteur du paquet dans le réseau 10.0.0.0 et il va renvoyer les réponses à l'émetteur original.

Application: réseau interne connecté (IP privée, non routable sur internet) à

Le nat source est également appelé masquerade. Ici, on le fait juste pour l'adresse 10.0.0.11.

Pour le faire pour tout le sous-réseau:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

où eth1 est l'interface réseau externe au réseau.

Si tout le trafic doit être redirigé vers une machine donnée qui est derrière le routeur, il faut faire du destination nat.

iptables -t nat -A PREROUTING --dst 192.168.2.41 -j DNAT --to-destination 10.0.0.11

On fait du dnat en prerouting et du snat en postrouting. Si on fait du snat en postrouting, la destination du paquet est le routeur, et il ne route pas → passe pas par la chaîne postrouting

Pour le serveur web derrière le firewall, on fait du port forwarding:

iptables -t nat -A PREROUTING --dst 192.168.2.41 -p tcp --dport 80  -j DNAT --to-destination 10.0.0.11

Ici, le firewall a les IPs 192.168.2.41 et 10.0.0.1 et le serveur web a l'IP 10.0.0.11

Si on veut changer le port de destination (vers 8080) sur 10.0.0.11, il suffit de rajouter : et le numéro de port:

iptables -t nat -A PREROUTING --dst 192.168.2.41 -p tcp --dport 80  -j DNAT --to-destination 10.0.0.11:8080
coursieps/20060210.txt · Last modified: 2013/01/30 17:50 (external edit)