Renseigner les éléments demandés tels les mots de passe de l'utilisateur à créer et de root.
Redémarrer la machine virtuelle à la fin de l'installation.
$ eix terme_de_recherche
$ eix iftop
* net-analyzer/iftop
Available versions: 1.0_pre4-r2 ~1.0_pre4-r3
Homepage: http://www.ex-parrot.com/pdw/iftop/
Description: display bandwidth usage on an interface
Installation
# emerge category/application
Serveur LDAP
Configuration
# cl-setup ldap
* WARNING: Executing of the program will change the configuration files and database of LDAP service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Erased LDAP Database ... [ ok ]
* Added ldif file ... [ ok ]
* LDAP service configured ... [ ok ]
Integration authentification LDAP à PAM
# cl-setup unix
* WARNING: Executing of the program will change the configuration files and database of LDAP service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Added ldif file ... [ ok ]
* Unix service configured ... [ ok ]
Gestion des utilisateurs
Après avoir configuré l'annuaire LDAP comme base de comptes Unix, utiliser les commandes alternatives suivantes pour gérer les utilisateurs :
Commande
Alternative
useradd (adduser)
cl-useradd [options] user unix
userdel
cl-userdel [options] user unix
usermod
cl-usermod [options] user unix
passwd
cl-passwd [options] user unix
groupadd
cl-groupadd [options] user unix
groupdel
cl-groupdel [options] user unix
groupmod
cl-groupmod [options] user unix
A noter le service qui doit être indiqué à la fin de la commande, avec comme services possibles :
liste non-exhaustive
unix
unix group
samba
samba group
mail
mail group
jabber
jabber group
proxy
proxy group
Serveur Samba
Configuration
# cl-setup -n hostname -w WORKGROUP samba
* WARNING: Executing of the program will change the configuration files of Samba service.
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Added ldif file ... [ ok ]
* Starting Samba ... [ ok ]
* Added user client in Unix service
* Added user client in Samba service
* Added user admin in Unix service
* Added user admin in Samba service
* Samba service configured ... [ ok ]
Mot de passe administrateur Samba
L'administrateur Samba est utilisé pour ajouter/supprimer des machines du domaine
# cl-passwd --smb admin samba
New password:
Retype new password:
* Samba password of user admin is changed
Administrateur de domaine
Créer un administrateur de domaine pour gérer les machines Windows et l'ajouter au groupe "Administateurs du domaine" (Domain Admins).
# cl-setup -t pop3,imap mail
* WARNING: Executing of the program will change the configuration files of Mail service (programs Postfix and Dovecot).
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Generating DH. This is going to take a long time ... [ ok ]
* Generating DH. This is going to take a long time ... [ ok ]
* Added ldif file ... [ ok ]
* Starting Postfix ... [ ok ]
* Starting Dovecot ... [ ok ]
* Mail service configured ... [ ok ]
Serveur Jabber
Configuration
# cl-setup jabber
* WARNING: Executing of the program will change the configuration files of Jabber service (program Ejabberd).
If you are ready to continue executing the program, input 'yes', if not 'no': yes
Enter the admin@willy.greenbee.lan password
New password:
Retype new password:
* Added user in Jabber service
* Added ldif file ... [ ok ]
* Generating DH. This is going to take a long time ... [ ok ]
* Starting Ejabberd ... [ ok ]
* Jabber service configured ... [ ok ]
Serveur FTP
Configuration
# cl-setup ftp
* WARNING: Executing of the program will change the configuration files of FTP service (program proftpd).
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Added ldif file ... [ ok ]
* Starting Proftpd ... [ ok ]
* FTP service configured ... [ ok ]
Serveur DNS
Configuration
# cl-setup dns
* WARNING: Executing of the program will change the configuration files of DNS service (program bind).
If you are ready to continue executing the program, input 'yes', if not 'no': yes
* Added ldif file ... [ ok ]
* Starting Named ... [ ok ]
* DNS service configured ... [ ok ]
Zone DNS maître
# cl-dns-zoneadd -n domain.lan --server hostname.domain.lan --ipserver 192.168.10.20
* Appended DNS master zone domain.lan [ ok ]
* Added A-record in LDAP
* localhost.domain.lan --> 127.0.0.1
*
* Appended DNS master zone 10.168.192.in-addr.arpa [ ok ]
* Added A-record in LDAP
* hostname.domain.lan --> 192.168.10.20
*
* Added PTR-record in LDAP
* 192.168.10.20 --> hostname.domain.lan
*
# cl-info -u service
# cl-info -u unix
All users in LDAP for service Unix
+------+---------+-----------------------------+---------------+----------------+
| ID | Login | Name | Primary group | Home directory |
+------+---------+-----------------------------+---------------+----------------+
| 900 | client | Client unix workstation | 900 | /dev/null |
| 901 | admin | Administrator samba service | 544 | /dev/null |
| 1001 | d_admin | Domain Admin | 512 | /home/d_admin |
+------+---------+-----------------------------+---------------+----------------+
(3 rows)
# cl-info -u samba
All users in LDAP for service Samba
+---------+-----------------------------+------+----------+
| Login | Name | Lock | Password |
+---------+-----------------------------+------+----------+
| client | Client unix workstation | Yes | No |
| admin | Administrator samba service | No | Yes |
| d_admin | Domain Admin | No | Yes |
+---------+-----------------------------+------+----------+
(3 rows)
Détails d'un utilisateur
# cl-info -U utilisateur service
# cl-info -U admin unix
Information about user admin for service Unix
+----------------------+-----------------------------+
| Field | Value |
+----------------------+-----------------------------+
| ID | 901 |
| Login | admin |
| Name | Administrator samba service |
| Lock | No |
| Visible | No |
| Primary group | 544 |
| Supplementary groups | 544 |
| Home directory | /dev/null |
| Shell | /bin/false |
| Password | No |
| Last change password | 16.01.2020 |
| Jabber ID | admin@willy.greenbee.lan |
| Mail | No |
+----------------------+-----------------------------+
(13 rows)
# cl-info -U admin samba
Information about user admin for service Samba
+----------------------+----------------------------------------+
| Field | Value |
+----------------------+----------------------------------------+
| Login | admin |
| Name | Administrator samba service |
| Lock | No |
| Password | Yes |
| Last change password | 16.01.2020 |
| Primary group | Administrators |
| Supplementary groups | Administrators |
| Share directory | /var/calculate/server-data/samba/share |
+----------------------+----------------------------------------+
(8 rows)
--hostname spécifier le nom d'hôte
--iface configurer l'interface réseau
--route configurer la route par défaut
--dns spécifier le serveur dns
cl-setup-update
cl-setup-update permet de configurer la mise à jour automatique.
# cl-setup-update -a ON -I 12h --clean-pkg ON -o ON
Paramètres de mises à jour :
-a ON vérifier les mises à jour automatiquement (enabled by default)
-I 12h spécifier l'intervalle de vérification de mises à jour ('list' pour afficher les valeurs possibles)
--clean-pkg ON supprimer les archives logicielles obsolètes
-o ON actualiser les autres overlays
:: Boîte à outils Calculate Directory Server ::
Conflit lors de la mise à jour de Perl
Une mise à jour système peut parfois provoquer des conflits lors de la mise à jour de Perl. Dans ce cas, mettre à jour selon la méthode conseillée :
Dans cet exemple, on va créer une simple application web avec Dancer2.
Pour le déploiement, on se basera sur Starman pour la gestion de l'application avec Nginx en frontal.
Installation de Dancer
Préparation de l'environnement
Afin de sécuriser l'application, on fait tourner Starman (notre serveur d'application) sous une identité propre que nous appelerons starman.
La seule manière d'y accéder sera via l'utilisateur root.
$ sudo useradd starman
Brewing Perl
Afin de séparer la distribution Perl installée sur le système de celle que l'on souhaite utiliser pour lancer notre application, nous utiliserons PerlBrew, un outil de gestion des versions de Perl.
Liste des versions Perl disponibles à l'installation
# su - starman
$ perlbrew available
perl-5.33.2
perl-5.32.0
perl-5.30.3
[...]
Installation
$ perlbrew install perl-5.32.0
Vérification de la version installée (deux méthodes)
Lister les versions installées :
$ perlbrew list
perl-5.32.0
Lister les versions disponibles (remarquez le "i" devant la version installée) :
$ perlbrew available
perl-5.33.2
i perl-5.32.0
perl-5.30.3
[...]
Utilisation
Pour cette session uniquement
$ perlbrew use perl-5.32.0
Comme version par défaut à l'ouverture de session
$ perlbrew switch perl-5.32.0
Installation des modules CPAN
Avant tout, on installe un client cpan. Pour cela, on utilise la commande PerlBrew permettant d'installer cpanminus.
$ perlbrew install-cpanm
Puis on installe les modules :
$ cpanm Dancer2 Starman Daemon::Control
Création de l'application
La méthode la plus rapide pour créer son application est d'utiliser la commande dancer2 qui met en place l'arborescence des répertoires et fichiers à partir d'un squelette standard :
$ dancer2 -a MonApp
Cette commande crée le répertoire MonApp ainsi qu'un ensemble de sous-répertoires et fichiers.
Pour lancer l'application, exécuter la commande suivante :
$ cd MonApp/
$ plackup -R lib bin/app.psgi
Watching lib bin/lib bin/app.psgi for file updates.
HTTP::Server::PSGI: Accepting connections at http://0:5000/
L'application (vide) est dorénavant disponible à l'adresse http://AdresseServeur:5000. (Ctrl+C pour stopper)
Mise en place du service systemd Starman
Pour lancer automatiquement notre application, on crée le fichier /etc/systemd/system/starman.service avec le contenu ci-dessous :
$ sudo vi /etc/systemd/system/starman.service
[Unit]
Description=Starman
After=syslog.target
[Service]
Type=forking
ExecStart=/home/starman/perl5/perlbrew/perls/perl-5.32.0/bin/starman --listen 127.0.0.1:5001 --env development --daemonize /home/starman/apps/MonApp/bin/app.psgi
Restart=always
[Install]
WantedBy=multi-user.target
Sur mon Thinkpad, la taille du disque SSD est de 128Go.
1G sera réservé pour les partitions de boot (boot et EFI) et le reste intégralement chiffré.
A noter que les tailles des partitions efi et boot ne sont pas optimisées, 100M serait suffisant pour efi et 250M pour boot...
Configuration cible
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119,2G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 512M 0 part /boot
└─sda3 8:3 0 118,2G 0 part
└─cryptroot 254:0 0 118,2G 0 crypt
├─vg0-swap 254:1 0 4G 0 lvm [SWAP]
├─vg0-root 254:2 0 20G 0 lvm /
└─vg0-home 254:3 0 94,2G 0 lvm /home
Une partition de swap n'est pas nécessaire, mais peut s'avérer pratique si on souhaite utiliser les fonctions d'hibernation d'un portable.
Dans ce cas, la taille de la partition doit être au moins égale à la quantité de RAM, sur mon Thinkpad -> 3915312 octets.
Ajouter les options suivantes avant 'filesystems' :
keymap : chargement du clavier
encrypt : gestion du chiffrement
lvm2 : gestion des volumes logiques
resume : gestion du mode hibernation
Note : quelque soit l'ordre choisi, pensez toujours à placer keymap devant encrypt, sous peine de vous retrouver avec un clavier qwerty pour taper la passphrase permettant de déchiffrer le volume principal
Editer le fichier /etc/default/grub et modifier la variable GRUB_CMDLINE_LINUX afin de préciser le périphérique chiffré (cryptroot) et le périphérique d'hibernation (partition de swap) :
Au démarrage la passphrase est demandée afin de déchiffrer le volume puis on accède à la console.
On a maintenant un système minimal installé et fonctionnel.
Configuration du réseau
Avec l'arrivée de la version 197 de systemd le nom des interfaces réseau est maintenant préfixé de en (ethernet), wl (wlan) ou ww (wwan), suivi par un identifiant généré automatiquement et prévisible.
Le but étant de fixer le nom des interfaces entre chaque démarrage.
Pour lister les interfaces réseaux :
# ip link show
1: lo [...]
3: enp0s25 [...]
4: wlp3s0 [...]
6: wwp0s29u1u4i6 [...]
Configuration manuelle
Dans le cas où tous les outils ne sont pas encore installés ou si il n'y a pas de serveur dhcp sur le réseau, il peut s'avérer pratique de configurer une connexion manuellement.
Ethernet
Activer l'interface ethernet, ici enp0s25
# ip link set dev enp0s25 up
Affecter une adresse ipv4 à l'interface, ici 192.168.0.60 dans le réseau 192.168.0.0/24 :
# ip address add 192.168.0.60/24 broadcast + dev enp0s25
Ajouter la route par défaut pour accéder à internet, ici 192.168.0.254 :
# ip route add default via 192.168.0.254 dev enp0s25
systemd-networkd
systemd offre maintenant la possibilité de gérer le réseau par lui-même sans outils supplémentaires. systemd-networkd permet de détecter, configurer et gérer les connexions réseaux; il peut aussi créer des connexions virtuelles.
Ethernet
Créer le fichier /etc/systemd/network/enp0s25.network
La commande précédente ajoute à la fin du fichier une section network qui contient votre clé wifi en clair.
Il est conseillé de supprimer cette ligne :
network={
ssid="ESSID"
#psk="passphrase" <------- Supprimer cette ligne
psk=d5b7ea2dda330fb59753d126e0b98bc968644423abb76bb52374a027718219c6
}