One place for hosting & domains

      Démarrage

      Comment installer MySQL sur Ubuntu 20.04 [Démarrage rapide]


      Introduction

      MySQL est un système de gestion de base de données open source, généralement installé dans le cadre de la populaire pile LAMP ((Linux, Apache, MySQL, PHP/Python/Perl). Il met en œuvre le modèle relationnel et utilise le langage de requête structuré (mieux connu sous le nom de SQL – Structured Query Language) pour gérer ses données.

      Ce tutoriel de démarrage rapide explique comment installer la version 8 de MySQL sur un serveur Ubuntu 20.04.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin de :

      Étape 1 – Installation de MySQL

      Pour installer MySQL, mettez d’abord à jour l’index des paquets de votre serveur si vous ne l’avez pas fait récemment :

      Ensuite, installez le paquet mysql-server​​​ :

      • sudo apt install mysql-server

      Étape 2 – Configurer MySQL

      Exécutez le script de sécurité inclus dans MySQL avec sudo: 

      • sudo mysql_secure_installation

      Vous serez alors guidé à travers une série d’invites où vous pourrez apporter quelques modifications aux options de sécurité de votre installation MySQL. La première invite vous demandera si vous souhaitez configurer le Validate Password Plugin que vous pouvez utiliser pour tester la solidité de votre mot de passe MySQL.

      Si vous choisissez de mettre en place le plugin Validate Password, le script vous demandera de choisir un niveau de validation du mot de passe, le plus faible étant 0 et le plus fort étant 2 :

      Output

      Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

      La prochaine étape consistera à entrer et à confirmer un mot de passe pour l’utilisateur root de MySQL :

      Output

      Please set the password for root here. New password: Re-enter new password:

      Le script vous demandera alors si vous voulez continuer avec le mot de passe que vous venez de saisir ou si vous voulez en saisir un nouveau. Si vous êtes satisfait de votre mot de passe, entrez Y pour continuer le script :

      Output

      Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

      À partir de là, vous pouvez appuyer sur Y puis sur ENTER pour accepter les valeurs par défaut pour toutes les questions suivantes.

      Étape 3 – (Facultatif) Ajustement de l’authentification et des privilèges de l’utilisateur

      Afin d’utiliser un mot de passe pour se connecter à MySQL en tant que root, vous devrez changer sa méthode d’authentification à partir du plugin d’authentification par défaut auth_socket à un autre comme caching_sha2_password ou mysql_native_password. Pour ce faire, ouvrez l’invite MySQL depuis votre terminal :

      À partir de là, lancez un ALTER USER pour modifier le plugin d’authentification qu’il utilise et définir un nouveau mot de passe. Veillez à remplacer password par un mot de passe fort de votre choix, et souvenez-vous que cette commande modifiera le mot de passe root que vous avez défini à l’étape 2 :

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Note : caching_sha2_password est le plugin d’authentification préféré de MySQL car il offre un cryptage de mot de passe plus sûr que l’ancien, mais encore largement utilisé, mysql_native_password. 

      Cependant, de nombreuses applications PHP – phpMyAdmin, par exemple – ne fonctionnent pas de manière fiable avec caching_sha2_password. Si vous prévoyez d’utiliser cette base de données avec une application PHP, vous pouvez définir root pour vous authentifier avec mysql_native_password à la place :

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

      Exécutez ensuite FLUSH PRIVILEGES qui ordonne au serveur de recharger les tableaux de subventions et de mettre vos nouvelles modifications en vigueur :

      Vérifiez à nouveau les méthodes d’authentification utilisées par chacun de vos utilisateurs pour confirmer que root ne s’authentifie plus à l’aide du plugin auth_socket :

      • SELECT user,authentication_string,plugin,host FROM mysql.user;

      Output

      +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Une fois que vous avez confirmé cela sur votre propre serveur, vous pouvez quitter le shell MySQL :

      Vous pouvez également vous connecter à MySQL avec un utilisateur dédié au lieu de root. Pour créer un tel utilisateur, ouvrez à nouveau le shell MySQL :

      Note : Si vous avez activé l’authentification par mot de passe pour root, comme décrit dans les paragraphes précédents, vous devrez plutôt exécuter ce qui suit :

      De là, créez un nouvel utilisateur et attribuez-lui un mot de passe fort :

      • CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

      Ensuite, accordez à votre nouvel utilisateur les privilèges appropriés. Par exemple, vous pourriez accorder les privilèges d’utilisateur à toutes les tables de la base de données, ainsi que le pouvoir d’ajouter, de modifier et de supprimer des privilèges d’utilisateur, avec cette commande :

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

      Ensuite, vous pouvez quitter le shell MySQL :

      Conclusion

      Vous avez maintenant installé une configuration MySQL de base sur votre serveur. Voici quelques exemples des prochaines étapes que vous pouvez suivre :



      Source link

      Comment installer et sécuriser Redis sur Ubuntu 20.04 [Démarrage rapide]


      Introduction

      Redis est une base de données de valeurs-clés en mémoire renommée pour sa flexibilité, ses performances et son vaste support linguistique. Ce didacticiel de démarrage rapide est conçu pour vous apprendre à installer, configurer et sécuriser Redis sur un serveur Ubuntu 20.04.

      Conditions préalables

      Pour suivre ces instructions, vous aurez besoin d’accéder à un serveur Ubuntu 20.04 doté d’un non-root user avec des privilèges sudo et un pare-feu configuré avec ufw. Vous pouvez configurer ceci en suivant notre Guide de configuration initiale du serveur pour Ubuntu 20.04.

      Étape 1 — Installation et configuration de Redis

      Commencez par mettre à jour votre cache local de package apt :

      Installez ensuite Redis en saisissant ce qui suit :

      • sudo apt install redis-server

      Ensuite, ouvrez le fichier de configuration Redis avec votre éditeur de texte favori :

      • sudo nano /etc/redis/redis.conf

      Dans le fichier, recherchez la directive supervised qui vous permet de déclarer un système init qui gérera Redis en tant que tant Étant donné que vous exécutez Ubuntu, qui utilise le système init systemd, remplacez sa valeur no par systemd :

      /etc/redis/redis.conf

      . . .
      
      # If you run Redis from upstart or systemd, Redis can interact with your
      # supervision tree. Options:
      #   supervised no      - no supervision interaction
      #   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
      #   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
      #   supervised auto    - detect upstart or systemd method based on
      #                        UPSTART_JOB or NOTIFY_SOCKET environment variables
      # Note: these supervision methods only signal "process is ready."
      #       They do not enable continuous liveness pings back to your supervisor.
      supervised systemd
      
      . . .
      

      Enregistrez et fermez le fichier lorsque vous avez terminé. Si vous avez modifié le fichier avec nano, faites-le en appuyant sur CTRL + X, Y, puis sur ENTER.

      Ensuite, redémarrez le service Redis pour valider les modifications que vous avez apportées au fichier de configuration :

      • sudo systemctl restart redis.service

      Pour vérifier si Redis fonctionne correctement, connectez-vous au serveur à l’aide de redis-cli, le client de la ligne de commande de Redis :

      Dans l’invite qui suit, testez la connectivité avec la commande ping :

      Output

      PONG

      Ce résultat confirme que la connexion au serveur est active. Ensuite, vérifiez que vous pouvez configurer des clés en exécutant les commandes suivantes :

      Output

      OK

      Récupérez la valeur en saisissant :

      En supposant que tout fonctionne correctement, vous pourrez récupérer la valeur que vous avez sauvegardée :

      Output

      "It's working!"

      Après avoir confirmé que la valeur est récupérable, quittez l’invite Redis pour revenir au shell :

      Étape 2 — Configuration d’un mot de passe Redis

      Vous pouvez configurer un mot de passe Redis directement dans le fichier de configuration de Redis, /etc/redis/redis.conf. Ouvrez à nouveau ce fichier avec votre éditeur favori :

      • sudo nano /etc/redis/redis.conf

      Faites défiler l’écran jusqu’à la section SECURITY et recherchez une directive commentée indiquant ce qui suit :

      /etc/redis/redis.conf

      . . .
      # requirepass foobared
      . . .
      

      Décommentez-la en supprimant le # et remplacez foobared par un mot de passe sécurisé :

      /etc/redis/redis.conf

      . . .
      requirepass your_redis_password
      . . .
      

      Une fois le mot de passe configuré, enregistrez et fermez le fichier, puis redémarrez Redis :

      • sudo systemctl restart redis.service

      Pour vérifier si le mot de passe fonctionne, ouvrez le client Redis :

      Ci-après vous voyez une séquence de commandes qui permet de tester le bon fonctionnement du mot de passe Redis. La première commande essaie de définir une clé sur une valeur avant l’authentification :

      Cela ne fonctionnera pas si vous ne procédez pas à l’authentification. Redis renverra alors une erreur :

      Output

      (error) NOAUTH Authentication required.

      La commande suivante procède à l’authentification avec le mot de passe spécifié dans le fichier de configuration Redis :

      Redis valide :

      Output

      OK

      Après cela, la ré-exécution de la commande précédente sera probante :

      Output

      OK

      get key1 interroge Redis pour obtenir la valeur de la nouvelle clé.

      Output

      "10"

      Après avoir confirmé que vous êtes en mesure d’exécuter des commandes dans le client Redis suite à l’authentification, vous pouvez quitter ​​redis-cli​​​ ​​​:

      Étape 3 – Renommer les commandes dangereuses

      Redis intègre une autre fonctionnalité de sécurité qui consiste à renommer ou à désactiver complètement certaines commandes considérées comme dangereuses. Voici certaines des commandes considérées comme dangereuses : FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME et DEBUG. En désactivant ou en renommant ces commandes ainsi que d’autres, vous rendez toute reconfiguration, destruction ou suppression de vos données plus difficile aux utilisateurs non autorisés.

      Pour renommer ou désactiver les commandes Redis, rouvrez le fichier de configuration :

      • sudo nano /etc/redis/redis.conf

      Attention : les étapes suivantes qui vous montrent de quelle manière désactiver et renommer des commandes sont données à titre d’exemple. Vous devez décider de désactiver ou de renommer uniquement les commandes qui ont du sens pour vous. Vous pouvez consulter la liste complète des commandes par vous-même et déterminer de quelle manière elles peuvent être utilisées à mauvais escient sur redis.io/commands.

      Pour désactiver une commande, renommez-la simplement dans une chaîne de caractères vide (indiquée par une paire de guillemets sans aucun caractère entre eux), comme illustré ci-dessous :

      /etc/redis/redis.conf

      . . .
      # It is also possible to completely kill a command by renaming it into
      # an empty string:
      #
      rename-command FLUSHDB ""
      rename-command FLUSHALL ""
      rename-command DEBUG ""
      . . .
      

      Pour renommer une commande, donnez-lui un autre nom comme indiqué dans les exemples ci-dessous. Les commandes renommées doivent être difficiles à deviner pour les autres, mais faciles à retenir pour vous :

      /etc/redis/redis.conf

      . . .
      # rename-command CONFIG ""
      rename-command SHUTDOWN SHUTDOWN_MENOT
      rename-command CONFIG ASC12_CONFIG
      . . .
      

      Sauvegardez vos modifications et fermez le fichier.

      Après avoir renommé une commande, appliquez la modification en redémarrant Redis :

      • sudo systemctl restart redis.service

      Pour tester la nouvelle commande, saisissez la ligne de commande Redis :

      Puis procédez à l’authentification :

      Output

      OK

      En supposant que vous avez renommé la commande CONFIG avec ASC12_CONFIG comme dans l’exemple précédent, essayez d’utiliser la commande d’origine CONFIG. L’opération devrait échouer, car vous l’avez renommée :

      Output

      (error) ERR unknown command `config`, with args beginning with:

      Toutefois, en saisissant la commande renommée, cela devrait fonctionner. Elle n’est pas sensible à la casse :

      • asc12_config get requirepass

      Output

      1) "requirepass" 2) "your_redis_password"

      Conclusion

      Au cours de ce didacticiel de démarrage rapide, vous avez installé et configuré Redis, vérifié que votre installation Redis fonctionne correctement et utilisé ses fonctions de sécurité intégrées pour le rendre moins vulnérable aux attaques d’utilisateurs malveillants.



      Source link

      Comment installer le serveur web Apache sur Ubuntu 20.04 [Démarrage rapide]


      Introduction

      Le serveur HTTP Apache est le serveur web le plus utilisé au monde. Il offre de nombreuses fonctionnalités puissantes, notamment des modules à chargement dynamique, une prise en charge robuste des médias et une intégration poussée avec d’autres logiciels populaires.

      Dans ce guide, nous vous expliquerons comment installer un serveur web Apache sur votre serveur Ubuntu 20.04. Pour une version plus détaillée de ce tutoriel, veuillez vous référer à Comment installer le serveur Web Apache sur Ubuntu 20.04.

      Conditions préalables

      Avant de commencer ce guide, vous devez disposer des éléments suivants :

      • Un serveur Ubuntu 20.04 et un utilisateur non root ordinaire avec des privilèges sudo. En outre, vous devrez activer un pare-feu de base pour bloquer les ports non essentiels. Vous pouvez apprendre comment configurer un compte utilisateur ordinaire et mettre en place un pare-feu pour votre serveur en suivant notre Guide de configuration initiale du serveur pour Ubuntu 20.04.

      Lorsque vous avez un compte disponible, connectez-vous en tant qu’utilisateur non root pour commencer.

      Étape 1 — Installation d’Apache

      Apache est disponible dans les dépôts de logiciels par défaut d’Ubuntu, vous pouvez donc l’installer en utilisant les outils conventionnels de gestion des packages.

      Mettez à jour votre index local des packages :

      Installez le package apache2 :

      Étape 2 — Réglage du pare-feu

      Consultez les profils d’application ufw disponibles :

      Output

      Available applications: Apache Apache Full Apache Secure OpenSSH

      Activons le profil le plus restrictif qui permettra toujours le trafic que vous avez configuré, en autorisant le trafic sur le port 80 (trafic web normal, non crypté) :

      Vérifiez le changement :

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Étape 3 – Vérification de votre serveur Web

      Vérifiez avec le système systemd init pour vous assurer que le service fonctionne en tapant :

      • sudo systemctl status apache2

      Output

      apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2020-04-28 23:06:40 UTC; 56s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 13785 (apache2) Tasks: 55 (limit: 1137) Memory: 5.3M CGroup: /system.slice/apache2.service ├─13785 /usr/sbin/apache2 -k start ├─13787 /usr/sbin/apache2 -k start └─13788 /usr/sbin/apache2 -k start

      Accédez à la page d’accueil par défaut d’Apache pour confirmer que le logiciel fonctionne correctement grâce à votre adresse IP :

      http://your_server_ip
      

      Vous devriez recevoir la page web Apache par défaut d’Ubuntu 20.04 :

      Page par défaut d'Apache

      Étape 4 — Configuration des hôtes virtuels (recommandé)

      Lorsque vous utilisez le serveur web Apache, vous pouvez utiliser des hôtes virtuels (similaires aux blocs de serveurs dans Nginx) pour encapsuler les détails de la configuration et héberger plusieurs domaines à partir d’un seul serveur. Nous allons configurer un domaine appelé your_domain, mais vous devez le remplacer par le nom propre à votre domaine. Pour en savoir plus sur la configuration d’un nom de domaine avec DigitalOcean, veuillez vous reporter à notre Introduction au DNS DigitalOcean.

      Créez le répertoire pour your_domain:

      sudo mkdir /var/www/your_domain
      

      Attribuez la propriété du répertoire :

      • sudo chown -R $USER:$USER /var/www/your_domain

      Les autorisations de vos racines web devraient être correctes si vous n’avez pas modifié votre valeur unmask, mais vous pouvez vous en assurer en tapant :

      • sudo chmod -R 755 /var/www/your_domain

      Créez un exemple de page index.html en utilisant nano ou votre éditeur préféré :

      • nano /var/www/your_domain/index.html

      À l’intérieur, ajoutez l’exemple de HTML suivant :

      /var/www/your_domain/index.html

      <html>
          <head>
              <title>Welcome to Your_domain!</title>
          </head>
          <body>
              <h1>Success!  The your_domain virtual host is working!</h1>
          </body>
      </html>
      

      Enregistrez et fermez le fichier lorsque vous avez terminé.

      Créez un nouveau fichier d’hôte virtuel dans /etc/apache2/sites-available/your_domain.conf :

      • sudo nano /etc/apache2/sites-available/your_domain.conf

      Collez dans le bloc de configuration suivant, mis à jour pour notre nouveau répertoire et nom de domaine :

      /etc/apache2/sites-available/your_domain.conf

      <VirtualHost *:80>
          ServerAdmin webmaster@localhost
          ServerName your_domain
          ServerAlias your_domain
          DocumentRoot /var/www/your_domain
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Enregistrez et fermez le fichier lorsque vous avez terminé.

      Activez le fichier avec a2ensite :

      • sudo a2ensite your_domain.conf

      Désactivez le site par défaut défini dans 000-default.conf :

      • sudo a2dissite 000-default.conf

      Effectuez un test pour trouver d’éventuelles erreurs de configuration :

      • sudo apache2ctl configtest

      Vous devriez voir la sortie suivante :

      Output

      Syntax OK

      Redémarrez Apache pour implémenter vos modifications :

      • sudo systemctl restart apache2

      Apache devrait maintenant vous présenter votre nom de domaine. Vous pouvez vérifier cela en allant sur http://your_domain, où vous devriez voir quelque chose de similaire à ceci :

      Exemple d'hôte virtuel Apache

      Conclusion

      Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu que vous voulez présenter et les technologies que vous souhaitez utiliser afin de créer une expérience plus riche.

      Si vous souhaitez construire une pile d’applications plus complète, consultez cet article sur Comment configurer une pile LAMP sur Ubuntu 20.04.



      Source link