Passage à un double firewall Alpha/Beta
parent
93ab26d135
commit
c3a2581081
|
@ -1,107 +0,0 @@
|
|||
# Mise en place du firewall OBSELETE
|
||||
Nous allons ici configurer le firewall qui respectera les règles suivantes,
|
||||
- DNAT ports 80,443 vers le ct du proxy NGINX (10.10.0.2) depuis NET vers KRKN
|
||||
- SNAT pour faire du masquerading des packets sortant des CT
|
||||
- Accès SSH vers toutes les zones
|
||||
- Accès à l'interface web Proxmox port 8006 depuis NET vers le firewall
|
||||
- Reverse-Proxy NGINX pour l'interface web Proxmox ports 8006,5902 depuis le CT NGINX vers le firewall
|
||||
|
||||
Nous utilisons Shorewall et non iptables ou le firewall de Proxmox pour des raisons de simplicité.
|
||||
|
||||
## Ajout des interfaces virtuelle
|
||||
On va ajouter nos deux interfaces virtuelles (vmbr0 et vmbr1) non bridgé sur eth0 et disposant chacune d'une plage ipv4 différente.
|
||||
|
||||
### /etc/network/interface
|
||||
##### Depuis Alpha et Beta on ajoute
|
||||
```
|
||||
auto vmbr0
|
||||
iface vmbr0 inet static
|
||||
address 10.10.0.1
|
||||
netmask 255.255.248.0
|
||||
bridge_ports none
|
||||
bridge_stp off
|
||||
bridge_fd 0
|
||||
|
||||
auto vmbr1
|
||||
iface vmbr1 inet static
|
||||
address 10.20.0.1
|
||||
netmask 255.255.240.0
|
||||
bridge_ports none
|
||||
bridge_stp off
|
||||
bridge_fd 0
|
||||
```
|
||||
|
||||
Nous avons maintenant deux interfaces virtuelle qui ne bridge pas vers l'extérieur. Le raccord avec l'extérieur va se faire avec shorewall.
|
||||
|
||||
### /etc/shorewall/conntrack
|
||||
Garder le fichier d'origine
|
||||
|
||||
##< /etc/shorewall/interfaces
|
||||
Associations interfaces/zones.
|
||||
```
|
||||
#ZONE INTERFACE BROADCAST OPTIONS
|
||||
net eth0 ip_publique tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0
|
||||
krkn vmbr1 - tcpflags,nosmurfs,routefilter,logmartians
|
||||
ext vmbr2 - tcpflags,nosmurfs,routefilter,logmartians
|
||||
```
|
||||
|
||||
### /etc/shorewall/policy
|
||||
Définition de la politique global du pare-feu.
|
||||
```
|
||||
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
|
||||
$FW net ACCEPT
|
||||
krkn net ACCEPT
|
||||
ext net ACCEPT
|
||||
krkn ext ACCEPT
|
||||
net all DROP info
|
||||
#THE FOLLOWING POLICY MUST BE LAST
|
||||
all all REJECT info
|
||||
|
||||
```
|
||||
|
||||
### /etc/shorewall/rules
|
||||
Définition des exceptions aux règles définies dans le fichier policy.
|
||||
```
|
||||
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER
|
||||
# PORT PORT(S) DEST LIMIT GROUP
|
||||
?SECTION ALL
|
||||
?SECTION ESTABLISHED
|
||||
?SECTION RELATED
|
||||
?SECTION INVALID
|
||||
?SECTION UNTRACKED
|
||||
?SECTION NEW
|
||||
Invalid(DROP) net all tcp
|
||||
DNS(ACCEPT) $FW net
|
||||
SSH(ACCEPT) net all
|
||||
Ping(ACCEPT) all $FW
|
||||
#Ping(DROP) net $FW
|
||||
ACCEPT $FW krkn icmp
|
||||
ACCEPT $FW ext icmp
|
||||
ACCEPT $FW net icmp
|
||||
ACCEPT net $FW icmp
|
||||
#Nginx reverse-proxy Proxmox web interface
|
||||
ACCEPT krkn:10.10.0.2 $FW tcp 8006,5902
|
||||
#Proxmox web interface
|
||||
ACCEPT net $FW tcp 8006
|
||||
#LXC Nginx
|
||||
DNAT net krkn:10.10.0.2 tcp 80,443
|
||||
```
|
||||
### /etc/shorewall/snat
|
||||
Configuration SNAT permettant de faire du "masquerading", ainsi les paquets qui sortent des CT LXC ont comme IP source, l'IP de l'interface externe _eth0_.
|
||||
```
|
||||
#ACTION SOURCE DEST
|
||||
MASQUERADE vmbr1 eth0
|
||||
MASQUERADE vmbr2 eth0
|
||||
```
|
||||
### /etc/shorewall/zones
|
||||
Définition des zones et de leur type.
|
||||
```
|
||||
#ZONE TYPE
|
||||
fw firewall
|
||||
net ipv4
|
||||
krkn ipv4
|
||||
ext ipv4
|
||||
```
|
||||
|
||||
Nous avons maintenant un firewall qui respecte les règles défini.
|
||||
A noté qu'il n'y a pas de firewall sur l'interface eth3 car elle est en local.
|
|
@ -0,0 +1,101 @@
|
|||
# Mise en place du firewall de Alpha
|
||||
|
||||
Nous avons déjà deux interfaces virtuelle qui ne bridge pas vers l'extérieur. Le raccord avec l'extérieur va se faire avec shorewall.
|
||||
|
||||
## Installation de Shorewall
|
||||
```
|
||||
apt-get update
|
||||
apt-get install shorewall
|
||||
cp /usr/share/doc/shorewall/examples/Universal/* /etc/shorewall/
|
||||
```
|
||||
Shorewall est maintenant installé
|
||||
|
||||
## Configuration de Shorewall
|
||||
|
||||
### /etc/shorewall/conntrack
|
||||
Garder le fichier d'origine
|
||||
|
||||
##< /etc/shorewall/interfaces
|
||||
Associations des interfaces du système avec les zones du parefeu
|
||||
```
|
||||
?FORMAT 2
|
||||
#ZONE INTERFACE OPTIONS
|
||||
int eth1 tcpflags,nosmurfs,bridge,logmartians,routefilter
|
||||
coro eth2 tcpflags,nosmurfs,logmartians
|
||||
net vmbr0 tcpflags,nosmurfs,bridge,routefilter,logmartians,routeback
|
||||
krkn vmbr1 tcpflags,nosmurfs,bridge,routefilter,logmartians,routeback
|
||||
ext vmbr2 tcpflags,nosmurfs,bridge,routefilter,logmartians,routeback
|
||||
```
|
||||
|
||||
### /etc/shorewall/policy
|
||||
Définition de la politique globale du pare-feu
|
||||
```
|
||||
#SOURCE DEST POLICY LOGLEVEL
|
||||
$FW net ACCEPT
|
||||
$FW int ACCEPT
|
||||
krkn net ACCEPT
|
||||
ext net ACCEPT
|
||||
int net ACCEPT
|
||||
|
||||
ext krkn DROP info
|
||||
net all DROP info
|
||||
all all REJECT info
|
||||
|
||||
```
|
||||
|
||||
## /etc/shorewall/rules
|
||||
Définition des exceptions aux règles définies dans le fichier policy
|
||||
```
|
||||
#ACTION SOURCE DEST PROTO DEST SOURCE
|
||||
?SECTION ALL
|
||||
?SECTION ESTABLISHED
|
||||
?SECTION RELATED
|
||||
?SECTION INVALID
|
||||
?SECTION UNTRACKED
|
||||
?SECTION NEW
|
||||
|
||||
Invalid(DROP) net all tcp
|
||||
DNS(ACCEPT) $FW net
|
||||
Ping(ACCEPT) all $FW
|
||||
|
||||
#Connexion SSH vers et depuis Beta et extérieur
|
||||
SSH(ACCEPT) int $FW
|
||||
SSH(ACCEPT) net all
|
||||
SSH(ACCEPT) $FW int
|
||||
|
||||
#Nécessaire pour l'initialisation du corosync
|
||||
ACCEPT coro $FW icmp
|
||||
|
||||
ACCEPT $FW krkn icmp
|
||||
ACCEPT $FW ext icmp
|
||||
ACCEPT $FW net icmp
|
||||
ACCEPT krkn ext icmp
|
||||
|
||||
#Interface web proxmox
|
||||
ACCEPT krkn:10.10.0.3 $FW tcp 8006,5902
|
||||
ACCEPT net $FW tcp 8006
|
||||
|
||||
#DNAT pour le proxy Nginx
|
||||
DNAT net krkn:10.10.0.3 tcp 80,443
|
||||
```
|
||||
### /etc/shorewall/snat
|
||||
Configuration SNAT permettant de faire du "masquerading", ainsi les paquets qui sortent des CT LXC ont comme IP source, l'IP de l'interface externe _eth0_.
|
||||
```
|
||||
#ACTION SOURCE DEST
|
||||
MASQUERADE vmbr1 vmbr0
|
||||
MASQUERADE vmbr2 vmbr0
|
||||
MASQUERADE enp0s8 vmbr0
|
||||
```
|
||||
### /etc/shorewall/zones
|
||||
Définition des zones et de leur type.
|
||||
```
|
||||
#ZONE TYPE
|
||||
fw firewall
|
||||
net ipv4
|
||||
krkn ipv4
|
||||
ext ipv4
|
||||
coro ipv4
|
||||
int ipv4
|
||||
```
|
||||
|
||||
Le firewall de Alpha est maintenant configuré comme décrit dans le shéma global du réseau.
|
Loading…
Reference in New Issue