Pare-feu + Syntaxe

master
Pierre Coimbra 2020-05-02 15:00:13 +02:00
parent 6df6fca32b
commit f5a763086c
No known key found for this signature in database
GPG Key ID: F9C449C78F6FAEE6
11 changed files with 126 additions and 39 deletions

View File

@ -28,7 +28,7 @@ charge de former leur successeurs.
5. [Sécurisation](proxmox/securisation)
1. [Sécurisation des accès aux hyperviseurs](proxmox/securisation/systeme_authentification_base.md)
2. [Sécurisation des conteneurs / VM avec Ferm](proxmox/securisation/template_ferm.md)
6. [Haute Disponibilité](proxmox/haute_disponibilite.md)
6. [Haute Dreisponibilité](proxmox/haute_disponibilite.md)
7. [Système de sauvegarde](proxmox/sauvegarde)
3. [Réseau](reseau)
1. [Introduction à OpenvSwitch](reseau/introduction_ovs.md)

View File

@ -6,27 +6,27 @@ L'accès au réseau des services est décrit dans la partie réseau, il est donc
# Table des matières
1. [Répartition des services dans les zones](repartition_en_zones.md)
2. [Zone WAN](zone_wan)
1. [OPNSense](zone_wan/opnsense)
1. [Configuration de base](zone_wan/opnsense/configuration_initiale.md)
2. [Options possible pour l'accès extérieur](zone_wan/option_possible.md)
1. [OPNSense](zone_wan/opnsense)
1. [Configuration de base](zone_wan/opnsense/configuration_initiale.md)
2. [Options possible pour l'accès extérieur](zone_wan/option_possible.md)
3. [Zone DMZ](zone_dmz)
1. [HAProxy](zone_dmz/haproxy)
1. [Container HAProxy](zone_dmz/haproxy/haproxy.md)
2. [Certificat SSL Client](zone_dmz/haproxy/certificat_ssl_client.md)
2. [Serveur DNS](zone_dmz/dns.md)
3. [Proxy pour les conteneurs / VM](zone_dmz/proxy_interne.md)
1. [HAProxy](zone_dmz/haproxy)
1. [Container HAProxy](zone_dmz/haproxy/haproxy.md)
2. [Certificat SSL Client](zone_dmz/haproxy/certificat_ssl_client.md)
2. [Serveur DNS](zone_dmz/dns.md)
3. [Proxy pour les conteneurs / VM](zone_dmz/proxy_interne.md)
4. [Zone Proxy](zone_proxy)
1. [Reverse Proxy NGINX](zone_proxy/nginx_principal.md)
2. [Relais mails](#)
1. [Reverse Proxy NGINX](zone_proxy/nginx_principal.md)
2. [Relais mails](#)
5. [Zone Interne](zone_interne)
1. [LDAP](zone_interne/ldap)
1. [Serveur LDAP](zone_interne/ldap/serveur_ldap.md)
2. [Inteface de gestion](zone_interne/ldap/interface_web_ldap.md)
1. [LDAP](zone_interne/ldap)
1. [Serveur LDAP](zone_interne/ldap/serveur_ldap.md)
2. [Inteface de gestion](zone_interne/ldap/interface_web_ldap.md)
2. [Serveur Mail](zone_interne/mail.md)
3. [NextCloud](zone_interne/nextcloud.md)
4. [Gitea](zone_interne/gitea.md)
6. [Zone CTF](zone_ctf)
1. [Reverse Proxy NGINX](zone_ctf/nginx_ctf.md)
2. [Environnement Web](zone_ctf/environnement_web.md)
3. [Environnement Système](zone_ctf/environnement_systeme.md)
4. [CTFd](#)
9. [Zone CTF](zone_ctf)
1. [Reverse Proxy NGINX](zone_ctf/nginx_ctf.md)
2. [Environnement Web](zone_ctf/environnement_web.md)
3. [Environnement Système](zone_ctf/environnement_systeme.md)
4. [CTFd](#)

View File

@ -9,7 +9,7 @@ Les services DMZ devront avoir l'interface réseau suivante :
# Table des matières
1. [HAProxy](haproxy)
1. [Container HAProxy](haproxy/haproxy.md)
2. [Certificat SSL Client](haproxy/certificat_ssl_client.md)
1. [Container HAProxy](haproxy/haproxy.md)
2. [Certificat SSL Client](haproxy/certificat_ssl_client.md)
2. [Serveur DNS](dns.md)
3. [Proxy pour les conteneurs / VM](proxy_interne.md)

View File

@ -9,8 +9,8 @@ Les services de la zone INT devront avoir l'interface réseau suivante :
# Table des matières
1. [LDAP](ldap)
1. [Serveur LDAP](ldap/serveur_ldap.md)
2. [Inteface de gestion](ldap/interface_web_ldap.md)
1. [Serveur LDAP](ldap/serveur_ldap.md)
2. [Interface de gestion](ldap/interface_web_ldap.md)
2. [Serveur Mail](mail.md)
3. [NextCloud](nextcloud.md)
4. [Gitea](gitea.md)

View File

@ -4,4 +4,4 @@ Vous trouverez ici toute la documentation relative à la mise en place du serveu
# Table des matières
1. [Serveur LDAP](serveur_ldap.md)
2. [Inteface de gestion](interface_web_ldap.md)
2. [Interface de gestion](interface_web_ldap.md)

View File

@ -5,11 +5,11 @@ Ce service est redondé car vital, il n'a pas d'IP virtuelle.
Numéro 105 (Alpha)
#### Interface réseau
- eth0 : vmbr1 / VLAN 20 / IP 10.0.1.3 / GW 10.0.1.254
- eth0 : vmbr1 / VLAN 20 / IP 10.0.1.1 / GW 10.0.1.254
Numéro 106 (Beta)
#### Interface réseau
- eth0 : vmbr1 / VLAN 20 / IP 10.0.1.4 / GW 10.0.1.254
- eth0 : vmbr1 / VLAN 20 / IP 10.0.1.2 / GW 10.0.1.254
### Le proxy
#### /etc/apt/apt.conf.d/01proxy
@ -26,8 +26,8 @@ Il doit rediriger les requêtes arrivant de HAProxy vers le bon conteneur en fon
Afin de pouvoir faire des scp de manière automatique entre les deux conteneurs, il faut mettre en place une connexion ssh par clé en root entre les deux conteneurs.
Le procédé est le même, en voici les variantes,
- Sur Alpha le conteneur Nginx aura comme IP 10.0.1.3
- Sur Beta le conteneur HAProxy aura comme IP 10.0.1.4
- Sur Alpha le conteneur Nginx aura comme IP 10.0.1.1
- Sur Beta le conteneur HAProxy aura comme IP 10.0.1.2
### /etc/ssh/sshd_config
Remplacer la ligne concernée par
@ -42,8 +42,8 @@ systemctl restart sshd
```
ssh-keygen -o -a 100 -t ed25519 -f /root/.ssh/id_ed25519
Alpha : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.1.4
Beta : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.1.3
Alpha : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.1.2
Beta : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.1.1
```
### /etc/ssh/sshd_config
@ -61,7 +61,7 @@ Il est maintenant possible de se connecter par clé entre les conteneurs
## Installation de Nginx sur les deux conteneurs
Faite par le playbook Ansible
```
```shell
apt-get update
apt-get install -y nginx
systemctl enable nginx.service
@ -90,7 +90,7 @@ server {
Voilà un script permetant l'installation d'un serveur web présent dans /etc/nginx/sites-available. Il prend en entrée le nom du fichier du serveur à activer. Disponible dans `/root/deploy-webhost.sh` si déployer avec Ansible.
```
```bash
#!/bin/bash
if [ "$#" -eq "0" ]
then
@ -99,11 +99,11 @@ else
ct_ip=$(ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1 | tail -c2)
if [ $ct_ip = 3 ]
then
other_ip=10.0.1.4
other_ip=10.0.1.2
fi
if [ $ct_ip = 4 ]
then
other_ip=10.0.1.3
other_ip=10.0.1.1
fi
if [ -f "/etc/nginx/sites-available/$1" ]
then

View File

@ -10,5 +10,5 @@ Les services DMZ devront avoir l'interface réseau suivante
# Table des matières
1. [OPNSense](opnsense)
1. [Configuration de base](opnsense/configuration_initiale.md)
1. [Configuration de base](opnsense/configuration_initiale.md)
2. [Options possible pour l'accès extérieur](option_possible.md)

View File

@ -0,0 +1,87 @@
# Règles du pare-feu
Ces règles sont à faire sur le firewall de Alpha, elles seront automatiquement répliquées sur Beta.
Nous avons déjà mis en place les règles de NAT dans la configuration initiale. Nous allons maintenant nous occuper le définir et de mettre en place les règles pour les communications entre VLAN.
### Table de routage inter-VLAN
Doit être lu de la manière suivante :
- Les colonnes peuvent communiquer avec les lignes.
- Exemple : ADMIN peut communiquer avec DMZ mais l'inverse est impossible.
| | WAN | DMZ | PROXY | INTERNE | CTF | DIRTY | ADMIN |
| ----------- | :--: | :--: | :---: | :-----: | :--: | :---: | :---: |
| **WAN** | X | X | | | | | |
| **DMZ** | | X | X | X | X | | X |
| **PROXY** | | X | X | | | | X |
| **INTERNE** | | | X | X | | | X |
| **CTF** | | X | | | X | | X |
| **DIRTY** | | | | | | X | X |
| **ADMIN** | | | | | | | X |
Ces communications restreintes à quelques IP et quelques port que nous allons détaillé par la suite.
Nomenclature générale d'une règle type 1 :
```
Interface : ZONE
Protocole : TCP
Source : Hôte unique ou Réseau - <IP du conteneur source>/32
Destination : Hôte unique ou Réseau - <IP du conteneur destination>/32
Plage de ports de destination : Port nécessaire (Pas de plage)
Description : Celle donnée dans le descriptif
```
Nomenclature générale d'une règle type 2 :
```
Interface : ZONE
Protocole : TCP ou TCP/UDP pour le DNS ou ICMP
Source : Hôte unique ou Réseau - <IP du conteneur source>/32
Destination : Hôte unique ou Réseau - 10.0.0.0/8
Plage de ports de destination : any
Description : Celle donnée dans le descriptif
```
### Règles DMZ
HAProxy désigne les deux conteneurs HAProxy.
- Accès à OPN depuis HAProxy (type 1) - Port : 443
- Accès à PVE depuis HAProxy (type 1) - Port : 443
- Accès à NGINX Alpha depuis HAProxy (type 1) - Port : 80
- Accès à NGINX Bêta depuis HAProxy (type 1) - Port : 80
- Accès à NGINX CTF depuis HAProxy (type 1) - Port : 80
- Accès à l'extérieur depuis le proxy (type 2) - TCP
- Accès à l'extérieur depuis le DNS (type 2) - TCP/UDP
### Règles PROXY
- Accès au serveur web interne depuis PROXY (type 1) - Port 80 - Destination : INTERNE net
### Règles ADMIN
- ICMP depuis la zone ADMIN vers tout (type 2) - Protocole : ICMP - Source : ADMIN net
- TCP/UDP depuis la zone ADMIN vers tout (type 2) - Protocole : TCP/UDP - Source : ADMIN net
### Règles Flottant
Nomenclature générale d'une règle flottant :
```
Interface : ADMIN, DMZ, PROXY, INTERNE, CTF, DIRTY
Protocole : TCP
Source : Hôte unique ou Réseau - 10.0.0.0/8
Destination : Hôte unique ou Réseau - <IP du conteneur destination>/32
Plage de ports de destination : Port nécessaire (Pas de plage)
Description : Celle donnée dans le descriptif
```
- Accès depuis toutes les zones au Proxy Interne (Squid) - Port : 3128
- Accès depuis toutes les zones au Proxy Interne (Apt-Cacher) - Port : 9999
- Accès depuis toutes les zones au DNS - Port : 53 (TCP/UDP)

View File

@ -7,7 +7,7 @@ Vous trouverez ici toute la documentation relative au déploiement de Proxmox.
3. [Système de fichiers](systeme_de_fichier.md)
4. [Cluster](creation_cluster.md)
5. [Sécurisation](securisation)
1. [Sécurisation des accès aux hyperviseurs](securisation/systeme_authentification_base.md)
2. [Sécurisation des conteneurs / VM avec Ferm](securisation/template_ferm.md)
1. [Sécurisation des accès aux hyperviseurs](securisation/systeme_authentification_base.md)
2. [Sécurisation des conteneurs / VM avec Ferm](securisation/template_ferm.md)
6. [Haute Disponibilité](haute_disponibilite.md)
7. [Système de sauvegarde](sauvegarde)

View File

@ -19,7 +19,7 @@ Les IP sont organisé avec la logique suivante :
La liste est disponible [ici](mise_en_place.md).
# Règles de pare-feu
# Règles de pare-feu
Afin de permettre à un conteneur d'une zone de communiquer avec un conteneur d'une autre zone il y aura du routage entre VLAN qui sera géré au niveau de OPNSense, tout cela sera détaillé dans la partie OPNSense. Il y aura aussi un pare-feu sur chaque conteneur qui autorisera que ce qui est nécessaire, le détails est disponible [ici](../proxmox/securisation/template_ferm.md).

View File

@ -15,7 +15,7 @@ Le réseau interne sera séparé en 5 zones privées :
- DMZ qui sera située juste après le firewall et qui contiendra les loadbalanceurs (HAProxy), le proxy interne et le serveur DNS interne.
- PROXY qui sera placée juste après la DMZ et qui contiendra les reverses proxy pour les services autres que les environnements CTF, un proxy interne ainsi qu'une Mail Gateway pour faire un relai entre l'extérieur et le serveur mail. Ce relai permettra de filtrer les mails.
- 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 conteneurs des services permanents. La liaison entre INT et PROXY se fera à travers les reverse proxy NGINX et la Mail Gateway.