Suppression des NO-BREAK SPACE
find . -type f |grep .md | xargs sed -i $'s/\x23\xC2\xA0/# /g'master
parent
30e9acb34a
commit
c96b26eb12
|
@ -2,7 +2,7 @@
|
|||
|
||||
Il faut impérativement une VM pour que Docker soit fluide
|
||||
|
||||
## Installation de Docker
|
||||
## Installation de Docker
|
||||
```
|
||||
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Il faut impérativement une VM pour que Docker soit fluide
|
||||
|
||||
## Installation de Docker et Docker-Compose
|
||||
## Installation de Docker et Docker-Compose
|
||||
```
|
||||
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
||||
|
|
|
@ -29,7 +29,7 @@ Voici les choix techniques faits afin de répondre à ces objectifs
|
|||
|
||||

|
||||
|
||||
## Création d'un canal d'échange par clé entre les deux containers
|
||||
## Création d'un canal d'échange par clé entre les deux containers
|
||||
Afin de pouvoir faire des scp de manière automatique entre les deux containers, il faut mettre en place une connexion ssh par clé en root entre les deux containers.
|
||||
|
||||
Le procédé est le même, en voici les variantes,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Nous allons mettre en place un proxy interne pour permettre au services des zones n'ayant pas un accès direct à internet (PROXY, INT, CTF et DIRTY) d'accéder au gestionnaire de packet et à internet (via WGET). Le proxy interne sera dans la zone DMZ, il fera donc le lien entre l'extérieur et les services.
|
||||
|
||||
## Apt Cacher NG
|
||||
## Apt Cacher NG
|
||||
Pour l'accès au gestionnaire de packet nous allons utiliser Apt-Cacher NG.
|
||||
|
||||
### Installation
|
||||
|
@ -23,11 +23,11 @@ systemctl restart apt-cacher-ng.service
|
|||
```
|
||||
Apt-Cacher est désormais sur le port 9999 du proxy interne. Il n'est accessible que depuis les zones PROXY, INT, CTF et DIRTY. Les requêtes depuis d'autres zones seront rejetées.
|
||||
|
||||
## Squid
|
||||
## Squid
|
||||
|
||||
Pour l'accès à internet via WGET nous allons utiliser Squid.
|
||||
|
||||
### Installation
|
||||
### Installation
|
||||
```
|
||||
apt-get install -y squid3 ca-certificates
|
||||
```
|
||||
|
@ -59,7 +59,7 @@ systemctl restart squid.service
|
|||
Squid est maintenant accessible depuis le port 3128 du proxy interne uniquement depuis les zones PROXY, INT, CTF et DIRTY. Les requêtes depuis d'autres zones seront rejetées.
|
||||
|
||||
|
||||
## Accès au Proxy Interne depuis un container ou une VM
|
||||
## Accès au Proxy Interne depuis un container ou une VM
|
||||
|
||||
Les outils principaux sont WGET et APT-GET on va donc les reliées au Proxy Interne.
|
||||
|
||||
|
@ -69,10 +69,10 @@ Le proxy interne sera accessible uniquement depuis les zones PROXY, INT, CTF et
|
|||
- CTF (VLAN 40) -> 10.0.3.254
|
||||
- DIRTY (VLAN 50) -> 10.0.4.254
|
||||
|
||||
### WGET
|
||||
### 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
|
||||
#### /root/.wgetrc
|
||||
```
|
||||
http_proxy = http://<ip_proxy_zone>:3128/
|
||||
https_proxy = http://<ip_proxy_zone>:3128/
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Nous allons ici mettre en place le serveur LDAP qui sera répliqué sur les deux nodes. Tout les services utiliseront LDAP pour l'authentification des utilisateurs.
|
||||
A noté que pour des questions pratique nous n'allons pas utilisé Fusion Directory, il faudra donc créer un schéma pour chaque service et modifier les utilisateur avec ldapadd et ldapmodify.
|
||||
Pour la sécurisation de LDAP nous allons utiliser LDAP avec STARTTLS.
|
||||
## Installation slapd
|
||||
## Installation slapd
|
||||
On commence par installer le serveur ldap.
|
||||
```
|
||||
apt-get update
|
||||
|
@ -25,13 +25,13 @@ Database backend to use: MDB
|
|||
Do you want the database to be removed when slapd is purged? YES
|
||||
Allow LDAPv2 protocol? No
|
||||
```
|
||||
### /etc/ldap/ldap.conf
|
||||
### /etc/ldap/ldap.conf
|
||||
```
|
||||
BASE dc=krhacken,dc=org
|
||||
URI ldap://IP.LDAP/
|
||||
```
|
||||
|
||||
## Centralisation des fichiers de configuration
|
||||
## Centralisation des fichiers de configuration
|
||||
Nous allons créer un répertoire /root/ldap/conf qui va centraliser tous nos fichiers de configuration
|
||||
```
|
||||
mkdir -p /root/ldap/conf/
|
||||
|
@ -120,7 +120,7 @@ ldapsearch -xLLL -H ldap://localhost -D cn=viewer,ou=system,dc=krhacken,dc=org -
|
|||
doit retourner une erreur, si on ajout -ZZ à la fin ça doit fonctionner
|
||||
|
||||
|
||||
## Configuration des futurs client LDAP
|
||||
## Configuration des futurs client LDAP
|
||||
Sur tout les futurs client LDAP il faudra activer la connexion SSL.
|
||||
Il faut commencer par copier le certificat de la CA (ca_server.pem)
|
||||
```
|
||||
|
@ -134,7 +134,7 @@ TLS_CACERT /etc/ldap/ca_certs.pem
|
|||
...
|
||||
```
|
||||
|
||||
## Droits d'accès pour la configuration
|
||||
## Droits d'accès pour la configuration
|
||||
### /root/ldap/conf/acces-conf-admin.ldif
|
||||
```
|
||||
dn: olcDatabase={0}config,cn=config
|
||||
|
@ -186,7 +186,7 @@ Vérification
|
|||
ldapsearch -QLLLY EXTERNAL -H ldapi:/// -b "cn=config" "Objectclass=olcModuleList"
|
||||
```
|
||||
|
||||
## refint
|
||||
## refint
|
||||
L'overlay permet de s’assurer de la cohérence de l’annuaire lors de suppression d’entrées.
|
||||
### /root/ldap/conf/refint_act.ldif
|
||||
```
|
||||
|
@ -452,14 +452,14 @@ Commande pour la connexion à un utilisateur
|
|||
ldapsearch -xLLLH ldap://localhost -D uid=PSEUDO,ou=krhacken,ou=people,dc=krhacken,dc=org -W -b "dc=krhacken,dc=org" "uid=PSEUDO"
|
||||
```
|
||||
|
||||
## Groupes
|
||||
## Groupes
|
||||
|
||||
Il existe deux types de groupes : les posixgroup et les groupofnames.
|
||||
Les posixgroup sont similaires au groupes Unix, et les groupofnames ressemblent plus à des groupes AD.
|
||||
Pour faire simple, l’avantage des groupofnames est qu’avec un filtre sur un utilisateur, on peut connaitre ses groupes (avec l’overlay memberof). Chose impossible avec les posixgroups.
|
||||
|
||||
|
||||
### /root/ldap/conf/Group.ldif
|
||||
### /root/ldap/conf/Group.ldif
|
||||
```
|
||||
dn: cn=cloud,ou=sysgroup,ou=group,dc=krhacken,dc=org
|
||||
cn: cloud
|
||||
|
@ -494,14 +494,14 @@ On ajoute l'utilisateur avec
|
|||
ldapmodify -cxWD cn=admin,dc=krhacken,dc=org -y /root/pwdldap -f addusertogroup.ldif
|
||||
```
|
||||
|
||||
# Sécurisation de l'annuaire
|
||||
# Sécurisation de l'annuaire
|
||||
|
||||
## Comptes avec permissions réduite
|
||||
## Comptes avec permissions réduite
|
||||
Nous allons créer deux compte systèmes.
|
||||
- Un viewer qui aura uniquement les droits en lecture de l'arbre
|
||||
- Un Writer qui lui aura les droits en écriture
|
||||
|
||||
### /root/ldap/conf/viewer.ldif
|
||||
### /root/ldap/conf/viewer.ldif
|
||||
```
|
||||
dn: cn=viewer,ou=system,dc=krhacken,dc=org
|
||||
objectClass: simpleSecurityObject
|
||||
|
@ -527,7 +527,7 @@ ldapadd -cxWD cn=admin,dc=krhacken,dc=org -y /root/pwdldap -f writer.ldif
|
|||
```
|
||||
|
||||
On autorise la lecture de l'arbre uniquement au utilisateur authentifié en modifiant une ACL
|
||||
### /root/ldap/conf/acl.ldif
|
||||
### /root/ldap/conf/acl.ldif
|
||||
```
|
||||
dn: olcDatabase={1}mdb,cn=config
|
||||
changetype: modify
|
||||
|
|
|
@ -474,7 +474,7 @@ query_filter = (&(maildomain=%s)(objectClass=maildomainkrhacken)(maildomainactif
|
|||
result_attribute = maildomain
|
||||
result_filter = REJECT Goodbye
|
||||
```
|
||||
### /etc/postfix/ldap/check_sender_domains_reject.cf
|
||||
### /etc/postfix/ldap/check_sender_domains_reject.cf
|
||||
Bloque les FROM TO vers les mails non attribués
|
||||
```
|
||||
server_host = ldap://10.0.1.6
|
||||
|
@ -932,7 +932,7 @@ postfix reload
|
|||
systemctl restart rspamd
|
||||
```
|
||||
|
||||
## Machine Learning en fonction des actions des utilisateurs
|
||||
## Machine Learning en fonction des actions des utilisateurs
|
||||
Les mails Spam sont considérées comme Spam et les mails lisible sont considérées comme Ham.
|
||||
Couplé avec Dovecot, Rspamd nous propose de pouvoir apprendre également en fonction des actions des utilisateurs. Si un mail est déplacé vers le répertoire spam, il sera appris comme tel et au contraire, s’il est sorti du répertoire Spam vers autre chose que la corbeille, il sera appris comme Ham.
|
||||
### /etc/dovecot/conf.d/90-sieve-extprograms.conf
|
||||
|
@ -1052,7 +1052,7 @@ location /rspamd/ {
|
|||
}
|
||||
```
|
||||
|
||||
## Entrée DNS
|
||||
## Entrée DNS
|
||||
### SPF
|
||||
Permet de valider auprès des récepteurs de nos mails que nous somme vraiment l'expéditeur légitime du mail.
|
||||
```
|
||||
|
|
|
@ -6,7 +6,7 @@ Ce service est redondé car vital, son IP est 10.0.0.6 sur Alpha et 10.0.0.7 sur
|
|||
## Objectif
|
||||
Il doit rediriger les requêtes arrivant de HAProxy vers le bon container en fonction de l'hostname. Pour cela nous allons utiliser des serveurs web HTTP avec des proxy sur Nginx sans s'occuper de l'autre serveur web.
|
||||
|
||||
## Création d'un canal d'échange par clé entre les deux containers
|
||||
## Création d'un canal d'échange par clé entre les deux containers
|
||||
Afin de pouvoir faire des scp de manière automatique entre les deux containers, il faut mettre en place une connexion ssh par clé en root entre les deux containers.
|
||||
|
||||
Le procédé est le même, en voici les variantes,
|
||||
|
|
|
@ -32,7 +32,7 @@ Une fois la VM redémarrée pour la première fois, il faut faut assigner les in
|
|||
Il faut configurer 2 interfaces pour commencer, une le WAN (wan vlan 10) et une pour le LAN (interne vlan 10). On ajoutera le reste plus tard.
|
||||
|
||||
|
||||
# En attente du choix WAN...
|
||||
# En attente du choix WAN...
|
||||
|
||||
### Règles (uniquement DNAT)
|
||||
- DNAT 80,443 dmz:10.0.0.5
|
||||
|
|
|
@ -17,6 +17,6 @@ Deux combinaisons possibles
|
|||
## En ipv6
|
||||
Un réseau uniquement ipv6 serait plus compliqué à mettre en place au niveau des accès depuis des clients ipv4. Cependant un bloc d'ipv6 en plus d'une ou deux ipv4 serait un plus.
|
||||
|
||||
## Conclusion
|
||||
## Conclusion
|
||||
|
||||
Le choix qui serait le plus fiable au niveau de la gestion de la disponibilité du serveur serait une ipv4 pour l'accès au firewall et une seconde ipv4 pour l'accès direct au serveur car plus sûr en cas de crash des deux VM. Avec un bloc d'ipv6 pour pouvoir rajouter progressivement le support de l'ipv6.
|
|
@ -53,7 +53,7 @@ Vérifier la cohérence et lancer l'installation.
|
|||
### Sur la deuxième node (Beta)
|
||||
Même procédure, dans "Management Network Configuration" il faut juste remplacer le Hostname par **beta.krhacken.org**
|
||||
|
||||
## Préparation des hyperviseurs
|
||||
## Préparation des hyperviseurs
|
||||
La procédure est la même sur les deux nodes. Elle peut être faite via SSH (recommandé) ou sur l'interface d'administration **https://IP:8006**
|
||||
|
||||
### Mise à jour
|
||||
|
@ -79,7 +79,7 @@ pveam download local debian-10.0-standard_10.0-1_amd64.tar.gz
|
|||
### Images VM
|
||||
Nous aurons besoin de VM OPNSense (Pare-Feu) et de VM debian, il faut donc télécharger les derniers ISO disponibles.
|
||||
|
||||
#### OPNSense
|
||||
#### OPNSense
|
||||
VM nécessaire car c'est une distribution Free-BSD
|
||||
|
||||
Obtention du lien de Téléchargement sur le [site officiel](https://opnsense.org/download/)
|
||||
|
@ -94,7 +94,7 @@ Le lien donné sera utilisé par la suite
|
|||
wget -P /var/lib/vz/template/iso <lien_obtenu>
|
||||
```
|
||||
|
||||
#### Debian
|
||||
#### Debian
|
||||
VM nécessaire pour faire tourner efficacement Docker
|
||||
|
||||
Obtention du lien de Téléchargement sur le [site officiel](https://www.debian.org/distrib/netinst)
|
||||
|
|
|
@ -80,14 +80,14 @@ Switch Administration VLAN 100
|
|||
- [...] Voir DNS
|
||||
|
||||
|
||||
# Réseau physique
|
||||
# Réseau physique
|
||||
|
||||
La configuration et les branchement à faire sur le switch sera détaillé plus tard.
|
||||
|
||||
# Réseau virtuel
|
||||
Cette partie consiste à mettre en place OpenvSwitch sur les deux nodes.
|
||||
|
||||
## Installation
|
||||
## Installation
|
||||
Commune aux deux nodes
|
||||
```
|
||||
apt-get update
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Topologie globale de l'infrastructure
|
||||
Le réseau sera découpé en deux sous-réseaux matérialisés par des switchs virtuels : le réseau interne accessible directement depuis l'extérieur et le réseau d'administration accessible uniquement via un VPN.
|
||||
|
||||
## Réseau WAN
|
||||
## Réseau WAN
|
||||
|
||||
Le réseau WAN permettra de faire le lien entre l'extérieur, les pare-feux et les hyperviseurs.
|
||||
|
||||
|
|
Loading…
Reference in New Issue