floss:config_ubuntu_server

Configuration type d'un serveur sous Ubuntu

Adaptation en cours vers la version 22.04 !!
Un serveur peut-être installé de différentes manières, notamment sur un ordinateur physique, ou sur un ordinateur virtuel. Cette deuxième manière de faire est particulièrement pratique pour se familiariser avec le fonctionnement d'un serveur, effectuer des tests, …, raison pour laquelle on explique ci-après comment travailler avec le logiciel de virtualisation Virtual Box.
VirtualBox peut tout aussi bien être installé sur un système “hôte” de type Windows ou Mac OS. Et finalement, la gestion de la machine virtuelle créée (“guest”) s'effectue le plus souvent à distance via un terminal permettant la connexion en SSH (terminal intégré à GNU/Linux ou Mac OS, client PuTTY sous Windows). La gestion peut alors s'effectuer sur le réseau local, ou via Internet, éventuellement par l'utilisation d'un VPN si le serveur n'est pas accessible directement sur le réseau public.
Installation testée en septembre 2023, via les commandes suivantes, adaptées de différentes sources :
  • indiquez le nom de la version Ubuntu lors de l'ajout de la source (repository)
  • remplacez le numéro 7.0 par une nouvelle version si existante sur virtualbox.org
  • remplacez la variable $USER par votre nom d'utilisateur Linux
  • ext pack : remplacer 7.0.10 en fonction de la version indiquée ici
sudo apt update && sudo apt upgrade -y && sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl
sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r`
Pour Ubuntu 20.04 :
echo deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox.gpg] http://download.virtualbox.org/virtualbox/debian focal contrib | sudo tee /etc/apt/sources.list.d/virtualbox.list

curl -fSsL https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor | sudo tee /usr/share/keyrings/virtualbox.gpg > /dev/null

sudo apt-get update
sudo apt-get install virtualbox-7.0

sudo usermod -G vboxusers -a $USER

Pour le pack d'extension, il suffit de le télécharger, et de l'installer via le menu de virtualbox.

Si les sources sont identiques, et qu'il s'agit d'une mise à jour mineure, effectuer simplement :

sudo apt upgrade

Sinon, pour mettre à jour, simplement désinstaller, puis redéfinir des sources actualisées, puis réinstaller : Exécuter les commandes suivantes pour la désinstallation :

sudo apt remove --purge virtualbox virtualbox-*
sudo apt autoremove

Redémarrer le système (sudo reboot, systemctl reboot). Définir ensuite les nouvelles sources si la version de Ubuntu est différente (mise à jour), puis :

sudo apt update

Ensuite reprendre l'installation. Lors du démarrage de VirtualBox, il est très probable qu'une nouvelle version du pack d'extension sera proposée. Suivre simplement les instructions, et chaîner cela à l'exécution de VirtualBox plutôt que de sauvegarder le pack d'extension.

L'authentification par un système de clés publique/privée vous sera très utile pour gérer vos serveurs. Générez ces clés avec la commande suivante :

ssh-keygen -t rsa

Les clés publiques et privées sont stockées dans votre répertoire ~/.ssh. Les répertoires cachés (hidden) peuvent être visualisés dans votre gestionnaire de fichier (Nautilus, Nemo,…) en tapant ctrl-h. La clés privées ne doit JAMAIS être communiquée. Votre clé publique devra être placée dans le fichier ~/.ssh/authorized_keys des serveurs auxquels vous souhaitez accéder via la commande ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip_adress_or_dns_server (voir plus loin).

Sous Windows, utiliser :
  • PuTTY pour communiquer en ligne de commande (client SSH),
  • WinSCP ou Filezilla pour accéder aux fichiers (clients SFTP);
  • PuTTYgen pour générer les clés SSH

Références :

VM VirtualBox testée sur un PC sous Linux avec processeur i7. Le fonctionnement devrait être aussi OK sous Windows ou mac, et avec un processeur i5.

Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server.

  • Lancement de VirtuaBox et création d'une nouvelle machine virtuelle (VM). Par exemple :
    • Ubuntu-22.04.3_server (type Linux et version 64 bit)
    • 4096 Mo
    • 2 cpu
    • Disque dur virtuel (.vdi) 25 Go (dynamiquement alloué)
  • Ajustement (menu configuration) de quelques paramètres de la VM :
    • stockage : renseigner le fichier iso dans le lecteur CD/DVD virtuel
    • réseau : accès par pont (si problème avec wlan0, tester eth0)
  • Démarrer la VM. Le live-CD virtuel de Ubuntu propose le choix de la langue (prendre français) et la touche F3 permet de choisir le clavier (par exemple belge). Sélectionner “Installer Ubuntu Server”.
    • Select a langage (choisir Français/French)
    • (“installer update available” → Update to the new installer) → option lors du test avec la 19.10
    • Configurer le clavier (disposition belge/Belgian ou autre…) et variante éventuelle
    • Connections réseau → accepter la proposition détectée
    • Configurer le proxy → si c'est le cas, fournir l'adresse. Sinon “Terminé”
    • Configure Ubuntu archive mirror → modifier/indiquer si utile
    • Configuration du système de fichier → “Utiliser un disque entier” (option standard)
      • Choisir le disque où installer → disque virtuel proposé…
      • sommaire du système de fichier → “Terminé” + “Confirmer l'action” (à ce moment les données éventuellement existantes du disque virtuelle seront perdues
  • Configuration du profil :
    • nom complet de l'utilisateur (ex : Virtual User)
    • nom du serveur (ex : vmix)
    • nom d'utilisateur (ex : vmuser)
    • mot de passe (ex : vmuser_mdp) (CHOISISSEZ UN MOT DE PASSE SÛR)
    • confirmer le mot de passe
  • SSH Setup
    • cocher “Install OpenSSH server
    • (autres options non utilisées/modifiées)
  • Featured Server Snaps → “Terminé” sans en choisir, sauf en connaissance de cause
  • Fin d'installation et redémarrage du serveur (enlever ultérieurement le CD d'installation virtuel).
  • Le premier redémarrage permet de vérifier le login (user/mdp) et de relever l'IP du serveur par la commande “ip a”
  • mises à jour :
    • sudo apt-get update
    • sudo apt-get upgrade
  • redémarrage : sudo reboot
  • arrêt : sudo halt
  • sauvegarde de la VM par exportation
  • Connexion à partir d'une autre machine : ssh vmuser@ip_adress (remplacer ip_adress par la valeur relevée)
  • Clé SSH
    • générer sur le PC connecté une paire de clés privée/publique si non disponible (ex : ssh-keygen -o -b 4096 -t rsa)
    • copier la clé publique sur le serveur
    • ssh-copy-id -i ~/.ssh/id_rsa.pub vmuser@ip_adress
    • tester la connexion qui doit fonctionner sans mdp : ssh vmuser@ip_adress
Problème réseau : pour forcer le dhcp, utiliser les commandes “sudo ip link set dev eth0 down” et “sudo dhclient eth0” cf. ici. Cette action doit être refaite chaque fois que l'IP n'est pas attribuée.
  • cat /etc/passwd → donne la liste des utilisateurs existants
  • sudo adduser rescue
    • (pwd : mdp_rescue)
  • sudo usermod -a -G sudo rescue
  • Références
  • sudo apt install apache2
  • sudo apt install lynx → test dans ce navigateur texte dans une console sur le serveur http://127.0.0.1
  • test du serveur apache à partir d'un autre PC : http://ip_adress (serveur de pages web statiques)
  • sudo apt install php libapache2-mod-php php-cli
  • sudo nano /var/www/html/phpinfo.php et ajouter <?php phpinfo(); ?> comme seule ligne à ce fichier. Sauver et test dans un navigateur : http://ip_adress/phpinfo.php
  • La configuration de PHP se fait via un fichier php.ini localisé sous Jammy Jellyfish 22.04 ici : /etc/php/8.1/apache2/php.ini (7.2 pour Bionic Ubuntu 18.04)
  • Paquets PHP souvent utiles (des modules additionnels pourront être installés en fonction des logiciels installés sur le serveur ainsi que leurs extensions/plugins) :
    • sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
  • Remarques
    • php-mcrypt a été enlevé depuis php 7.2 (pour persister, voir ici)
  • Serveur LAMP - Créer un/des répertoires de travail + intérêt d&#039;ajouter l&#039;utilisateur au groupe www-data + lien2
  • sudo apt install php-mysql
  • installation soit de MySQL, soit de MariaDB (pour l&#039;essentiel, suivre la documentation de MySQL)
    • sudo apt install mysql-server
    • sudo apt install mariadb-server
  • Test local de MySQL :
    • sudo mysql
      • SHOW DATABASES
  • Remarque : mysql_secure_installation (renseigné dans certains tutoriels) ne doit pas être utilisé
  • sudo service apache2 restart (restart Apache) ou sudo systemctl restart apache2
  • Pour avoir un accès global aux bases de données depuis un même compte, la solution conseillée est de créer un nouvel utilisateur et de lui attribuer tous les privilèges :
    • sudo mysql → Puis dans la console MySQL :
      • CREATE USER &#039;nom_utilisateur_choisi&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;mot_de_passe_solide&#039;;
      • GRANT ALL PRIVILEGES ON *.* TO &#039;nom_utilisateur_choisi&#039;@&#039;localhost&#039; WITH GRANT OPTION;
      • FLUSH PRIVILEGES;
      • QUIT;
    • En remplaçant évidemment nom_utilisateur_choisi et mot_de_passe_solide dans ces requêtes
  • sudo service apache2 restart ou sudo systemctl restart apache2
  • sudo service mysql restart ou sudo systemctl restart mysql
  • Conservé pour mémoire et usage sous Ubuntu 18.04
  • Poursuivre l&#039;utilisation de phpmyadmin est possible, en respectant le nouveau mode d&#039;identification du root de MySQL en sudo

Envoi d&#039;emails (par exemple par DokuWiki)

problème

Effacer le nom d&#039;utilisateur et le mot de passe si le serveur est diffusé, et/ou rendre invalide le compte par défaut de msmtp pour éviter des envois erronés vers le serveur d&#039;email !!

Configuration de Apache2

non fait :

  • Paquets :
    • (sudo apt-get install php-pear php-dev) → non fait
    • (sudo apt-get install unison) → non fait
    • (sudo apt-get install texlive-latex-base imagemagick ghostscript) → non fait
    • (sudo apt-get install graphviz graphviz-doc) → non fait
    • (sudo apt-get install gnuplot) → non fait (nécessaire pour l&#039;extension dataplot)
  • autres paquets
    • cairo ??
  • configuration ssl (https, certificats,…)

https://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl

Message d&#039;erreur sur sudo do-release-update “There is no development version of an LTS available” → attendre (The -d switch is necessary to upgrade from Ubuntu 18.04 LTS as upgrades have not yet been enabled and will only be enabled after the first point release of 20.04 LTS) https://wiki.ubuntu.com/FocalFossa/ReleaseNotes#Upgrading_from_Ubuntu_18.04_LTS_or_19.10 bizarre par rapport aux sorties 20.04.1 répertoriées sur https://releases.ubuntu.com/20.04/ !!)
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • floss/config_ubuntu_server.txt
  • Dernière modification : 2023/09/15 19:05
  • de villersd