RĂ©seau SupAgro


À compter du 01/12/2016, les serveurs de Tela Botanica sont hébergés à SupAgro Montpellier.


Adressage IP

Chaque machine (réelle ou virtuelle) a une IP publique et une IP privée, sauf Osyris qui n'a qu'une IP privée.
L'administration (SSH) se fait sur l'IP privée, et nécessite l'installation du VPN.
L'accès des clients (HTTP) se fait sur l'IP publique.

Le fichier /etc/network/interfaces doit ressembler Ă  ceci (ex. pour Aphyllanthe) :
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.99.34.5
    netmask 255.255.255.0

auto eth2
iface eth2 inet static
    address 147.99.34.5
    netmask 255.255.255.0
    gateway 147.99.34.1


Adressage IP des VMs

Toutes ces configurations peuvent ĂŞtre faites avec l'interface graphique de Proxmox.

Osyris doit créer un pont réseau pour le réseau public et un pour le privé (actuellement vmbr0 et vmbr2). Sur le réseau public, Osyris n'a pas d'adresse.

Les machine virtuelles doivent créer chacune deux interfaces réseau virtuelles (voir exemple ci-dessus), l'une utilisant le pont réseau vmbr0 d'Osyris (IP privée) et l'autre utilisant le pont vmbr2 (IP publique).

Serveurs de noms

Les serveurs de noms sont 147.99.0.1 et 147.99.0.16
Selon la version du système, il faut déclarer ces serveurs dans /etc/resolv.conf - exemple pour Aphyllanthe :
search tela-botanica.org
nameserver 147.99.0.1
nameserver 147.99.0.16

ou dans /etc/network/interfaces - exemple pour Sequoia :
auto lo
iface lo inet loopback


# The primary network interface
auto eth1
iface eth1 inet static
  address 147.99.34.3
  netmask 255.255.255.0
  gateway 147.99.34.1
  dns-nameservers 147.99.0.1 147.99.0.16

auto eth2
iface eth2 inet static
  address 10.99.34.3
  netmask 255.255.255.0


Routes spécifiques

La cohabitation des IP publique et privée sur chaque machine nécessite d'ajouter une route, sans quoi l'accès à distance sur l'IP privée ne fonctionnera pas.

VĂ©rifier les routes

netstat -rn

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic   MSS FenĂŞtre irtt Iface
0.0.0.0         147.99.34.1     0.0.0.0         UG        0 0          0 eth2
10.99.34.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
147.99.27.248   10.99.34.1      255.255.255.255 UGH       0 0          0 eth0
147.99.34.0     0.0.0.0         255.255.255.0   U         0 0          0 eth2


# Debian >= 9
ip route
Table de routage de Taiga
default via 10.99.34.1 dev eth0 
10.99.34.0/24 dev eth0  proto kernel  scope link  src 10.99.34.9 
147.99.27.248 via 10.99.34.1 dev eth0

VĂ©rifier que
  • la passerelle par dĂ©faut soit correcte : une seule ligne ayant destination 0.0.0.0, la passerelle doit ĂŞtre 147.99.34.1 sur les machines avec IP privĂ©es et 10.99.34.1 pour celles sans IP privĂ©e.
  • la route spĂ©cifique 147.99.27.248 10.99.34.1 ... existe, sinon l'ajouter (voir ci-dessous)

Ajouter la route spécifique au VPN

Pour que le VPN marche faut dire à la machine de répondre à 147.99.27.248 sur le réseau 10.99.34.1
route add -host 147.99.27.248 gw 10.99.34.1

# debian >= 9
ip route add 147.99.27.248 via 10.99.34.1

Pour que ce réglage persiste au redémarrage de la machine, ajouter cette commande à /etc/rc.local, juste avant le exit 0.

Accès à distance

L'administration à distance (SSH, interface Web de Proxmox) et le transfert de fichiers (SFTP / Filezilla) nécessitent une connexion à travers un VPN.
Le VPN est installé progressivement sur la plupart des ordinateurs de l'équipe.
Contacter l'équipe informatique de SupAgro en cas de problème.

Connexion SSH en root

Après la création de la machine il faut passer par le terminal VNC dispo dans l'interface de Proxmox pour activer la connexion SSH avec root.
Pour ça il faut éditer la config de sshd nano /etc/ssh/sshd_config
Trouver la ligne PermitRootLogin et l'agrémenter comme ça :
Match Address 147.99.27.248
        PermitRootLogin yes
Match All

Comme ça on peut se connecter au compte root mais seulement depuis le VPN.
Ou sinon plus simple et permissif : PermitRootLogin Ă  yes
Et recharger la conf service ssh reload

Pare-feu

Chaque machine ayant maintenant deux interfaces réseau, les règles de firewall doivent en tenir compte.
(Mais comme on pas de pare-feu installé, sauf sur les vieux serveurs, bein osef)

Les pares-feu dont il faut tenir compte sont ceux de Supagro :
  • Le VPN est branchĂ© sur le rĂ©seau privĂ© (10.99.34.X) et il n'y a pas de parefeu Ă  ce niveau lĂ , tous les Ă©changes entre ces IPs sont libres. Donc pas besoin de demander l'ouverture de port pour le SSH, NFS, etc, si les connexions se font entre amies du rĂ©seau 10.99.34.X.

Des règles s'appliquent lorsque :
  • Du trafic se fait entre l'Internet et l'IP publique (demander Ă  dĂ©bloquer les ports 80, 443 des machines)
  • Du trafic se fait entre une machine avec IP privĂ©e et l'Internet via NAT (pas (encore) utilisĂ©)
  • Du trafic se fait entre l'IP privĂ©e et l'IP publique (pas (encore) utilisĂ©)

Shorewall

Pour Shorewall (installé sur Sequoia et Agathis), il faut ajouter une zone pour l'IPv4 (appelée loc comme "local") et lier l'interface réseau correspondant à cette zone (varie selon le serveur, utiliser ifconfig pour savoir quelle interface est connectée à quel réseau).
Exemple de /etc/shorewall/zones de Sequoia :
#ZONE   TYPE        OPTIONS     IN          OUT
#                   OPTIONS         OPTIONS
fw  firewall
net     ipv4
loc     ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

Exemple de /etc/shorewall/interfaces de Sequoia :
#ZONE   INTERFACE   BROADCAST   OPTIONS
net eth1 detect
loc eth2 detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

Ensuite, les règles concernant les IP privées (accès MySQL entre les serveurs, par exemple) doivent être appliquées sur loc et non sur net.

Les règles de Shorewall sont définies dans /etc/shorewall/rules .