Modification de la configuration et vulgarisation

master
Pierre Coimbra 2020-02-28 17:40:14 +01:00
parent 60bb560a17
commit b21da67c88
No known key found for this signature in database
GPG Key ID: F9C449C78F6FAEE6
6 changed files with 164 additions and 106 deletions

View File

@ -6,3 +6,4 @@ Vous trouverez ici toute la documentation relative à l'infrastructure réseau.
2. [Topologie du réseau matériel](topologie_reseau_physique.md)
3. [Topologie du réseau virtuel](topologie_reseau_virtuel.md)
4. [Mise en place du réseau](mise_en_place.md)
5. [Logique de l'assignation des adresses IP](logique_ip_ct_vm.md)

View File

@ -0,0 +1,18 @@
# Interfaces des containes / VM
Les addresse IP des conteneurs (en fonction des zones) sont décrite dans leur fiche de documentation et mis en place automatiquement par les playbook Ansible.
Si vous n'utilisez pas Ansible, vous touverez ici les bonnes manière pour choisir les adresses IP
## Zone ADMIN
Tout les conteneurs doivent avoir une interface réseau sur la VLAN 100 du switch administation ce qui permettra d'utiliser Ansible ou de faire, a terme, du monitoring.
Les IP seront de la forme `10.1.0.ID_PROXMOX` ou l'ID Proxmox est le numéro du contenant dans Proxmox
## Le reste
Pour les autres interfaces chosissez une adresse cohérente vis à vis des adresses déjà allouées, la liste est disponible [ici](/reseau/mise_en_place.md).
Les IP sont organisé avec la logique suivante :
- Plus le service est important plus sont numéro est petit,
- Les IP des services redondé ainsi que leur éventuelle IP virtuelle se suivent.

View File

@ -3,18 +3,23 @@ Nous allons ici détaillé la configuration du réseau physique et virtuel. Il e
## Map des IPs principales.
Voilà les IPs attribuées aux services principaux qu'il faut impérativement respecter.
### WAN
Switch Wan VLAN 10
- IP publique ou privée selon le choix fait.
### DMZ
Switch Interne VLAN 10
- Firewall Alpha : 10.0.0.1
- Firewall Beta : 10.0.0.2
- Firewall VIP : 10.0.0.3
- HAProxy Alpha : 10.0.0.4
- HAProxy Beta : 10.0.0.5
- HAProxy VIP : 10.0.0.6
- Proxy Interne : 10.0.0.7
- DNS : 10.0.0.8
- Mail : 10.0.0.10
- Proxmox Alpha :10.0.0.1
- Proxmox Beta : 10.0.0.2
- Firewall Alpha : 10.0.0.3
- Firewall Beta : 10.0.0.4
- HAProxy Alpha : 10.0.0.6
- HAProxy Beta : 10.0.0.7
- HAProxy VIP : 10.0.0.8
- Proxy Interne : 10.0.0.252
- DNS : 10.0.0.253
- Firewall VIP : 10.0.0.254
### PROXY
Switch Interne VLAN 20
@ -22,8 +27,12 @@ Switch Interne VLAN 20
- HAProxy Beta : 10.0.1.2
- Nginx Public Alpha : 10.0.1.3
- Nginx Public Beta : 10.0.1.4
- Mail : 10.0.1.10
- Firewall Alpha : 10.0.1.250
- Firewall Bêta : 10.0.1.251
- Proxy Interne : 10.0.1.252
- DNS : 10.0.1.253
- Proxy Interne : 10.0.1.254
- Firewall VIP : 10.0.0.254
### INT
Switch Interne VLAN 30
@ -32,9 +41,15 @@ Switch Interne VLAN 30
- LDAP VIP : 10.0.2.3
- Nginx Public Alpha : 10.0.2.4
- Nginx Public Beta : 10.0.2.5
- DNS : 10.0.2.253
- Proxy Interne : 10.0.2.254
- Mail Frontend : 10.0.2.10
- Mail Backend : 10.0.2.11
- [...]
- Firewall Alpha : 10.0.2.250
- Firewall Bêta : 10.0.2.251
- Proxy Interne : 10.0.2.252
- DNS : 10.0.2.253
- Firewall VIP : 10.0.2.254
### CTF :
Switch Interne VLAN 40
@ -45,14 +60,21 @@ Switch Interne VLAN 40
- CTFd Special : 10.0.3.11
- Environnement Système : 10.0.3.12
- Environnement Web : 10.0.3.13
- Proxy Interne : 10.0.3.254
- [...] Rajout possible
- [...]
- Firewall Alpha : 10.0.3.250
- Firewall Bêta : 10.0.3.251
- Proxy Interne : 10.0.3.252
- Firewall VIP : 10.0.3.254
### DIRTY :
Switch Interne VLAN 50
- Proxy Interne : 10.0.4.254
- Firewall Alpha : 10.0.4.250
- Firewall Bêta : 10.0.4.251
- Proxy Interne : 10.0.4.252
- Firewall VIP : 10.0.4.254
Pas d'autres containers permanent (10.0.4.0/24)
Pas d'autres conteneurs permanent (10.0.4.0/24)
### GRE internal
Switch Interne VLAN 100
@ -80,7 +102,11 @@ Switch Administration VLAN 100
- Firewall Bêta : 10.1.0.2
- Proxmox Alpha : 10.1.0.3
- Proxmox Beta : 10.1.0.4
- [...] Voir DNS
- [...]
- Proxy Interne : 10.1.0.252
- DNS : 10.1.0.253
- Firewall VIP : 10.1.0.254
# Réseau physique
@ -101,12 +127,12 @@ apt-get install openvswitch-switch
### Pour Alpha (/etc/network/interfaces)
```
#Bond eth1/eth3 pour interne
allow-interne bond0
#Bond eth1/eth3 pour vmbr1
allow-vmbr1 bond0
iface bond0 inet manual
ovs_bonds eth1 eth3
ovs_type OVSBond
ovs_bridge interne
ovs_bridge vmbr1
ovs_options bond_mode=active-backup
auto lo
@ -120,87 +146,93 @@ iface eth2 inet manual
iface eth3 inet manual
# WAN
allow-vmbr0 wan
iface lan inet static
address X.X.X.X
netmask YY
gateway Z.Z.Z.Z
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options tag=10
#WAN OPNSense
auto wan
iface wan inet manual
allow-ovs vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports eth0
#GRE interne
allow-interne vx1
#GRE vmbr1
allow-vmbr1 vx1
iface gre1 inet static
address 10.0.10.1
netmask 24
ovs_type OVSIntPort
ovs_bridge interne
ovs_bridge vmbr1
ovs_options tag=100
#OVS Bridge interne
auto interne
iface interne inet manual
auto vmbr1
iface vmbr1 inet manual
ovs_type OVSBridge
ovs_ports bond0 vx1
up ovs-vsctl set Bridge ${IFACE} rstp_enable=true
up ovs-vsctl --may-exist add-port interne gre1 -- set interface gre1 type=gre options:remote_ip='10.0.10.2'
down ovs-vsctl --if-exists del-port interne gre1
up ovs-vsctl --may-exist add-port vmbr1 gre1 -- set interface gre1 type=gre options:remote_ip='10.0.10.2'
down ovs-vsctl --if-exists del-port vmbr1 gre1
#Admin Task
allow-admin admintask
iface admintask inet static
allow-vmbr0 admintask
iface vmbr0task inet static
address 10.1.0.3
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=100
#Corosync
allow-admin coro
allow-vmbr0 coro
iface coro inet static
address 10.1.1.1
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=10
#pfSync
allow-admin pfsync
allow-vmbr0 pfsync
iface pfsync inet static
address 10.1.2.1
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=20
#GRE admin
allow-admin vx2
#GRE vmbr0
allow-vmbr0 vx2
iface vx2 inet static
address 10.1.10.1
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=30
#OVS Bridge administation
auto admin
iface admin inet manual
auto vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports eth2 vx2
up ovs-vsctl set Bridge ${IFACE} rstp_enable=true
up ovs-vsctl --may-exist add-port admin gre2 -- set interface gre2 type=gre options:remote_ip='10.0.10.2'
down ovs-vsctl --if-exists del-port admin gre2
up ovs-vsctl --may-exist add-port vmbr0 gre2 -- set interface gre2 type=gre options:remote_ip='10.1.10.2'
down ovs-vsctl --if-exists del-port vmbr0 gre2
```
### Pour Beta (/etc/network/interfaces)
```
#Bond eth1/eth3 pour interne
allow-interne bond0
#Bond eth1/eth3 pour vmbr1
allow-vmbr1 bond0
iface bond0 inet manual
ovs_bonds eth1 eth3
ovs_type OVSBond
ovs_bridge interne
ovs_bridge vmbr1
ovs_options bond_mode=active-backup
auto lo
@ -214,75 +246,81 @@ iface eth2 inet manual
iface eth3 inet manual
# WAN
allow-vmbr0 wan
iface lan inet static
address X.X.X.X
netmask YY
gateway Z.Z.Z.Z
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options tag=10
#WAN OPNSense
auto wan
iface wan inet manual
allow-ovs vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports eth0
#GRE interne
allow-interne vx1
#GRE vmbr1
allow-vmbr1 vx1
iface gre1 inet static
address 10.0.10.2
netmask 24
ovs_type OVSIntPort
ovs_bridge interne
ovs_bridge vmbr1
ovs_options tag=100
#OVS Bridge interne
auto interne
iface interne inet manual
auto vmbr1
iface vmbr1 inet manual
ovs_type OVSBridge
ovs_ports bond0 vx1
up ovs-vsctl set Bridge ${IFACE} rstp_enable=true
up ovs-vsctl --may-exist add-port interne gre1 -- set interface gre1 type=gre options:remote_ip='10.0.10.1'
down ovs-vsctl --if-exists del-port interne gre1
up ovs-vsctl --may-exist add-port vmbr1 gre1 -- set interface gre1 type=gre options:remote_ip='10.0.10.1'
down ovs-vsctl --if-exists del-port vmbr1 gre1
#Admin Task
allow-admin coro
allow-vmbr0 admintask
iface coro inet static
address 10.1.0.4
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=100
#Corosync
allow-admin coro
allow-vmbr0 coro
iface coro inet static
address 10.1.1.2
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=10
#pfSync
allow-admin pfsync
allow-vmbr0 pfsync
iface pfsync inet static
address 10.1.2.2
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=20
#GRE admin
allow-admin vx2
#GRE vmbr0
allow-vmbr0 vx2
iface vx2 inet static
address 10.1.10.2
netmask 24
ovs_type OVSIntPort
ovs_bridge admin
ovs_bridge vmbr0
ovs_options tag=30
#OVS Bridge administation
auto admin
iface admin inet manual
auto vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports eth2 vx2
up ovs-vsctl set Bridge ${IFACE} rstp_enable=true
up ovs-vsctl --may-exist add-port admin gre2 -- set interface gre2 type=gre options:remote_ip='10.1.10.1'
down ovs-vsctl --if-exists del-port admin gre2
up ovs-vsctl --may-exist add-port vmbr0 gre2 -- set interface gre2 type=gre options:remote_ip='10.1.10.1'
down ovs-vsctl --if-exists del-port vmbr0 gre2
```

View File

@ -13,11 +13,11 @@ Le réseau interne sera séparé en 5 zones privées :
- PROXY qui sera placée juste après la DMZ et qui contiendra les reverses proxy pour les services autres que les environnements CTF ainsi qu'une Mail Gateway pour faire un relai entre l'extérieur et le serveur mail. Ce relai permettra de filtrer les mails.
- INT qui contiendra les containers des services permanents. La liaison entre INT et PROXY se fera à travers les reverse proxy NGINX et la Mail Gateway.
- INT qui contiendra les conteneurs des services permanents. La liaison entre INT et PROXY se fera à travers les reverse proxy NGINX et la Mail Gateway.
- CTF qui sera la zone dédiée au reverse proxy CTF et aux containers/VMs des environnements CTF. Le lien avec l'extérieur se fera directement au niveau de la DMZ via HAProxy.
- CTF qui sera la zone dédiée au reverse proxy CTF et aux conteneurs / VMs des environnements CTF. Le lien avec l'extérieur se fera directement au niveau de la DMZ via HAProxy.
- DIRTY qui contiendra les containers des services en test.
- DIRTY qui contiendra les conteneurs des services en test.
Les requêtes arriveront sur le pare-feu qui effectuera un premier filtrage et transmettra les requêtes sur les ports 80 et 443 à un des loadbalanceurs, c'est le loadbalanceur qui décidera ensuite si la requête sera retransmise à l'un des reverse proxy de la zone INT ou au reverse proxy de la zone CTF.

View File

@ -1,9 +1,9 @@
# Topologie du réseau physique
Chacune des nodes possède 4 interfaces réseau, pour des questions de redondance et de débit nous allons mettre 2 de ces interfaces en bond pour le réseau interne et la communication entre les deux serveurs. Les deux interfaces restantes seront utilisées pour l'accès à internet et pour le réseau d'administration.
Chacune des nodes possède 4 interfaces réseau. Pour des questions de redondance et de débit nous allons mettre 2 de ces interfaces en Bond pour le réseau interne et la communication entre les deux serveurs. Les deux interfaces restantes seront utilisées pour l'accès à internet et pour le réseau d'administration.
- eth0 sur une interface simple utilisé uniquement par OPNSense via WAN
- eth0 sur une interface simple utilisée uniquement par OPNSense via WAN
- eth2 formera le bridge OVS ADMIN
- eth1 et eth3 formerons le bond OVS bond0 sur le bridge OVS interne
- eth1 et eth3 formeront le bond OVS bond0 sur le bridge OVS interne
Pour faire communiquer entre elles les deux nodes il y aura un switch physique sur lequel sera branché les quatres interfaces des nodes et l'entité de quorum.
Pour faire communiquer entre elles les deux nodes, il y aura un switch physique sur lequel sera branché les quatres interfaces des nodes et l'entité de quorum.

View File

@ -1,47 +1,48 @@
# Topologie du réseau virtuel
Rappel:
- eth0 sur un bridge OVS (WAN) accessible uniquement par OPNSense
- eth2 formera le bridge OVS Admin
- eth1 et eth3 formerons le bond OVS bond0 sur le bridge OVS Interne
- eth0 sur un bridge OVS (vmbr0) accessible uniquement par OPNSense
- eth2 formera le bridge OVS Admin (vmbr2)
- eth1 et eth3 formerons le bond OVS bond0 sur le bridge OVS Interne (vmbr1)
Pour chacune des zones (INT ou CTF) il y a deux types de VM/CT,
Pour chacune des zones (INT ou CTF), il y a deux types de contenants (VM / CT) :
- Les services frontend qui sont directement accessibles depuis internet, derrière le pare-feu (OPNSense).
- Les services backend qui sont accessibles uniquement à travers une frontend.
- Ceux qui sont directement accessible depuis internet derrière OPNSense c'est les services frontend.
- Ceux qui sont accessible uniquement à travers une frontend c'est les services backend.
## Les switchs virtuels
## Les switchs virtuel
- Un switch WAN pour le lien entre l'extérieur, les pares-feu et les hyperviseurs avec comme lien extérieur eth0.
- Un switch Administation pour toute les tâches d'administration avec comme lien extérieur eth2.
- Un switch Interne qui devra gérer, avec des VLANs, l'accès (filtré) à internet des services qui ne sont pas directement derrière le FW (Nextcloud, Git, Serveur Web...) en séparant le tout en plusieurs zones et les services qui sont directement derrière le FW (HAProxy, Proxy des services, Mail et DNS). Avec comme lien extérieur un bond entre eth1 et eth3.
- Un switch WAN (vmbr0), qui permettra de réaliser le lien entre l'extérieur (via eth0) et les pare-feux et entre les pare-feux et les hyperviseurs.
- Un switch virtuel (vmbr1), en séparant le tout en plusieurs zones avec des VLANs, gèrera l'accès à Internet des services qui ne sont pas directement derrière le pare-feu (Nextcloud, Git, Serveur Web...) et les services qui sont directement derrière le pare-feu (HAProxy, DNS et Proxy Interne). Avec comme lien extérieur un bond entre eth1 et eth3.
- Un switch Administation (vmbr2) pour toute les tâches d'administration (Ansible, monitoring). Avec eth2 pour communiquer avec l'autre node.
## Communication des switchs entre les nodes
Tout les hyperviseurs auront une pâte sur le VLAN 100 sur chaque switch pour le protocole GRE qui permet l'échange entre les switchs virtuel de chaque nodes.
Tous les hyperviseurs auront une interface pour le protocole GRE qui permet l'échange entre les switchs virtuels de chaque node.
- Switch Interne -> VLAN 100
- Switch Administration -> VLAN 30
## Services Frontend
Concrètement les containers concernés auront des ports d'entrée DNAT vers eux ce qui signifie qu'ils seront accessible depuis internet à travers le firewall. C'est le cas de HAProxy, du serveur DNS et du Proxy des services.
Concrètement, les conteneurs / VM frontend auront des ports d'entrée DNAT via le pare-feu, les rendant accessibles depuis internet. C'est le cas de HAProxy, du serveur DNS et du Proxy des services.
Tout ces CT auront obligatoirement une pâte sur la VLAN 10 et une VLAN backend du switch Interne.
Tout ces conteneurs auront obligatoirement une interface sur le VLAN 10 et une VLAN backend du switch Interne.
## Services Backend
Les containers ou VMs concerné ne seront pas accessible depuis internet cependant certain seront accessible par l'intermédiaire de HAProxy (entre autres).
Les conteneurs ou VMs concernés ne seront pas accessibles depuis internet. Cependant, certains seront accessibles par l'intermédiaire de HAProxy (entre autres).
Cette parti sera découpé en plusieurs zones,
- PROXY sur la VLAN 20 qui contiendra les reverses proxy public et le relais mail,
- INT sur la VLAN 30 qui contiendra tout les services de la partie krhacken,
- CTF sur la VLAN 40 qui contiendra le reverse proxy CTF et les environnement CTF,
- DIRTY sur la VLAN 50 qui contiendra les environnement de test.
Cette partie sera découpée en plusieurs zones :
- PROXY sur le VLAN 20 qui contiendra les reverses proxy public et le relais mail,
- INT sur le VLAN 30 qui contiendra tous les services de la partie krhacken,
- CTF sur le VLAN 40 qui contiendra le reverse proxy CTF et les environnements CTF,
- DIRTY sur le VLAN 50 qui contiendra les environnements de test.
## Partie Internet
Tout les containers et les VM Backend auront accès à internet via le proxy interne (en frontend). Pour cela ils auront tous une pâte sur la VLAN 80 du switch interne.
Tout les conteneurs et les VM Backend auront accès à internet via le proxy interne (en frontend). L'accès se fera depuis toutes les zones sur l'adresse terminant en .252.
## Partie Administration
- Chaque hyperviseur ainsi que l'entité de Quorum aura une pâte sur la VLAN 10 du switch Administration pour le fonctionnement de Corosync.
- Toutes les VM, tout les CT, les hyperviseurs et l'entité de Quorum auront une pâte sur la VLAN 20 du switch Administration pour les tâches d'administration via le VPN ou localement en cas d'urgence.
- Chaque hyperviseur aura une pâte sur la VLAN 30 su switch Administration pour pfSync (HA du Firewall).
- Chaque hyperviseur ainsi que l'entité de Quorum aura une interface sur le VLAN 10 du switch Administration. Elle servira au fonctionnement de Corosync (nécessaire au cluster Proxmox).
- Chaque hyperviseur aura une interface sur le VLAN 20 du switch Administration pour pfSync (HA du Firewall).
- Toutes les VM, tous les CT, les hyperviseurs et l'entité de Quorum auront une interface sur le VLAN 100 du switch Administration pour les tâches d'administration via le VPN ou localement en cas d'urgence.