TP PROXMOX 2e année
Savoirs | Minima Imposé | Version amélioré |
---|---|---|
Noms de Domaines – DNS – | BIND | UNBOUND |
Annuaires(AD) | NIS / NFS | OpenLDAPGlusterFS |
Partage de Fichiers | SAMBA Mode partage | SAMBA Mode contrôleur de donnés |
Haute disponibilité SQL | Master / Slave | Multi Master |
Gestion de config | Ansible | Puppet |
Service DNS (Domain Name Service)
Installation et configuration du service DNS BIND
BIND (Berkeley Internet Name Domain) est un logiciel de serveur DNS (Domain Name System) largement utilisé pour traduire les noms de domaine (comme exemple.com) en adresses IP numériques (comme 192.168.1.100) et vice versa.
Mise à jour des paquets et installation du service bind9
apt update apt upgrade apt install bind9 |
Vérifier que le service est bien installé
systemctl status bind9 |
Fichier Host dans /etc/hosts
plusieurs choix:
si peu de machines alors modification possible du fichier hosts manuellement
si plusieurs machines alors installation d’un service DNS.
Dans le cas d’une installation d’un service DNS.
Il faut une modification du fichier /etc/bind/named.conf pour indiquer que ce conteneur devient le serveur DNS.
Rajouter :
zone nomdedomaine IN { type master; file « /etc/bind/db/db.nomdedomaine »; allow-update { none; } ; }; |
“nomdedomaine” étant le nom de domaine que vous choisissez
Créer un fichier et copier le fichier de base de donnée vide vers le chemin indiqué dans named.conf
Mettre à jour les informations du fichier pour correspondre au conteneur
nano db.bind.tp |
redémarrer le service :
systemctl restart bind9 |
Utiliser named-checkzone pour vérifier que le DNS est compris dans bind
modifier le fichier /etc/resolv.conf
ne pas oublier de rajouter le FQDN dans le fichier /etc/hosts
Ping nom de domaine
Installation et configuration de Unbound :
Recréer un nouveau de conteneur pour tester ce service
Mettre à jour le conteneur et installer piunbound avec ces commandes :
Cela va installer les fichiers de unbound, pour commencer la configuration, nous irons dans /etc/unbound/unbound.conf
Mise en place d’un nom de domaine sur l’adresse IP du conteneur. Création d’une zone locale. Avant, il faudra initialiser l’interface et le port d’écoute : 0.0.0.0 pour écouter toutes les IP possibles (aucune contrainte) et port 53 (Port UDP utilisé par le service DNS)
# Adresse IP d’écoute server: interface: 0.0.0.0 port: 53 # Activer les requêtes IPv4 do-ip4: yes # Désactiver IPv6 si non utilisée do-ip6: no # Autoriser les requêtes TCP do-tcp: yes # Autoriser les requêtes UDP do-udp: yes # Masquer l’identité de la machine lors d’une requête DNS hide-identity: yes hide-version: yes # Permissions d’accès access-control: 192.168.1.0/24 allow # Zone locale domain-insecure: « tp » private-domain: « tp » local-zone: « tp. » static local-data: « sio.tp. IN A [adresse ip du serveur DNS] » local-data: « www.sio.tp. IN CNAME sio.tp » |
[rajouter autant de ligne que d’enregistrement DNS]
Redémarrer le service Unbound :
systemctl restart unbound |
Modification du fichier /etc/resolv.conf
// pas nécessaire de modifier si les paramètres DNS
Il ne nous reste plus qu’à essayer de ping le serveur DNS avec son nom de domaine :
(tests de pings sur nouveau CT avec les paramètres DNS)
PS: En utilisant Bind, nous pouvons attribuer un nom de domaine à une adresse IP avec une zone inversée. Cette option n’est pas disponible sur Unbound.
Service d’annuaire avec NIS
Installation et configuration du service NIS (Serveur)
préciser que les conteneurs soient en privileged mode
apt install nis -y
Mise en place du nom de domaine
echo « [nom de domaine] » | tee /etc/defaultdomain |
En bash, effectuer :
nisdomainname [nomdedomaine] |
préciser le nom de domaine dans /etc/hosts
nano /etc/hosts |
[Nom de domaine] [FQDN] [alias du FQDN] |
Pour la configuration du fichier de conf, éditer le fichier /etc/ypserv.conf
#Ajouter ces lignes dns: no files: 30 xfr_check_port: yes |
Modification du fichier /etc/ypserv.securenets (définir les adresses IP autorisées à se connecter au serveur NIS)
Installation de dépendances supplémentaires pour NIS
Création de la bdd (ctrl + D pour enregistrer)
/usr/lib/yp/ypinit -m |
Ajouter le nom des machine dont vous autorisez la connexion
Afin de créer un utilisateur pour se connecter à distance
useradd -m [Username] passwd [Username] groupadd [Group] usermod -a -G [Group] [Username] chmod u=rwx /home/[Username] #Permissions de l’utilisateur sur le fichier racine de l’utilisateur chmod g=rw /home/[Username] #Permissions de groupe sur le fichier racine de l’utilisateur |
Restart le service ypserv
Mettre à jour la BDD après chaque changement
make -C /var/yp |
Les modifications sont enregistrées
Afin de vérifier que NIS est fonctionnel sur le serveur
Vérifiez que le serveur NIS est à l’écoute des requêtes :
apt install net-tools netstat -tulpn | grep ypserv |
Vous devriez voir ypserv écouter sur plusieurs ports.
Installation et configuration du service NIS Client
apt update && apt upgrade -y apt install nis |
Mise en place du nom de domaine
echo « [nom de domaine] » | tee /etc/defaultdomain |
En bash, effectuer :
nisdomainname [nomdedomaine] |
Configuration du DN
nano /etc/yp.conf |
modifier ces lignes dans /etc/nsswitch.conf
Pour activer le service du client ypbind :
systemctl start ypbindsystemctl enable ypbind |
Afin de vérifier que NIS est fonctionnel
- Vérifiez le nom de domaine NIS sur le client :
domainname |
- Vérifiez si le client peut contacter le serveur NIS :
ypwhich |
Afin de se connecter à l’utilisateur distant : login
Service de transfert de fichier avec NFS (complément de NIS)
Configuration du serveur NFS
Installation des paquets :
apt install nfs-kernel-server |
Création du répertoire à partager
Créez un répertoire à partager, par exemple :
mkdir -p /export/home |
Éditez le fichier /etc/exports
nano /etc/exports |
Ajoutez une ligne pour le répertoire partagé :
/export/home [Adresse IP du réseau ou * pour all](rw,sync,no_subtree_check) |
Configuration du client NFS
Installez les paquets NFS :
apt install nfs-common |
Créez un point de montage pour le répertoire partagé :
bash mkdir -p /home/nfs |
Éditez le fichier /etc/fstab :
nano /etc/fstab ip_du_serveur_nfs:/export/home /home/nfs nfs defaults 0 0 Par ex : 192.168.1.100:/export/home /mnt/home nfs rw,hard,intr,timeo=600 0 0 |
Redémarrez les services :
systemctl restart nis mount -a |
Tester :
showmount -e localhost |
Service d’annuaire avec OpenLDAP
Installation
apt update && upgrade apt install slapd ldap-utils ufw -y /etc/hosts : 127.0.1.1 [Hostname] [Adresse IP du serveur LDAP] [Hostname].[FQDN] [Hostname] [FQDN] conf pare-feu : ufw allow port 389/tcp ufw allow port 636/tcp |
dpkg-reconfigure slapd |
Répondez « Non » à « Voulez-vous omettre la configuration d’OpenLDAP ? »
Nom de domaine DNS : servldap.fr
Nom d’organisation : servldap
Mot de passe administrateur : [choisissez un mot de passe fort]
Moteur de base de données : MDB
Supprimer la base lors de la purge : Oui
Déplacer l’ancienne base de données : Oui
Vérif conf :
slapcat |
Créer le dossier /etc/ldap/changes
mkdir /etc/ldap/changes |
Créer le fichier /etc/ldap/changes/update_config.ldif
nano /etc/ldap/changes/update_config.ldif |
/etc/ldap/changes/update_config.ldif
dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=servldap,dc=fr – replace: olcRootDN olcRootDN: cn=admin,dc=servldap,dc=fr – replace: olcRootPW olcRootPW: {SSHA}votre_nouveau_hash_de_mot_de_passe |
ldapmodify -Y EXTERNAL -H ldapi:/// -f update_config.ldif
Créer fichier /etc/ldap/changes/add_ou.ldif :
touch /etc/ldap/changes/add_ou.ldif |
Permission sur fichier add_ou.ldif :
chmod 644 /etc/ldap/changes/add_ou.ldif |
/etc/ldap/changes/add_ou.ldif :
dn: ou=users,dc=servldap,dc=fr objectClass: organizationalUnit ou: users |
ldapadd -x -D cn=admin,dc=servldap,dc=fr -W -f /etc/ldap/changes/add_ou.ldif
Créer le fichier /etc/ldap/changes/update_serverID.ldif :
nano /etc/ldap/changes/update_serverID.ldif |
/etc/ldap/changes/update_serverID.ldif : dn: cn=config changetype: modify replace: olcServerID olcServerID: 0 ServeurLDAP.servldap.fr |
ldapmodify -Y EXTERNAL -H ldapi:/// -f update_serverID.ldif
Créer le fichier /etc/ldap/changes/add_base.ldif :
nano /etc/ldap/changes/add_base.ldif |
/etc/ldap/changes/add_base.ldif : dn: dc=servldap,dc=fr objectClass: top objectClass: dcObject objectClass: organization o: ServeurLDAP dc: servldap |
ldapadd -x -D cn=admin,dc=servldap,dc=fr -W -f /etc/ldap/changes/add_base.ldif
Créer le fichier /etc/ldap/changes/add_user.ldif :
nano /etc/ldap/changes/add_user.ldif : |
/etc/ldap/changes/add_user.ldif :
dn: uid=ebaron,ou=users,dc=servldap,dc=fr objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Erwann Baron sn: Baron givenName: Erwann uid: jdupont uidNumber: 10000 gidNumber: 10000 homeDirectory: /home/ebaron loginShell: /bin/bash userPassword: {SSHA}E8rboh823CDLQ23TC47ce1PCMU6sfe4o |
Générer un hashage de votre mot de passe d’utilisateur avec slappasswd
Ajouter la règle :
ldapadd -x -D cn=admin,dc=servldap,dc=fr -W -f /etc/ldap/changes/add_user.ldif
PS : Si d’autres users sont nécessaires il suffit de recréer un fichier add_user2, et de refaire une conf
Partie Certification et TLS
Création de User Automatique :
(script à part)
#!/bin/bash # Demander le nom, prénom et le mot de passe à l’utilisateur read -p « Entrez votre nom: » nom read -p « Entrez votre prénom: » prenom read -sp « Entrez votre mot de passe: » password; echo # Générer le uid à partir du prénom et du nom uid=$(echo « ${prenom:0:1}${nom} » | tr ‘[:up per:]’ ‘[:lower:]’) # Trouver le prochain numéro d’utilisateur disponible availableUID=$(($(ls /etc/ldap/changes/ | grep -c ‘add_user’) + 1)) for i in $(seq 1 $availableUID); do if [ ! -f « /etc/ldap/changes/add_user$((i-1)).ldif » ]; then availableUID=$i break fi done |
# Créer le fichier LDIF pour ajouter l’utilisateur
cat <<EOF > /etc/ldap/changes/add_user$((availableUID-1)).ldif dn: uid=$uid,ou=users,dc=servldap,dc=fr objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: $prenom $nom sn: $nom givenName: $prenom uid: $uid uidNumber: $availableUID gidNumber: 0 homeDirectory: /home/$uid loginShell: /bin/bash userPassword: $(slappasswd -s « $password ») EOF |
# Ajouter l’utilisateur dans l’annuaire LDAP
ldapadd -x -D cn=admin,dc=servldap,dc=fr -W -f /etc/ldap/changes/add_user$((availableUID-1)).ldif |
#Script pour supprimer un user
#!/bin/bash # Demander le nom d’utilisateur à supprimer read -p « Entrez le nom d’utilisateur à supprimer : » username # Créer le fichier LDIF pour la suppression cat << EOF > /etc/ldap/changes/delete_user.ldif dn: uid=$username,ou=users,dc=servldap,dc=fr objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount changetype: delete EOF |
# Supprimer l’utilisateur de l’annuaire LDAP
ldapdelete -x -D cn=admin,dc=servldap,dc=fr -W -f /etc/ldap/changes/delete_user.ldif
Haute disponibilité SQL
-Haproxy
-ProxySQL
- Master slave
Maria db master
- Multimaster
- Clusters
0 commentaire