123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 |
- <!DOCTYPE html>
- <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
- <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-
-
- <title>Premières étapes de sécurisation du serveur - The Yojik Server Installation Guide</title>
-
- <link rel="shortcut icon" href="../img/favicon.ico">
-
- <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
- <link rel="stylesheet" href="../css/theme.css" type="text/css" />
- <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
- <link rel="stylesheet" href="../css/highlight.css">
-
- <script>
- // Current page data
- var mkdocs_page_name = "Premières étapes de sécurisation du serveur";
- var mkdocs_page_input_path = "2-deux.md";
- var mkdocs_page_url = "/2-deux/";
- </script>
-
- <script src="../js/jquery-2.1.1.min.js"></script>
- <script src="../js/modernizr-2.8.3.min.js"></script>
- <script type="text/javascript" src="../js/highlight.pack.js"></script>
- <script src="../js/theme.js"></script>
-
- </head>
- <body class="wy-body-for-nav" role="document">
- <div class="wy-grid-for-nav">
-
- <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
- <div class="wy-side-nav-search">
- <a href=".." class="icon icon-home"> The Yojik Server Installation Guide</a>
- <div role="search">
- <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
- <input type="text" name="q" placeholder="Search docs" />
- </form>
- </div>
- </div>
- <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
- <ul class="current">
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="..">Home</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../1-un/">Installation d'un serveur Debian/Stretch sécurisé</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 current">
- <a class="current" href="./">Premières étapes de sécurisation du serveur</a>
-
- <ul>
-
- <li class="toctree-l3"><a href="#premieres-etapes-de-securisation-du-serveur">Premières étapes de sécurisation du serveur</a></li>
-
- <li><a class="toctree-l4" href="#preambule">Préambule</a></li>
-
- <li><a class="toctree-l4" href="#recuperation-de-lip-du-serveur">Récupération de l'IP du serveur:</a></li>
-
- <li><a class="toctree-l4" href="#securisation-de-ssh">Sécurisation de ssh</a></li>
-
-
- <li class="toctree-l3"><a href="#deuxieme-phase">Deuxième phase</a></li>
-
- <li><a class="toctree-l4" href="#securisation-des-mots-de-passe">Sécurisation des mots de passe</a></li>
-
- <li><a class="toctree-l4" href="#test-du-hostname">Test du hostname</a></li>
-
-
- </ul>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../3-trois/">Configuration du réseau</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../4-quatre/">Installation d'un serveur de temps</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../5-cinq/">Installation d'un pare-feu</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../6-six/">Contrer les attaques de brute-force avec fail2ban</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../7-sept/">Installation d'un serveur de courrier basique</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../8-huit/">Installation du serveur DNS</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../9-neuf/">Installation d'un serveur web</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../10-dix/">Installation de dovecot et de l'authentification</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../11-onze/">Installation des certificats letsencrypt</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../12-douze/">Ajout des enregistrements SPF et DKIM au fichier de zone DNS</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../17-dixsept/">Installation de programmes de surveillance du serveur</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../18-dixhuit/">Installation d'un webmail</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../19-dixneuf/">Installation de git et de gogs</a>
-
- </li>
- <li>
-
- </ul>
- </div>
-
- </nav>
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
- <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
- <a href="..">The Yojik Server Installation Guide</a>
- </nav>
-
- <div class="wy-nav-content">
- <div class="rst-content">
- <div role="navigation" aria-label="breadcrumbs navigation">
- <ul class="wy-breadcrumbs">
- <li><a href="..">Docs</a> »</li>
-
-
-
- <li>Premières étapes de sécurisation du serveur</li>
- <li class="wy-breadcrumbs-aside">
-
- </li>
- </ul>
- <hr/>
- </div>
- <div role="main">
- <div class="section">
-
- <p></p>
- <h1 id="premieres-etapes-de-securisation-du-serveur">Premières étapes de sécurisation du serveur</h1>
- <h2 id="preambule">Préambule</h2>
- <p><strong>(à réaliser sur le serveur en mode super-utilisateur)</strong></p>
- <p>Pour mon usage personnel, j'installe systématiquement <strong>mc</strong>, petit programme de gestion de fichiers en mode texte qui permet de se déplacer facilement dans les répertoires, d'éditer, de déplacer les fichiers etc.</p>
- <pre><code>apt install mc
- </code></pre>
- <p>J'installe aussi <strong>vim</strong>, pour remplacer l'éditeur <strong>vi</strong> ou <strong>nano</strong> installé par défaut par Debian.</p>
- <pre><code>apt install vim
- </code></pre>
- <p>Installation des utilitaires système comme <strong>netstat</strong> <strong>ifconfig</strong> etc.</p>
- <pre><code>apt install net-tools
- </code></pre>
- <p>On ajoute les dépots non-free et contrib:</p>
- <p>vim /etc/apt/sources.list</p>
- <pre><code>deb http://debian.mirrors.ovh.net/debian stretch main contrib non-free
- deb-src http://debian.mirrors.ovh.net/debian stretch main main contrib non-free
- deb http://security.debian.org/debian-security stretch/updates main main contrib non-free
- deb-src http://security.debian.org/debian-security stretch/updates main main contrib non-free
- # stretch-updates, previously known as 'volatile'
- deb http://debian.mirrors.ovh.net/debian stretch-updates main main contrib non-free
- deb-src http://debian.mirrors.ovh.net/debian stretch-updates main main contrib non-free
- </code></pre>
- <p>Et on update et upgrade:</p>
- <pre><code>apt update && apt upgrade
- </code></pre>
- <h2 id="recuperation-de-lip-du-serveur">Récupération de l'IP du serveur:</h2>
- <p>Il nous faut connaître l'adresse IP de notre serveur qui est allouée dynamiquement par <strong>dhcp</strong>.</p>
- <p>Nous utiliserons la commande <strong>ifconfig</strong>:</p>
- <pre><code>root@atom:/home/ericadmin# ifconfig
- enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.111.23 netmask 255.255.255.0 broadcast 192.168.111.255
- inet6 2a01:e0a:54:c220:223:54ff:fec6:a07 prefixlen 64 scopeid 0x0<global>
- inet6 fe80::223:54ff:fec6:a07 prefixlen 64 scopeid 0x20<link>
- ether 00:23:54:c6:0a:07 txqueuelen 1000 (Ethernet)
- RX packets 9220 bytes 7825813 (7.4 MiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 2534 bytes 282820 (276.1 KiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
- inet 127.0.0.1 netmask 255.0.0.0
- inet6 ::1 prefixlen 128 scopeid 0x10<host>
- loop txqueuelen 1 (Boucle locale)
- RX packets 0 bytes 0 (0.0 B)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 0 bytes 0 (0.0 B)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- </code></pre>
- <p>Notre adresse IPV4 est: <strong>192.168.111.23</strong></p>
- <h2 id="securisation-de-ssh">Sécurisation de ssh</h2>
- <p>Voir le lien suivant: <a href="http://www.guillaume-leduc.fr/">Le blog de Guillaume</a></p>
- <h3 id="operations-a-effectuer-sur-le-poste-principal">Opérations à effectuer sur le poste principal</h3>
- <p>Nous générons notre paire de clefs pour l'authentification par clefs sur votre poste principal (si vous n'avez pas encore de jeu de clefs). Opération à effectuer sur votre poste principal.</p>
- <pre><code>ssh-keygen
- </code></pre>
- <p>Il vous faut copier maintenant la clef sur le serveur:</p>
- <pre><code>ssh-copy-id -i ~/.ssh/id_rsa.pub ericadmin@192.168.111.23
- ou
- ssh-copy-id ericadmin@192.168.111.23
- </code></pre>
- <p>N'oubliez pas de mettre vos identifiants propres, bien sûr.</p>
- <p>On teste comme le recommande ssh:</p>
- <pre><code>eric@aldebaran:~$ ssh 'ericadmin@91.121.72.10'
- Linux adara 4.9.103-xxxx-std-ipv6-64 #222672 SMP Mon Jun 4 15:16:03 UTC 2018 x86_64
- Debian GNU/Linux 9 (stretch)
- Linux adara.yojik.eu 4.9.103-xxxx-std-ipv6-64 #222672 SMP Mon Jun 4 15:16:03 UTC 2018 x86_64 GNU/Linux
- Server : 141519
- IPv4 : 91.121.72.10
- IPv6 : 2001:41d0:1:7d0a::1
- Hostname : adara.yojik.eu
- Last login: Sun Jun 24 15:08:32 2018 from 82.64.48.5
- </code></pre>
- <p>Et on teste qu'on peut passer super-utilisateur à partir de ce compte.</p>
- <pre><code>
- ericadmin@adara:~$ su
- Mot de passe :
- root@adara:/home/ericadmin#
- </code></pre>
- <h3 id="operations-a-effectuer-sur-le-serveur-en-mode-super-utilisateur">Opérations à effectuer sur le <strong>serveur</strong> en mode super-utilisateur.</h3>
- <p>La configuration se fait dans le fichier <strong>/etc/ssh/sshd_config</strong>, fichier qu'il va falloir éditer avec <strong>vim</strong> pas exemple.</p>
- <p>Nous allons d'abord en faire une copie de sauvegarde:</p>
- <pre><code>cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
- </code></pre>
- <pre><code>vim /etc/ssh/sshd_config
- </code></pre>
- <p>Nous n'allons autoriser que la connexion d'un <strong>user</strong> d'administration (pas de connexion de <strong>root</strong> par exemple), activer l'<strong>authentification par clefs</strong>, et supprimer l'authentification par <strong>login/mot de passe</strong> (en mode ssh). Vous pourrez toujours vous connecter avec le couple login/mot de passe si vous avez un accès physique à votre serveur.</p>
- <p>Nous garderons le port standard d'écoute (rien à changer dans le fichier):</p>
- <pre><code>Port 22
- </code></pre>
- <p>Nous interdisons la connexion par <strong>root</strong>:</p>
- <pre><code>PermitRootLogin no
- </code></pre>
- <p>Activation de l'authentification par clef (rien à changer dans le fichier):</p>
- <pre><code>PubkeyAuthentication yes
- </code></pre>
- <p>Nous ajoutons une liste d'utilisateurs autorisés à se connecter.</p>
- <pre><code>AllowUsers ericadmin
- </code></pre>
- <p>A la place de <strong>ericadmin</strong> mettez bien sûr le nom de l'utilisateur que vous avez entré pendant la phase d'installation.</p>
- <p>Nous pouvons limiter le nombre de tentatives de connexion:</p>
- <pre><code>MaxAuthTries 1
- </code></pre>
- <p>Interdiction de la connexion par couple login/mot de passe:</p>
- <pre><code>PasswordAuthentication no
- </code></pre>
- <p>Désactivation de PAM</p>
- <pre><code>UsePAM no
- </code></pre>
- <p>Sauvegarde du fichier de configuration. (commande escape, suivie de ZZ pour vim)</p>
- <p>Redémarrage du service <strong>ssh</strong></p>
- <pre><code>systemctl restart sshd
- </code></pre>
- <h3 id="test-de-connexion">Test de connexion:</h3>
- <p>Sur votre ordinateur principal, dans un terminal, tapez:</p>
- <pre><code>ssh ericadmin@192.168.111.23
- </code></pre>
- <p>Vous devez être connectés (logués) sur le serveur.</p>
- <p>Essayez avec l'utilisateur root:</p>
- <pre><code>ssh root@192.168.111.23
- </code></pre>
- <p>Cela doit échouer.</p>
- <pre><code>eric@aldebaran:~$ ssh 'ericadmin@192.168.111.23'
- Last login: Sun Dec 17 16:37:40 2017 from 192.168.111.150
- ericadmin@atom:~$
- </code></pre>
- <p>Voilà pour la première phase.</p>
- <h1 id="deuxieme-phase">Deuxième phase</h1>
- <h2 id="securisation-des-mots-de-passe">Sécurisation des mots de passe</h2>
- <p>J'utilise un générateur de mots de passe pour le compte <strong>root</strong> et le compte <strong>ericadmin</strong>.
- Il y a pléthore de générateurs de mots de passe, certains à base d'utilitaires tout prêts, d'autres créés à l'aide commande unix standards.</p>
- <p>Les 3 générateurs <strong>tout prêts</strong> les plus cités dans la documentation sont:</p>
- <ul>
- <li>PWGEN</li>
- <li>MAKPASSWD</li>
- <li>PASSWORDMAKER</li>
- </ul>
- <p>Pour l'installation, utilisez les commandes suivantes:</p>
- <ul>
- <li>apt install pwgen</li>
- <li>apt install makepasswd</li>
- <li>apt install passwordmaker-cli</li>
- </ul>
- <h3 id="exemples-dutilisation-de-ces-programmes">Exemples d'utilisation de ces programmes:</h3>
- <p>Utilisation de <strong>pwgen</strong>:</p>
- <p>Pour obtenir de l'aide à l'utilisation de cet utilitaire, tapez: <strong>pwgen --help</strong>. Vous pouvez faire varier le niveau de sécurité ainsi que le nombre de mots de passe générés et la longueur des mots de passe.</p>
- <pre><code>eric@aldebaran:~$ pwgen
- oow1Osho teM3chai Aim5shee Sheme1yo aiR6aem1 Vooxeiv0 Iabeenu1 kae7Xie5
- oacei4aV Ohb8ceib zo0shu6F Dob2chie Roo5eeLa fee5Nooh Phi0suim OMeigh2w
- nah2Ool5 Saix6lie EeNaem5u ooVoh3ki IN5aeF9p CuHu8Aib vaim2Jia chah0Ier
- ShieC6ze Teex4tie mei6ou7I Ath6aiFe uw4quoHa lad8Quee ohQuai9Y Sho5Eem6
- aoCaol3W ooGah9th bix6Aic9 thee1Coo lie0ahTe eiz0iiSh cieYu8Ie Ealu3chi
- vaeYee6c ahje9aeJ Sheenee7 eesh1Iez Odaa6kah aico6Jah aphahP4U aYePh1ev
- phohNie8 Chuut3ie eeb9ieDa ohp9AhGi efae5ooV Shiere5c ahV8riek Seegohv1
- Eetohy1a Lievoh0k jox3uf6K chai3Woo iecoh0Iu ieGh9tuz UMeex2ah Eathaur8
- Ood2oeho paeSah0p jaihoo1U eemoi9Ee ile1So4z OongeiN6 aaY9iuch ew3Iemoo
- Iech0Eey OoMie0ah OhBei1ae Ohsh4aik jah0faiT ioW7oz6t yee1Uphu ies4eeNa
- pooP8eeg iePoh4ya fooL3uqu ieGiej1X Ein7eifu ool7Olae eub5ooSe eyo8EiNu
- ach9ohWo Foog9Oev aej9geiH Thahg6Di eegei4Ai eN7quu3b waiK2ieg foThe7zi
- fu2Phoug iYaeg4if iLu6eeFi Aeshoo0i uxoGh6no id1TeRei diob7Pha vokuuN7h
- Chokei8J Iemee8ah eingei0E ubieh2Ch daiyu3EB QueiQu6H Jib0uwee wi9Xoodu
- eeL3osh2 Eo3Ae1ch bieWui2a ro6chiCo engu0ooF Eebeu2jo ee7Eey8t EiSeen5i
- ohNgai6i Iutaez4a xah1yeeG eGhi5Ouz vaiYu6ee fae0AeP5 jee0Ib2I OS3xuwae
- Eefohp1u eegiK6ae ohyuom7V Eij8eeNi Ou0ec7ye Eethoh4e eeHi2ugh ichoLae3
- UT8oopoo oox6Ohx9 ohbaL2hu oht9kaiR Ieho8Ou1 Ten6saet cae7Iexi daDuas9e
- ShiexaT7 Lei6etii ea4aoH8y ja8Zai8g phaeG6Hi sheNg8ee Oow5phae aa7gohPi
- nahS8Eeg ba6Roh9j ooRo6epo pheNoam1 johF7ii9 vuZ4Latu xai5og6H aeS8hu2I
- eric@aldebaran:~$
- </code></pre>
- <p>Vous pouvez prendre le mot de passe que vous voulez dans le tableau généré.
- Pour un seul mot de passe:</p>
- <pre><code>eric@aldebaran:~$ pwgen -1
- Eerai4Sh
- </code></pre>
- <p>Pour un mot de passe mieux sécurisé:</p>
- <pre><code>eric@aldebaran:~$ pwgen -1 -s
- tx2CqGyf
- </code></pre>
- <p>Encore plus sécurisé avec l'option -y:</p>
- <pre><code>eric@aldebaran:~$ pwgen -1 -s -y
- a+01K!U~
- </code></pre>
- <p>Utilisation de <strong>makepasswd</strong>:</p>
- <p>Tapez: <strong>makepasswd --help</strong> pour de l'aide à l'utilisation des paramètres.</p>
- <pre><code>makepasswd --count 5 --minchars 10
- </code></pre>
- <h3 id="securisation-du-mot-de-passe-super-utilisateur-root">Sécurisation du mot de passe super-utilisateur (root)</h3>
- <p>Utilisez un des utilitaires ci-dessus. Attention à la longueur minimale!</p>
- <p>Sous le user “admin”, tapez: <strong>passwd</strong> pour changer le mot de passe admin.</p>
- <h3 id="securisation-du-mot-de-passe-administrateur">Sécurisation du mot de passe administrateur</h3>
- <p>Utilisez un des utilitaires ci-dessus. Attention à la longueur minimale!
- Sous le user “root”, tapez: <strong>passwd</strong> pour changer le mot de passe root.</p>
- <h2 id="test-du-hostname">Test du hostname</h2>
- <p>La commande <strong>hostname</strong> nous indiquera le nom “court” de notre machine, et la commande <strong>hostname -f</strong> sa version longue avec le nom de domaine.</p>
- <pre><code>root@atom:/home/ericadmin# hostname
- atom
- root@atom:/home/ericadmin#
- </code></pre>
- <pre><code class="shell">root@atom:/home/ericadmin# hostname -f
- atom.yojik.net
- root@atom:/home/ericadmin#
- </code></pre>
- <p>Le résultat est bon.</p>
-
- </div>
- </div>
- <footer>
-
- <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-
- <a href="../3-trois/" class="btn btn-neutral float-right" title="Configuration du réseau">Next <span class="icon icon-circle-arrow-right"></span></a>
-
-
- <a href="../1-un/" class="btn btn-neutral" title="Installation d'un serveur Debian/Stretch sécurisé"><span class="icon icon-circle-arrow-left"></span> Previous</a>
-
- </div>
-
- <hr/>
- <div role="contentinfo">
- <!-- Copyright etc -->
-
- </div>
- Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
- </footer>
-
- </div>
- </div>
- </section>
- </div>
- <div class="rst-versions" role="note" style="cursor: pointer">
- <span class="rst-current-version" data-toggle="rst-current-version">
-
-
- <span><a href="../1-un/" style="color: #fcfcfc;">« Previous</a></span>
-
-
- <span style="margin-left: 15px"><a href="../3-trois/" style="color: #fcfcfc">Next »</a></span>
-
- </span>
- </div>
- </body>
- </html>
|