Changement total de l'infra réseau

This commit is contained in:
Pierre Coimbra
2020-05-02 13:55:38 +02:00
parent c32b5f161c
commit 6df6fca32b
36 changed files with 473 additions and 608 deletions

View File

@@ -4,24 +4,8 @@ Vous trouverez ici toute la documentation relative au fonctionnement et à la co
Cela comprend les deux HAProxy, le serveur DNS et le proxy pour l'accès à internet des contenants.
## Réseau
Les services DMZ devront avoir les interfaces réseau suivantes :
Les services DMZ devront avoir l'interface réseau suivante :
- Bridge Interne VLAN 10 (DMZ)
- Bridge Admin VLAN 100 (ADMIN)
Pour HAProxy
- Bridge Interne VLAN 20 (PROXY)
- Bridge Interne VLAN 40 (CTF)
Pour Bind9
- Bridge Interne VLAN 20 (PROXY)
- Bridge Interne VLAN 30 (INT)
- Bridge Interne VLAN 40 (CTF)
Pour Squid
- Bridge Interne VLAN 20 (PROXY)
- Bridge Interne VLAN 30 (INT)
- Bridge Interne VLAN 40 (CTF)
- Bridge Interne VLAN 50 (DIRTY)
# Table des matières
1. [HAProxy](haproxy)

View File

@@ -8,18 +8,15 @@ On conseille généralement de ne pas faire les deux sur un même serveur. En ef
## Le conteneur
Numéro 107 (Beta)
#### Trois interfaces
- eth0 : vmbr1 / VLAN 10 / IP 10.0.0.253 / GW 10.0.0.254
- eth1 : vmbr1 / VLAN 20 / IP 10.0.1.253 / GW 10.0.1.254
- eth2 : vmbr1 / VLAN 30 / IP 10.0.2.253 / GW 10.0.2.254
- eth3 : vmbr2 / VLAN 100 / IP 10.1.0.107 / GW 10.1.0.254
#### Interface réseau
- eth0 : vmbr1 / VLAN 20 / IP 10.0.1.253 / GW 10.0.1.254
### Le proxy
#### /etc/apt/apt.conf.d/01proxy
```
Acquire::http {
Proxy "http://10.0.2.252:9999";
Proxy "http://10.0.0.252:9999";
};
```
@@ -77,45 +74,65 @@ logging {
```
## Gestion par vue
Pour savoir depuis quelle zone de notre réseau la requête est faites nous allons utiliser les vues de bind9 ainsi le serveur pourra renvoyer une IP différente en fonction de la zone.
Le serveur aura une pâte sur chaque zone comme décrit ci-dessous :
- DMZ -> 10.0.0.253
- PROXY -> 10.0.1.253
- INT -> 10.0.2.253
Pour savoir depuis quelle zone de notre réseau la requête est faites nous allons utiliser les vues de bind9 ainsi le serveur pourra renvoyer une IP différente en fonction de la zone. Bind choisi la zone du client en fonction de l'adresse IP source.
On définit deux zones DNS, une première, **front**, qui regroupe les zones DMZ et PROXY et une seconde, **back** qui regroupe les zones PROXY et INT.
On définit quatres zones DNS, une première, **front**, pour la zones DMZ, une seconde, **proxy** pour la zone PROXY, une troisième **back** pour la zone Interne et une quatrième **admin** qui regroupe toutes les zones.
### /etc/bind/named.conf
```
include "/etc/bind/named.conf.options";
acl front {
127.0.0.1;
acl proxy {
10.0.0.0/24;
};
acl back {
acl proxy {
127.0.0.1;
10.0.1.0/24;
};
acl back {
10.0.2.0/24;
};
acl admin {
10.1.0.0/24;
};
view "internalfront" {
recursion yes;
match-clients {front;};
allow-query {front;};
allow-recursion {front;};
allow-query-cache {front;};
match-clients {proxy;};
allow-query {proxy;};
allow-recursion {proxy;};
allow-query-cache {proxy;};
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/zones.rfc1918";
zone "krhacken.org" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.front";
file "/etc/bind/zones/db.krhacken.org.proxy";
};
zone "0.0.10.in-addr.arpa" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.intrafront.rev";
};
};
view "internalproxy" {
recursion yes;
match-clients {proxy;};
allow-query {proxy;};
allow-recursion {proxy;};
allow-query-cache {proxy;};
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/zones.rfc1918";
zone "krhacken.org" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.proxy";
};
zone "1.0.10.in-addr.arpa" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.intrafront.rev";
file "/etc/bind/zones/db.krhacken.org.intraproxy.rev";
};
};
view "internalback" {
@@ -131,105 +148,256 @@ view "internalback" {
type master;
file "/etc/bind/zones/db.krhacken.org.back";
};
zone "1.1.10.in-addr.arpa" {
zone "2.0.10.in-addr.arpa" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.intraback.rev";
};
};
view "internaladmin" {
recursion yes;
match-clients {admin;};
allow-query {admin;};
allow-recursion {admin;};
allow-query-cache {admin;};
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/zones.rfc1918";
zone "krhacken.org" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.admin";
};
zone "0.1.10.in-addr.arpa" {
notify no;
type master;
file "/etc/bind/zones/db.krhacken.org.intraadmin.rev";
};
};
```
## Les serveurs récursif-cache
Voici les trois fichiers pour la configuration pour les forward DNS.
Pour la zone **front** :
### /etc/bind/zones/db.krhacken.org.front
```
$TTL 10800
@ IN SOA dns.krhacken.org. dnsmaster.krhacken.org. (
2015010101 ; Serial
@ IN SOA dns.krhacken.org. r.krhacken.org. (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
IN NS dns.krhacken.org. ;Nom du serveur
alpha.fw IN A 10.0.0.1
beta.fw IN A 10.0.0.2
vip.fw IN A 10.0.0.3
alpha.haproxy IN A 10.0.0.4
beta.haproxy IN A 10.0.0.5
vip.haproxy IN A 10.0.0.6
proxyint IN A 10.0.0.7
mail IN A 10.0.0.10
dns IN A 10.0.0.253
alpha.nginx IN A 10.0.1.3
beta.nginx IN A 10.0.1.4
IN NS dns.krhacken.org.
alpha.pve IN A 10.0.0.1
beta.pve IN A 10.0.0.2
alpha.fw IN A 10.0.0.3
beta.fw IN A 10.0.0.4
alpha.haproxy IN A 10.0.0.5
beta.haproxy IN A 10.0.0.6
vip.haproxy IN A 10.0.0.7
proxy IN A 10.0.0.252
dns IN A 10.0.1.253
vip.fw IN A 10.0.1.254
```
Pour la zone **proxy** :
```
$TTL 10800
@ IN SOA dns.krhacken.org. r.krhacken.org. (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
IN NS dns.krhacken.org.
alpha.nginx IN A 10.0.1.1
beta.nginx IN A 10.0.1.2
mail IN A 10.0.1.5
alpha.fw IN A 10.0.1.252
beta.fw IN A 10.0.1.253
vip.fw IN A 10.0.1.254
```
Pour la zones **back** :
### /etc/bind/zones/db.krhacken.org.back
```
$TTL 10800
@ IN SOA dns.krhacken.org. dnsmaster.krhacken.org. (
2015010101 ; Serial
@ IN SOA dns.krhacken.org. r.krhacken.org. (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
IN NS dns.krhacken.org.
IN A 10.0.2.7
alpha.ldap IN A 10.0.2.1
beta.ldap IN A 10.0.2.2
vip.ldap IN A 10.0.2.3
mail IN A 10.0.2.4
back.mail IN A 10.0.2.5
ldapui IN A 10.0.2.6
wiki IN A 10.0.2.8
cloud IN A 10.0.2.10
git IN A 10.0.2.11
keyserver IN A 10.0.2.12
pass IN A 10.0.2.13
alpha.fw IN A 10.0.2.252
beta.fw IN A 10.0.2.253
vip.fw IN A 10.0.2.254
```
Pour la zone **admin** :
### /etc/bind/zones/db.krhacken.org.admin
```
$TTL 10800
@ IN SOA dns.krhacken.org. r.krhacken.org (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
IN NS dns.krhacken.org. ;Nom du serveur
alpha.haproxy IN A 10.0.1.1
beta.haproxy IN A 10.0.1.2
alpha.ldap IN A 10.0.2.1
beta.ldap IN A 10.0.2.2
vip.ldap IN A 10.0.2.3
alpha.nginx IN A 10.0.2.4
beta.nginx IN A 10.0.2.5
dns IN A 10.0.2.253
proxyint IN A 10.0.2.254
master.haproxy IN A 10.0.0.6
slave.haproxy IN A 10.0.0.7
proxy IN A 10.0.0.252
master.nginx IN A 10.0.1.3
slave.nginx IN A 10.0.1.4
dns IN A 10.0.0.253
ldap IN A 10.0.2.1
mail IN A 10.0.2.10
ldapui IN A 10.0.2.15
nextcloud IN A 10.0.2.20
gitea IN A 10.0.2.21
rocketchat IN A 10.0.2.30
drone IN A 10.0.2.14
ctf.nginx IN A 10.0.3.4
club.ctfd IN A 10.0.3.10
ct.snt IN A 10.0.3.50
blog IN A 10.0.2.50
grafana IN A 10.1.0.252
ansible IN A 10.1.0.253
opn IN A 10.0.0.254
vm.snt IN A 10.0.3.10
```
INT
## Les serveurs dautorité
Voici les trois fichiers pour la configuration pour les reverses DNS.
Pour la zone **front** :
### /etc/bind/zones/db.krhacken.org.intrafront.rev
```
REV
$TTL 10800
@ IN SOA dns.krhacken.org. dnsmaster.krhacken.org. (
2015021102 ; Serial
@ IN SOA dns.krhacken.org. r.krhacken.org. (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
@ IN NS dns.krhacken.org.
253 IN PTR dns.krhacken.org.
1 IN PTR alpha.fw.krhacken.org.
2 IN PTR beta.fw.krhacken.org.
3 IN PTR vip.fw.krhacken.org.
4 IN PTR alpha.haproxy.krhacken.org.
5 IN PTR beta.haproxy.krhacken.org.
6 IN PTR vip.haproxy.krhacken.org.
7 IN PTR proxyint.krhacken.org.
10 IN PTR mail.krhacken.org.
3 IN PTR alpha.nginx.krhacken.org.
4 IN PTR beta.nginx.krhacken.org.
1 IN PTR alpha.pve.krhacken.org.
2 IN PTR beta.pve.krhacken.org.
3 IN PTR alpha.fw.krhacken.org.
4 IN PTR beta.fw.krhacken.org.
5 IN PTR alpha.haproxy.krhacken.org.
6 IN PTR beta.haproxy.krhacken.org.
7 IN PTR vip.haproxy.krhacken.org.
252 IN PTR proxy.krhacken.org.
254 IN PTR vip.fw.krhacken.org.
```
Pour la zone **proxy** :
### /etc/bind/zones/db.krhacken.org.intraproxy.rev
```
REV
$TTL 10800
@ IN SOA dns.krhacken.org. r.krhacken.org. (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
@ IN NS dns.krhacken.org.
1 IN PTR alpha.nginx.krhacken.org.
2 IN PTR beta.nginx.krhacken.org.
5 IN PTR mail.krhacken.org.
252 IN PTR alpha.haproxy.krhacken.org.
253 IN PTR beta.haproxy.krhacken.org.
254 IN PTR vip.fw.krhacken.org.
```
Pour la zone **back** :
### /etc/bind/zones/db.krhacken.org.intraback.rev
```
REV
$TTL 10800
@ IN SOA dns.krhacken.org. dnsmaster.krhacken.org. (
2015021102 ; Serial
@ IN SOA dns.krhacken.org. r.krhacken.org. (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
@ IN NS dns.krhacken.org.
253 IN PTR dns.krhacken.org.
1 IN PTR alpha.haproxy.krhacken.org.
2 IN PTR beta.haproxy.krhacken.org.
1 IN PTR alpha.ldap.krhacken.org.
2 IN PTR beta.ldap.krhacken.org.
3 IN PTR vip.ldap.krhacken.org.
4 IN PTR alpha.nginx.krhacken.org.
5 IN PTR beta.nginx.krhacken.org.
254 IN PTR proxyint.krhacken.org.
4 IN PTR mail.krhacken.org.
5 IN PTR back.mail.krhacken.org.
6 IN PTR ldapui.krhacken.org.
7 IN PTR krhacken.org.
8 IN PTR wiki.krhacken.org.
10 IN PTR cloud.krhacken.org.
11 IN PTR git.krhacken.org.
12 IN PTR keyserver.krhacken.org.
13 IN PTR pass.krhacken.org.
252 IN PTR alpha.fw.krhacken.org.
253 IN PTR beta.fw.krhacken.org.
254 IN PTR vip.fw.krhacken.org.
```
Pour la zone **admin** :
### /etc/bind/zones/db.krhacken.org.intraadmin.rev
```
$TTL 10800
@ IN SOA dns.krhacken.org. r.krhacken.org (
2020050101 ; Serial
5400 ; Refresh
2700 ; Retry
2419200 ; Expire
300 ) ; Negative TTL
@ IN NS dns.krhacken.org.
6 IN PTR master.haproxy.krhacken.org.
7 IN PTR slave.haproxy.krhacken.org.
252 IN PTR proxy.krhacken.org.
3 IN PTR master.nginx.krhacken.org.
4 IN PTR slave.nginx.krhacken.org.
253 IN PTR dns.krhacken.org.
1 IN PTR ldap.krhacken.org.
10 IN PTR mail.krhacken.org.
15 IN PTR ldapui.krhacken.org.
20 IN PTR nextcloud.krhacken.org.
21 IN PTR gitea.krhacken.org.
30 IN PTR rocketchat.krhacken.org.
14 IN PTR drone.krhacken.org.
4 IN PTR ctf.nginx.krhacken.org.
10 IN PTR club.ctfd.krhacken.org.
50 IN PTR ct.snt.krhacken.org.
50 IN PTR blog.krhacken.org.
252 IN PTR grafana.krhacken.org.
253 IN PTR ansible.krhacken.org.
254 IN PTR opn.krhacken.org.
10 IN PTR vm.snt.krhacken.org.
```
Redémarrage de bind9

View File

@@ -5,7 +5,7 @@ Faire les commandes dans `/home/hasync/ssl`
## Création du premier certificat client
### Création du certificat serveur
```
```shell
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
```
@@ -24,7 +24,7 @@ Email Address []:contact@krhacken.org
### Création de la clé et du CSR du client
```
```shell
openssl req -newkey rsa:2048 -nodes -keyout client.key -out client.csr
```
@@ -45,7 +45,7 @@ A challenge password []:
An optional company name []:
```
```
```shell
openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
openssl req -newkey rsa:2048 -nodes -keyout haproxy.key -out haproxy.csr
```
@@ -69,18 +69,18 @@ A challenge password []:
An optional company name []:
```
```
```shell
openssl x509 -req -days 365 -in haproxy.csr -CA ca.crt -CAkey ca.key -set_serial 02 -out haproxy.crt
```
### Création du certificat pour le navigateur
```
```shell
openssl pkcs12 -export -out haproxy_user.pfx -inkey haproxy.key -in haproxy.crt -certfile ca.crt
```
## Génération d'un second certificat
```
```shell
openssl req -newkey rsa:2048 -nodes -keyout haproxy2.key -out haproxy2.csr
```
### Spécification du certificat Client
@@ -103,7 +103,7 @@ An optional company name []:
### Certificat pour le navigateur
```
```shell
openssl x509 -req -days 365 -in haproxy2.csr -CA ca.crt -CAkey ca.key -set_serial 03 -out haproxy2.crt
openssl pkcs12 -export -out haproxy_user2.pfx -inkey haproxy2.key -in haproxy2.crt -certfile ca.crt
```
@@ -112,7 +112,7 @@ Il faut maintenant que vous ajoutiez ce certificat à vos certificats Firefox
### Copie des certificats
On copie le certificat pour HAProxy
```
```shell
cp ca.crt /home/hasync/pve.crt
scp ca.crt root@10.0.0.7:/home/hasync/pve.crt
```

View File

@@ -6,22 +6,19 @@ Cela consiste en la gestion des flux post firewall.
Deux conteneurs Debian 10 identiques, un sur Alpha l'autre sur Bêta avec deux interfaces :
Numéro 102 (Alpha)
#### Trois interfaces
- eth0 : vmbr1 / VLAN 10 / IP 10.0.0.6 / GW 10.0.0.254
- eth1 : vmbr1 / VLAN 20 / IP 10.0.1.1 / GW 10.0.1.254
- eth2 : vmbr2 / VLAN 100 / IP 10.1.0.102 / GW 10.1.0.254
#### Interface réseau
- eth0 : vmbr1 / VLAN 10 / IP 10.0.0.5 / GW 10.0.0.254
Numéro 103 (Beta)
#### Trois interfaces
- eth0 : vmbr1 / VLAN 10 / IP 10.0.0.7 / GW 10.0.0.254
- eth1 : vmbr1 / VLAN 20 / IP 10.0.1.2 / GW 10.0.1.254
- eth2 : vmbr2 / VLAN 100 / IP 10.1.0.103 / GW 10.1.0.254
#### Interface réseau
- eth0 : vmbr1 / VLAN 10 / IP 10.0.0.6 / GW 10.0.0.254
### Le proxy
#### /etc/apt/apt.conf.d/01proxy
```
Acquire::http {
Proxy "http://10.0.2.252:9999";
Proxy "http://10.0.0.252:9999";
};
```
@@ -50,8 +47,8 @@ Voici les choix techniques faits afin de répondre à ces objectifs :
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 HAProxy aura comme IP 10.0.0.6
- Sur Beta le conteneur HAProxy aura comme IP 10.0.0.7
- Sur Alpha le conteneur HAProxy aura comme IP 10.0.0.5
- Sur Beta le conteneur HAProxy aura comme IP 10.0.0.6
### /etc/ssh/sshd_config
Remplacer la ligne concernée par
@@ -68,9 +65,9 @@ Utilisateur crée par le playbook Ansible
adduser hasync
ssh-keygen -o -a 100 -t ed25519 -f /root/.ssh/id_ed25519
Alpha : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.0.7
Alpha : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.0.6
Beta : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.0.6
Beta : ssh-copy-id -i /root/.ssh/id_ed25519 root@10.0.0.5
```
### /etc/ssh/sshd_config
@@ -88,18 +85,18 @@ Il est maintenant possible de se connecter par clé entre les conteneurs
## Installation et configuration de HAProxy sur chaque node
Le procédé est le même, en voici les variantes :
- Sur Alpha le conteneur HAProxy aura comme IP 10.0.0.6
- Sur Beta le conteneur HAProxy aura comme IP 10.0.0.7
- Sur Alpha le conteneur HAProxy aura comme IP 10.0.0.5
- Sur Beta le conteneur HAProxy aura comme IP 10.0.0.6
### Installation
Faite par le playbook Ansible
```
```shell
apt-get update
apt-get install -y haproxy hatop certbot nginx psmisc
systemctl enable haproxy
systemctl enable nginx
```
```
```shell
rm /etc/nginx/sites-enabled/default
rm /etc/nginx/sites-available/default
rm /etc/letsencrypt/live/README
@@ -255,21 +252,21 @@ server {
ln -s /etc/nginx/sites-available/letsencrypt.conf /etc/nginx/sites-enabled/
```
### Démarrage des services
```
```shell
systemctl restart nginx.service
systemctl restart haproxy.service
```
## Mise en place de la haute disponibilité du load balanceur
Voilà la configuration que nous allons mettre en place :
- Sur Alpha le conteneur HAProxy aura comme IP 10.0.0.6
- Sur Beta le conteneur HAProxy aura comme IP 10.0.0.7
- L'IP virtuelle 10.0.0.8 sera attribuée en fonction de la disponibilité des load balanceur
- Sur Alpha le conteneur HAProxy aura comme IP 10.0.0.5
- Sur Beta le conteneur HAProxy aura comme IP 10.0.0.6
- L'IP virtuelle 10.0.0.7 sera attribuée en fonction de la disponibilité des load balanceur
- La node Alpha sera le master et la node Beta sera le Slave
### Installation (commune au deux nodes)
Faites par le playbook Ansible.
```
```shell
apt-get install -y keepalived
systemctl enable keepalived.service
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
@@ -293,7 +290,7 @@ vrrp_instance VI_1 {
virtual_router_id 51
priority 101 # 101 on master, 100 on backup
virtual_ipaddress {
10.0.0.8 # the virtual IP
10.0.0.7 # the virtual IP
}
track_script {
chk_haproxy
@@ -320,7 +317,7 @@ vrrp_instance VI_1 {
virtual_router_id 51
priority 100 # 101 on master, 100 on backup
virtual_ipaddress {
10.0.0.8 # the virtual IP
10.0.0.7 # the virtual IP
}
track_script {
chk_haproxy
@@ -332,7 +329,7 @@ systemctl restart keepalived
```
#### Vérification
Le retour de cette commande doit montrer l'adresse IP 10.0.0.8 sur Alpha
Le retour de cette commande doit montrer l'adresse IP 10.0.0.7 sur Alpha
```
ip a | grep -e inet.*eth0
```
@@ -346,17 +343,17 @@ certbot certonly --webroot -w /home/hasync/letsencrypt-requests/ -d sub.krhacken
```
Voici un script pour mettre en place les certificats Let's Encrypt au bon endroit qui s'occupe de propager les certificats sur l'autre conteneur (depuis Alpha vers Beta). Disponible dans `/root/install-certs.sh` si créer avec Ansible.
```
```bash
#!/bin/bash
if [ "$(ip a | grep -c "10.0.0.8")" -ge 1 ]; then
if [ "$(ip a | grep -c "10.0.0.7")" -ge 1 ]; then
ct_ip=$(ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1 | head -n 1 | tail -c2)
if [ $ct_ip = 6 ]
then
other_ip=10.0.0.7
other_ip=10.0.0.6
fi
if [ $ct_ip = 7 ]
then
other_ip=10.0.0.6
other_ip=10.0.0.5
fi
rm -f /etc/letsencrypt/live/README
rm -rf /etc/ssl/letsencrypt/*
@@ -375,17 +372,17 @@ Pour une question de simplicité d'administration, les certificats Let's Encrypt
### /home/hasync/renew.sh
Voilà un script d'automatisation à mettre sur les deux conteneurs. Déjà présent si installer avec Ansible.
```
```bash
#!/bin/bash
if [ "$(ip a | grep -c "10.0.0.8")" -ge 1 ]; then
if [ "$(ip a | grep -c "10.0.0.7")" -ge 1 ]; then
ct_ip=$(ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1 | head -n 1 | tail -c2)
if [ $ct_ip = 6 ]
then
other_ip=10.0.0.7
other_ip=10.0.0.6
fi
if [ $ct_ip = 7 ]
then
other_ip=10.0.0.6
other_ip=10.0.0.5
fi
certbot renew
rm -rf /etc/ssl/letsencrypt/*

View File

@@ -13,16 +13,11 @@ Au niveau des ressources allouées :
- 1 Coeur
- 1Gb de RAM
- 1Gb de SWAP
- 24Gb de Stockage
- 16Gb de Stockage
Au niveau des interfaces réseaux :
Firewall toujours désactiver.
Interface réseau :
- eth0: vmbr1 / VLAN: 10 / IP: 10.0.0.252/24 / GW: 10.0.0.254
- eth1: vmbr1 / VLAN: 20 / IP: 10.0.1.252/24
- eth2: vmbr1 / VLAN: 30 / IP: 10.0.2.252/24
- eth3: vmbr1 / VLAN: 40 / IP: 10.0.3.252/24
- eth4: vmbr1 / VLAN: 50 / IP: 10.0.4.252/24
- eth5: vmbr2 / VLAN: 100 / IP: 10.1.0.104/24 / GW: 10.1.0.254
Dans les options activé le démarrage automatique.
@@ -41,7 +36,7 @@ Allow HTTP tunnel throutgt Apt-Cacher NG? -> No
### /etc/apt-cacher-ng/acng.conf
```
Port: 9999
BindAddress: 10.0.1.252 10.0.2.252 10.0.3.252 10.0.4.252 10.1.0.104
BindAddress: 10.0.0.252
PassThroughPattern: ^(.*):443$
```
```
@@ -68,11 +63,8 @@ apt-get install -y squid3 ca-certificates
#acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
#acl localnet src fc00::/7 # RFC 4193 local private network range
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl localnet src 10.0.1.0/24 # Zone Proxy
acl localnet src 10.0.2.0/24 # Zone Int
acl localnet src 10.0.3.0/24 # Zone CTF
acl localnet src 10.0.4.0/24 # Zone Dirty
acl localnet src 10.1.0.0/24 # Zone Admin
acl localnet src 10.0.0.0/8 # L'ensemble des zones
[...]
@@ -90,20 +82,15 @@ Squid est maintenant accessible depuis le port 3128 du proxy interne uniquement
Les outils principaux sont WGET et APT-GET on va donc les reliées au Proxy Interne.
Le proxy interne sera accessible uniquement depuis les zones PROXY, INT, CTF et DIRTY voilà l'ip du proxy en fonction de la zone :
- PROXY (VLAN 20) -> 10.0.1.252
- INT (VLAN 30) -> 10.0.2.252
- CTF (VLAN 40) -> 10.0.3.252
- DIRTY (VLAN 50) -> 10.0.4.252
- ADMIN (VLAN 100) -> 10.1.0.104
Le proxy interne sera accessible depuis toutes les zones à l'adresse 10.0.0.252.
### WGET
Les requêtes passerons désormais par le proxy interne sur le port 3128 pour les requêtes http et https. Seul le root aura accès au proxy.
#### /root/.wgetrc
```
http_proxy = http://<ip_proxy_zone>:3128/
https_proxy = http://<ip_proxy_zone>:3128/
http_proxy = http://10.0.0.252:3128/
https_proxy = http://10.0.0.252:3128/
use_proxy = on
```
WGET doit maintenant fonctionner.
@@ -114,7 +101,7 @@ On va maintenant faire passer apt-get par le proxy apt qui est sur le port 9999
#### /etc/apt/apt.conf.d/01proxy
```
Acquire::http {
Proxy "http://<ip_proxy_zone>:9999";
Proxy "http://10.0.0.252:9999";
};
```
APT-GET doit maintenant fonctionner.
@@ -127,7 +114,15 @@ Les requêtes passerons désormais par le proxy interne sur le port 3128 pour le
#### /root/.gitconfig
```
[http]
proxy = http://<ip_proxy_zone>:3128
proxy = http://10.0.0.252:3128
[https]
proxy = https://<ip_proxy_zone>:3128
proxy = https://10.0.0.252:3128
```
### Toutes requêtes HTTP
Pour faire passer toute les requêtes HTTP par le proxy exécuter les commandes suivantes.
```
export http_proxy=http://10.0.0.252:3128
export https_proxy=$http_proxy
```