{"id":2363,"date":"2021-01-22T14:27:36","date_gmt":"2021-01-22T14:27:36","guid":{"rendered":"https:\/\/oursoide.wordpress.com\/?p=2363"},"modified":"2021-01-22T14:27:36","modified_gmt":"2021-01-22T14:27:36","slug":"helios-64-part-2-installons-un-serveur-web-caddy","status":"publish","type":"post","link":"https:\/\/blog.nanuq.me\/?p=2363","title":{"rendered":"[ARCHIVE] Helios 64 \/ Part 2 \/ Installons un serveur web (Caddy)"},"content":{"rendered":"<p><em>\ud83d\uddd3\ufe0f Note : Cet article est une archive import\u00e9e de mon ancien blog. Certaines informations peuvent ne plus \u00eatre \u00e0 jour.<\/em><\/p>\n<p>Ou comment j&rsquo;ai commenc\u00e9 \u00e0 administrer mon serveur avec les pieds&#8230;<\/p>\n<p><!--more--><\/p>\n<p>Dans mon dernier article , je vous pr\u00e9sentais <a href=\"https:\/\/blog.nanuq.me\/2021\/01\/13\/helios64\/\">Helios64<\/a>. C&rsquo;est une belle coquille vide. Il faudrait d\u00e9sormais mettre des trucs dedans !<\/p>\n<p>&nbsp;<\/p>\n<h1>Introduction<\/h1>\n<p>&nbsp;<\/p>\n<h2>A propos :<\/h2>\n<p>Je ne suis pas d\u00e9veloppeur. Je ne travaille pas dans l&rsquo;informatique. Je ne suis pas adminsys. Vous trouverez ci dessous un r\u00e9sum\u00e9 de mes p\u00e9r\u00e9grinations sur les internets pour apprendre \u00e0 administrer mon serveur. Il y a certainement des petites coquilles, c&rsquo;est \u00e0 prendre en compte si jamais vous voulez pointer du doigt les inexactitudes ou les erreurs techniques. De plus, il y a certainement 278 976 mani\u00e8res de faire. C&rsquo;est une m\u00e9thode. La mienne. Peut \u00eatre pas la meilleure, mais celle que j&rsquo;ai r\u00e9ussi \u00e0 faire (presque) tout seul. Je remercie Jae, Tinerion, et vlp pour leur aide pr\u00e9cieuse. Cette article essaye de d\u00e9tailler (mais pas trop non plus), il faut plutot le voir comme une pr\u00e9sentation g\u00e9n\u00e9rale de la philosophie, que comme un tuto pas \u00e0 pas ultra d\u00e9taill\u00e9. (C&rsquo;est pourquoi je ne traiterai pas de l&rsquo;attribution d&rsquo;une IP locale statique (<a href=\"http:\/\/questions.heffge.fr\/DHCP.php\">ou de la mise en place d&rsquo;un service DHCP)<\/a> )<\/p>\n<p>&nbsp;<\/p>\n<h2>Ne pas avoir peur<\/h2>\n<p>Bien que cet article est certainement l&rsquo;un des plus techniques que j&rsquo;ai eu l&rsquo;occasion d&rsquo;aborder sur ce blog, il ne faut pas en avoir peur. Je pense qu&rsquo;il peut \u00eatre tout \u00e0 fait d\u00e9routant si on a aucun baggage technique. Des connaissances de bases sur un environnement Linux et sur les lignes de commandes dans un terminal seront certainement grandement utile. N\u00e9anmoins, si vous vous y int\u00e9ressez ne serait ce qu&rsquo;un tout petit peu \u00e7a peut devenir tr\u00e8s enrichissant. Je vous invite \u00e0 lire avec la plus grande attention ce qui va suivre, et essayer d&rsquo;en comprendre la substantifique moelle . Je ne peux que vous conseiller de vous procurer une petite machine pour vous \u00ab\u00a0amuser\u00a0\u00bb \u00e0 exp\u00e9rimenter des choses. Mon exp\u00e9rience avec mon Olimex Lime 2 m&rsquo;a \u00e9t\u00e9 tr\u00e8s utile. C&rsquo;est pourquoi je vous invite \u00e0 \u00e9galement lire <a href=\"https:\/\/blog.nanuq.me\/2020\/05\/09\/comme-sur-un-petit-nuage\/\">cet article<\/a> qui me parait \u00eatre une bonne introduction sur certains points (car il y aura beaucoup de points communs par moments&#8230;).<\/p>\n<p>&nbsp;<\/p>\n<h2>Pourquoi pas Yunohost ?<\/h2>\n<p>Justement, on pourrait se demander pourquoi je m&#8217;emb\u00eate \u00e0 tout administrer \u00ab\u00a0\u00e0 la mano from scratch\u00a0\u00bb, et que je n&rsquo;utilise pas un outil \u00ab\u00a0clef en main\u00a0\u00bb. J&rsquo;ai d\u00e9ja partiellement r\u00e9pondu. D&rsquo;abord <a href=\"https:\/\/yunohost.org\/\">Yunohost<\/a> n&rsquo;est pas disponible (enfin pas encore) pour Helios64. En revanche, on peut trouver un syst\u00e8me similaire appel\u00e9 <a href=\"https:\/\/syncloud.org\">\u00ab\u00a0Syncloud<\/a> compatible avec le serveur de chez Kobol. Bien que ces outils soient vraiment tr\u00e8s pratique, on reste tout de m\u00eame relativement bloqu\u00e9 par les options qu&rsquo;ils proposent. M\u00eame si on peut personnaliser pas mal de chose, on a pas le total contr\u00f4le sur notre syst\u00e8me. C&rsquo;est pourquoi, dans une optique d&rsquo;avoir <em>\u00ab\u00a0ma config rien qu&rsquo;a moi aux petits oignons comme je l&rsquo;aime\u00a0\u00bb <\/em>mais \u00e9galement d\u00e9sirant apprendre et comprendre le fonctionnement de cette machine, j&rsquo;ai d\u00e9cid\u00e9 de tout faire \u00e0 la main.<\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<h1>Les mains dans le camboui<\/h1>\n<p>&nbsp;<\/p>\n<h2>Le nom de domaine<\/h2>\n<p>En premier lieu, je me suis achet\u00e9 un nom de domaine. (Je sais que je vais en avoir besoin apr\u00e8s&#8230;) En effet, je souhaite que mon serveur soit accessible facilement et simplement. Bien qu&rsquo;on puisse s&rsquo;y connecter avec une IP. C&rsquo;est quand m\u00eame plus pratique d&rsquo;avoir un nom de domaine, et ca permet beaucoup plus de chose.<\/p>\n<p>J&rsquo;ai personnellement opt\u00e9 pour un nom de domaine chez <a href=\"https:\/\/www.gandi.net\/fr\">Gandi.net<\/a> (mais vous pouvez allez ailleurs si vous voulez. <a href=\"https:\/\/www.ovh.com\/fr\/\">OVH<\/a> par exemple (et il y en a d&rsquo;autres&#8230;).<\/p>\n<p>Il y a tous les prix selon les extensions (.com par exemple est souvent plus cher) et le nom de domaine que vous voulez. Bref; j&rsquo;ai personnellement opt\u00e9 pour un .me &#8230; C&rsquo;\u00e9tait en promo, ca m&rsquo;est revenu \u00e0 4.80 \u20ac pour une ann\u00e9e (puis 19.20\u20ac par an) &#8230; Ramenez \u00e7a au mois : et je trouve que c&rsquo;est acceptable.<\/p>\n<p>&nbsp;<\/p>\n<h2>Se connecter via SSH ;<\/h2>\n<p>Je consid\u00e8re que vous avez finalis\u00e9 l&rsquo;installation (<a href=\"https:\/\/wiki.kobol.io\/helios64\/install\/transfer\/\">cf ce lien<\/a>) et que vous avez transf\u00e9r\u00e9 votre OS sur la m\u00e9moire eMMC ou ailleurs. Personnellement j&rsquo;ai opt\u00e9 pour la premi\u00e8re option. De plus, je consid\u00e8re que vous vous \u00eates d\u00e9j\u00e0 connect\u00e9 via SSH et que vous vous \u00eates logg\u00e9 une premi\u00e8re fois en tant que <strong><em>root<\/em><\/strong> (<a href=\"https:\/\/wiki.kobol.io\/helios64\/install\/first-start\/\">cf ce lien<\/a>).<\/p>\n<p>&nbsp;<\/p>\n<h2>Changer le mot de passe,<\/h2>\n<p>Normalement, \u00e0 votre premi\u00e8re connexion, le syst\u00e8me vous demandera de modifier votre mot de passe. <strong>Il faut le faire.<\/strong> C&rsquo;est tr\u00e8s important pour des questions \u00e9videntes de s\u00e9curit\u00e9 !\u00a0 Si jamais vous ne l&rsquo;avez pas fait ; connect\u00e9 en tant que root vous pouvez taper :<\/p>\n<p><code>sudo passwd root<\/code><\/p>\n<p>et suivre les instructions \u00e0 l&rsquo;\u00e9cran.<\/p>\n<p>&nbsp;<\/p>\n<h2>Cr\u00e9er un utilisateur.<\/h2>\n<p>Normalement \u00e0 votre premi\u00e8re connexion le syst\u00e8me vous demandera de cr\u00e9er un nouvel utilisateur. Encore une fois, c&rsquo;est important car on est pas cens\u00e9 se connecter sur \u00ab\u00a0root\u00a0\u00bb pour faire des manips de la vie courante. Taper ceci pour ajouter un utilisateur (ici, il s&rsquo;appelle <strong>marcel<\/strong> mais \u00e9videmment, vous : vous mettez ce que vous voulez. Evitez cependant les caract\u00e9res sp\u00e9ciaux et les majuscules)<\/p>\n<p><code><\/code><code>adduser marcel<\/code><code><br>\n<\/code><\/p>\n<p>Le syst\u00e8me vous demandera de pr\u00e9ciser des informations sur l&rsquo;utilisateur. Vous pouvez appuyer sur Entr\u00e9e \u00e0 chaque fois pour ignorer ces sp\u00e9cifications.<\/p>\n<pre class=\"wp-block-code\"><code>Enter the new value or press ENTER for the default\n Full Name []:\n Room Number []:\n Work Phone []:\n Home Phone []:\n Other []:<\/code> Enfin, le syst\u00e8me vous demandera de confirmer.<\/pre>\n<pre class=\"wp-block-code\"><code>Is the information correct? [Y\/n]<\/code> Tapez <code>Y<\/code> (pour Yes)<\/pre>\n<p>Maintenant, il ne nous reste plus qu&rsquo;a lui donner les privil\u00e8ges \u00e0 ce petit Marcel. (Pour nous \u00e9viter de passer par le compte <em><strong>root <\/strong><\/em>)<\/p>\n<p class=\"wp-block-code\"><code>usermod -aG sudo marcel<br>\n<\/code><br>\nEt voil\u00e0. Normalement, c&rsquo;est bon. Il ne vous reste plus qu&rsquo;a vous connecter en tant que marcel. Et si besoin utiliser <code>sudo <\/code> ou <code>su -<\/code>.<\/p>\n<h2>Mise \u00e0 jour du syst\u00e8me<\/h2>\n<p>Avec la commande <code>armbian-config<\/code> on peut acc\u00e9der \u00e0 des outils directement impl\u00e9ment\u00e9s dans armbian. Notamment une mise \u00e0 jour du firmwire et du systeme.<\/p>\n<p><a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-04-49-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2573 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-04-49-1.png\" alt=\"\" width=\"668\" height=\"476\"><\/a> <a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-05-10-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2574 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-05-10-1.png\" alt=\"\" width=\"668\" height=\"476\"><\/a> <a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-05-45-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2575 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-05-45-1.png\" alt=\"\" width=\"668\" height=\"476\"><\/a> <a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-06-06-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2576 size-full\" style=\"outline: red dashed 1px;\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-06-06-1.png\" alt=\"\" width=\"668\" height=\"476\"><\/a> <a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-07-47-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2577 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/capture-decran-du-2021-01-21-18-07-47-1.png\" alt=\"\" width=\"668\" height=\"476\"><\/a><\/p>\n<p>Une fois red\u00e9marr\u00e9, on se connecte \u00e0 nouveau. Par r\u00e9flexe j&rsquo;ai retap\u00e9 <code>sudo apt-get update &amp;&amp; sudo apt-get upgrade<\/code> m\u00eame si je crois que ca a d\u00e9ja \u00e9t\u00e9 fait vu la manip&rsquo; que l&rsquo;on vient de faire avec la mise \u00e0 jour du firmwire.<\/p>\n<h2>Installer un serveur web<\/h2>\n<p>On attaque le vif du sujet ! On va installer un serveur web. Ca nous permettra de communiquer avec notre serveur via Internet ; et donc, depuis n&rsquo;importe o\u00f9 dans le monde !<\/p>\n<h3>Choix du serveur web<\/h3>\n<p>Il existe plusieurs serveurs web, les plus connus \u00e9tant <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Apache_HTTP_Server\">Apache<\/a> et <a href=\"https:\/\/fr.wikipedia.org\/wiki\/NGINX\">Nginx<\/a>. N\u00e9anmoins, on va utiliser ni l&rsquo;un ni l&rsquo;autre. Pourquoi ? Pourquoi pas ! On m&rsquo;a pr\u00e9sent\u00e9 <a href=\"https:\/\/caddyserver.com\/\">Caddy<\/a> r\u00e9cemment, et j&rsquo;ai beaucoup aim\u00e9 sa philosophie. J&rsquo;ai l&rsquo;impression qu&rsquo;il est plus simple \u00e0 comprendre et \u00e0 utiliser que Apache et Nginx. En plus, il g\u00e8re automatiquement <a href=\"https:\/\/www.journaldunet.fr\/web-tech\/dictionnaire-du-webmastering\/1203459-https-hypertext-transfert-protocol-secure-definition\/\">HTTPS<\/a> et la gestion des certificats <a href=\"https:\/\/letsencrypt.org\/fr\/how-it-works\/\">LetsEncrypt<\/a>. Pour m&rsquo;\u00eatre un peu frott\u00e9 \u00e0 ses probl\u00e9matiques dans le pass\u00e9, c&rsquo;est (pour moi) un avantage non n\u00e9gligeable. (Bonus : <a href=\"https:\/\/kinsta.com\/fr\/blog\/nginx-vs-apache\/\">un article relatif \u00e0 la gu\u00e9guerre Apache VS Nginx<\/a>)<\/p>\n<h3>Installation de Caddy<\/h3>\n<p>Pour installer Caddy, je me suis tout simplement fi\u00e9 \u00e0 <a href=\"https:\/\/caddyserver.com\/docs\/install#debian-ubuntu-raspbian\">la documentation officielle en ligne.<\/a> J&rsquo;ai choisis d&rsquo;installer la version <em>stable<\/em> :<\/p>\n<pre><code class=\"cmd\"><span class=\"bash\">sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https<\/span>\n<span class=\"bash\">curl -1sLf 'https:\/\/dl.cloudsmith.io\/public\/caddy\/stable\/cfg\/gpg\/gpg.155B6D79CA56EA34.key' | sudo apt-key add -<\/span>\n<span class=\"bash\">curl -1sLf 'https:\/\/dl.cloudsmith.io\/public\/caddy\/stable\/cfg\/setup\/config.deb.txt?distro=debian&amp;version=any-version' | sudo tee -a \/etc\/apt\/sources.list.d\/caddy-stable.list<\/span>\n<span class=\"bash\">sudo apt update<\/span>\n<span class=\"bash\">sudo apt install caddy<\/span><\/code><\/pre>\n<h3>Prise en main de Caddy<\/h3>\n<p>(Ce qui suit est inspir\u00e9 de <a href=\"https:\/\/caddyserver.com\/docs\/getting-started\">cette partie<\/a> de la documentation officielle)<\/p>\n<p>Une fois que vous avez install\u00e9 Caddy. Vous pouvez taper la commande <code class=\"cmd\"><span class=\"bash\">caddy<\/span><\/code>, vous verrez alors toutes les options qui s&rsquo;offrent \u00e0 vous :<\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"wp-block-code\"><code>Caddy is an extensible server platform.\n\nusage:\n  caddy &lt;command&gt; [&lt;args...&gt;]\n\ncommands:\n  adapt           Adapts a configuration to Caddy's native JSON\n  build-info      Prints information about this build\n  environ         Prints the environment\n  file-server     Spins up a production-ready file server\n  fmt             Formats a Caddyfile\n  hash-password   Hashes a password and writes base64\n  help            Shows help for a Caddy subcommand\n  list-modules    Lists the installed Caddy modules\n  reload          Changes the config of the running Caddy instance\n  reverse-proxy   A quick and production-ready reverse proxy\n  run             Starts the Caddy process and blocks indefinitely\n  start           Starts the Caddy process in the background and then returns\n  stop            Gracefully stops a started Caddy process\n  trust           Installs a CA certificate into local trust stores\n  untrust         Untrusts a locally-trusted CA certificate\n  validate        Tests whether a configuration file is valid\n  version         Prints the version\n\nUse 'caddy help &lt;command&gt;' for more information about a command.\n\nFull documentation is available at:\nhttps:\/\/caddyserver.com\/docs\/command-line<\/code><\/pre>\n<p>Notez la pr\u00e9sence du lien vers la documentation.<\/p>\n<h3>JSON ou Caddyfile ?<\/h3>\n<p>On peut configurer Caddy via des fichiers JSON de ce style :<\/p>\n<p><!-- \/wp:code --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"wp-block-code\"><code>{\n\t\"apps\": {\n\t\t\"http\": {\n\t\t\t\"servers\": {\n\t\t\t\t\"example\": {\n\t\t\t\t\t\"listen\": [\":2015\"],\n\t\t\t\t\t\"routes\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"handle\": [{\n\t\t\t\t\t\t\t\t\"handler\": \"static_response\",\n\t\t\t\t\t\t\t\t\"body\": \"Hello, world!\"\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n<\/code><\/pre>\n<p>Ou utiliser ce qu&rsquo;on appelle le Caddyfile. Un fichier (sans extension) dans lequel on peut pr\u00e9ciser quelques r\u00e9gles. C&rsquo;est ce fichier qui va g\u00e9n\u00e9rer le fichier de configuration JSON. Sa syntaxe est plus simple :<\/p>\n<p><code>:2015<br>\nrespond \"Hello, world!\"<\/code><\/p>\n<p>C&rsquo;est exactement la m\u00eame chose que le fichier JSON ci dessus. <a href=\"https:\/\/caddyserver.com\/docs\/getting-started#json-vs-caddyfile\">Evidemment les deux m\u00e9thodes ont leurs avantages et leurs inconv\u00e9nients.<\/a> Personnellement, je vais prendre la solution de facilit\u00e9 et utiliser Caddyfile.<\/p>\n<h3>Premier lancement avec Caddyfile<\/h3>\n<p>Par d\u00e9faut, le fichier Caddyfile est situ\u00e9 <code>\/etc\/caddy\/<\/code> . Vous pouvez \u00e9ventuellement rechercher le fichier avec <code>find \/ -name Caddyfile<\/code> si vous ne le trouvez pas. Maintenant l&rsquo;id\u00e9e, c&rsquo;est de lancer Caddy, en lui pr\u00e9cisant \u00ab\u00a0<em>utilise ce fichier de configuration<\/em>\u00ab\u00a0. Deux m\u00e9thodes sont possibles :<\/p>\n<ol>\n<li>Lancer Caddy depuis l&#8217;emplacement du fichier Caddyfile. Pour cela :<br>\n<code>cd \/etc\/caddy\/<br>\ncaddy run<\/code><\/li>\n<li>Lancer Caddy en pr\u00e9cisant l&#8217;emplacement du fichier Cadyfile. Pour cela :<br>\n<code class=\"cmd bash\">caddy run --config \/chemin\/vers\/Caddyfile<\/code><\/li>\n<\/ol>\n<p><em><strong>(par la suite, j&rsquo;utiliserai personnellement la premi\u00e9re methode)<\/strong><\/em><\/p>\n<p>La commande \u00ab\u00a0run\u00a0\u00bb va lancer le serveur, et afficher des logs sur le terminal. Une fois que c&rsquo;est fait, on peut aller faire notre premier essai pour voir si notre serveur r\u00e9pond ! Personnellement, j&rsquo;ai configur\u00e9 mon routeur pour que l&rsquo;adresse IP locale de ma machine ne bouge pas ; et j&rsquo;ai donc attribu\u00e9 manuellement une adresse IP locale. En cas de doute on peut taper <code class=\"cmd bash\">hostname -I<\/code> pour afficher notre adresse locale.<\/p>\n<p>Puis, dans la barre d&rsquo;adresse de votre navigateur pr\u00e9f\u00e9r\u00e9, il suffit de taper cet adresse IP suivi du port 80 comme ceci :<\/p>\n<p><code class=\"cmd bash\">192.168.1.2:80<br>\n<\/code>(\u00e0 adapter selon votre configuration) ; et vous devriez obtenir ceci !<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2549 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/articlenanuq-e1611316925240-1.jpeg\" alt=\"Capture d'\u00e9cran de la page par d\u00e9faut de Caddy avec le texte \u00abF\u00e9licitations\u00bb\" width=\"1082\" height=\"722\"><\/p>\n<p>On est content ! On va couper le serveur Caddy pour le moment, et on le relancera quand on aura tout pr\u00e9par\u00e9 !<\/p>\n<p><code>caddy stop<\/code><\/p>\n<h3>Acc\u00e9der \u00e0 notre serveur depuis l&rsquo;ext\u00e9rieur du r\u00e9seau : les enregistrements DNS.<\/h3>\n<p>Pour le moment, on se connecte \u00e0 notre serveur via notre r\u00e9seau local . L&rsquo;id\u00e9e \u00e9tant de pouvoir acc\u00e9der depuis n&rsquo;importe quel ordinateur dans le monde \u00e0 notre serveur. Pour cel\u00e0, il faut aller configurer les enregistrements DNS.<\/p>\n<p>C&rsquo;est maintenant que le nom de domaine que l&rsquo;on a achet\u00e9 pr\u00e9cedemment va nous servir. L&rsquo;id\u00e9e c&rsquo;est de li\u00e9 l&rsquo;adresse <em>monsupersite.truc<\/em> \u00e0 votre serveur. Par analogie avec un annuaire t\u00e9l\u00e9phonique, ca serait de lier le nom de la personne <em><strong>Marcelle Michu<\/strong><\/em> \u00e0 un num\u00e9ro <em><strong>01 47 20 00 01<\/strong><\/em> (par exemple : pour la blague, c&rsquo;est le num\u00e9ro de <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Jean_Mineur\">Jean Mineur<\/a> \ud83d\ude00 ). Ainsi \u00e0 chaque fois que je souhaite appeler <em>Marcelle Michu<\/em>, ca me redirige automatiquement surs on num\u00e9ro.<\/p>\n<p>Il faut donc aller modifier les enregistrements DNS de votre <em>registrar. <\/em>Ca d\u00e9pend evidemment de chaque <em>registrar<\/em>, il faut aller fouiller. G\u00e9n\u00e9ralement apr\u00e9s une petite recherche avec les bons mots clef, vous trouverez comment faire \u00e7a. G\u00e9n\u00e9ralement, ces enregistrements sont g\u00e9r\u00e9s par un fichier texte. Dans tout \u00e7\u00e0 vous devriez avoir une ligne ou deux lignes qui ressemble \u00e0 :<\/p>\n<p><code class=\"cmd bash\">@ 10800 IN A 111.222.33.44<br>\n<\/code><\/p>\n<p><code class=\"hljs lang-bash\">@ 10800 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111<\/code><\/p>\n<p>La premiere ligne correspond \u00e0 IPv4 et la deuxieme \u00e0 IPv6 (ici, ce sont des adresses fictives). Peut \u00eatre que vous n&rsquo;aurez que la premiere, et que le premier nombre ne soit pas 10800 mais une autre valeur. Tout ce qu&rsquo;il faut faire c&rsquo;est supprimer ces lignes et ajouter \u00e0 la place les IP publiques (v4 et\/ou v6) de r\u00e9seau.<\/p>\n<p>Bref, une fois qu&rsquo;on a nos adresses, on supprime les lignes que je viens de vous pr\u00e9senter, et \u00e0 la place on pr\u00e9cises nos valeurs :<\/p>\n<p>Pour l&rsquo;IPv4<\/p>\n<pre><code class=\"hljs lang-bash\">@ 10800 IN A 111.222.33.44\n* 10800 IN A 111.222.33.44 \n<\/code><\/pre>\n<p>Pour l&rsquo;IPv6 le cas \u00e9ch\u00e9ant :<\/p>\n<p><code class=\"hljs lang-bash\">@ 10800 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111<\/code><\/p>\n<p><code class=\"hljs lang-bash\">* 10800 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111<\/code><\/p>\n<p>Si vous ignorez votre IPv4 , dans un terminal d&rsquo;une machine sur votre r\u00e9seau il suffit de taper <code>curl -4 icanhazip.com<\/code><br>\nSiv ous ignorez votre IPv6,\u00a0 dans <strong>le terminal de votre serveur<\/strong>, <code>curl -6 icanhazip.com<\/code> (en effet, l&rsquo;adresse IPv6 est diff\u00e9rente pour chaque appareil)<\/p>\n<p>N&rsquo;oubliez pas d&rsquo;enregistrer \/ d&rsquo;appliquer cette modification. Selon le <em>registrar<\/em> ca peut prendre plus ou moins de temps. De instantan\u00e9, \u00e0 48 heures.<\/p>\n<p>&nbsp;<\/p>\n<h3>Acc\u00e9der \u00e0 notre serveur depuis l&rsquo;ext\u00e9rieur du r\u00e9seau : la redirection des ports.<\/h3>\n<p><a href=\"https:\/\/blog.nanuq.me\/2020\/05\/09\/comme-sur-un-petit-nuage\/\">J&rsquo;en avais d\u00e9ja parl\u00e9 dans cet article ci.<\/a> Il faut maintenant faire une direction de port. Par rapport \u00e0 ce qu&rsquo;on vient de faire pr\u00e9c\u00e9demment, on a \u00ab\u00a0dit au r\u00e9seau\u00a0\u00bb que mon serveur habitait \u00e0 tel endroit. Mais comme vous le voyez, il y a plusieurs machines sur mon r\u00e9seau local. Il faut donc dire \u00e0 qui on veut parler.<\/p>\n<figure id=\"attachment_964\" aria-describedby=\"caption-attachment-964\" style=\"width: 1041px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2020\/05\/schema3-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-964 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2020\/05\/schema3-1.png\" alt=\"\" width=\"1041\" height=\"569\"><\/a><figcaption id=\"caption-attachment-964\" class=\"wp-caption-text\">Extrait de mon article relatif au Lime2. Imaginez qu&rsquo;il n&rsquo;y a pas \u00e9crit \u00ab\u00a0Lime2\u00a0\u00bb mais \u00ab\u00a0Helios64\u00a0\u00bb et c&rsquo;est tout bon.<\/figcaption><\/figure>\n<p>Malheureusement, chauqe modem\/routeur \u00e9tant diff\u00e9rent, c&rsquo;est toujours compliqu\u00e9 \u00e0 expliquer \u00e9tape par \u00e9tape.\u00a0 Sachez qu&rsquo;il faut rediriger toutes les connexion en HTTP (port 80) et HTTPS (port 443) vers votre machine. Chez moi ca ressemble \u00e0 \u00e7a :<\/p>\n<p><a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/redirection-port-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2609 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/redirection-port-1.jpg\" alt=\"\" width=\"745\" height=\"181\"><\/a><\/p>\n<ul>\n<li><strong>Nom du service :<\/strong> on peut mettre ce qu&rsquo;on veut. Je vous conseil \u00e9videmment de mettre quelquechose d&rsquo;explicite plutot que \u00ab\u00a0Jeanine\u00a0\u00bb ou \u00ab\u00a0TartempionRoujax_3000\u00a0\u00bb.<\/li>\n<li><strong>Adresse IP source : <\/strong>Ici, on ne met rien. Ca veut dire quoi ? Que votre serveur est accessible depuis toutes les machines du monde. Si on pr\u00e9cisait une IP ou une plage d&rsquo;IP ; votre machine ne serait accessible que depuis ces points.<\/li>\n<li><strong>Plage de port : <\/strong>Ici, c&rsquo;est le port entrant. C&rsquo;est \u00e0 dire que lorsqu&rsquo;on se connecte sur ce port l\u00e0 , on va \u00eatre redirig\u00e9 selon les r\u00e9gles que l&rsquo;on sp\u00e9cifie juste apr\u00e9s.<\/li>\n<li><strong>Adresse IP locale : <\/strong>Ici, je pr\u00e9cise l&rsquo;adresse IP locale de la machine sur laquelle je souhaite me connecter.<\/li>\n<li><strong>Port local : <\/strong>Sur mon modem routeur, je peux diff\u00e9rencier le port entrant, du port local. C&rsquo;est \u00e0 dire que je peux rediriger vers un autre port. On en reparlera quand param\u00e9trera SSH.<\/li>\n<li><strong>Protocole :<\/strong> TCP (je rentre pas plus loin dans les d\u00e9tails (parceque j&rsquo;y connais rien \u00e0 ce sujet) je sais juste qu&rsquo;il faut mettre TCP.<\/li>\n<\/ul>\n<p>On valide, on applique, on red\u00e9marre le boitier si besoin.<\/p>\n<p>&nbsp;<\/p>\n<h3>Pr\u00e9parer une landing page.<\/h3>\n<p>Maintenant, on va reprendre les indications que nous donnait Caddy :<\/p>\n<p><a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/articlenanuq-e1611316925240-1.jpeg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2549 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/articlenanuq-e1611316925240-1.jpeg\" alt=\"\" width=\"1082\" height=\"722\"><\/a><\/p>\n<p>La premi\u00e9re \u00e9tape, c&rsquo;est fait ! On a redirig\u00e9 notre domaine vers notre serveur.<br>\nMaintenant \u00e9tape 2, on va pr\u00e9parer une page d&rsquo;accueil pour notre serveur web. On appelle \u00e7a \u00ab\u00a0landing page\u00a0\u00bb.<\/p>\n<p>Dans le terminal connect\u00e9 \u00e0 notre serveur. On va cr\u00e9\u00e9 un r\u00e9pertoire pour h\u00e9berger cette page.<\/p>\n<p><code class=\"hljs lang-bash\">mkdir -p \/var\/www\/html<\/code><\/p>\n<p>Puis on va cr\u00e9er le fichier <code class=\"hljs lang-bash\">index.html<\/code> :<\/p>\n<p><code class=\"hljs lang-bash\">nano \/var\/www\/html\/index.html<\/code><\/p>\n<p>On \u00e9crire un petit code HTML tout simple. On pourra l&rsquo;am\u00e9liorer plus tard :<\/p>\n<table class=\"highlight tab-size js-file-line-container\">\n<tbody>\n<tr>\n<td id=\"file-index-html-LC3\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-kos\">&lt;!doctype html&gt;<br>\n&lt;html&gt;<br>\n&lt;head&gt;<br>\n&lt;title&gt;Mon Super Site&lt;\/title&gt;<br>\n&lt;\/head&gt;<br>\n&lt;body&gt;<br>\n&lt;p&gt;Youpi ! Ca marche !&lt;\/p&gt;<br>\n&lt;\/body&gt;<br>\n&lt;\/html&gt;<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>On enregistre \u00e7a et on continue !<\/p>\n<h3>Editer le fichier Caddyfile.<\/h3>\n<p>C&rsquo;est l&rsquo;\u00e9tape 3 (cf le screenshot ci dessus), il faut \u00e9diter notre fichier Caddyfile :<\/p>\n<p><code class=\"hljs lang-bash\">nano \/etc\/caddy\/Caddyfile<\/code><\/p>\n<pre class=\"wp-block-code\"><code>  GNU nano 4.8                      \/etc\/caddy\/Caddyfile                               \n# The Caddyfile is an easy way to configure your Caddy web server.\n#\n# Unless the file starts with a global options block, the first\n# uncommented line is always the address of your site.\n#\n# To use your own domain name (with automatic HTTPS), first make\n# sure your domain's A\/AAAA DNS records are properly pointed to\n# this machine's public IP, then replace the line below with your\n# domain name.\n:80\n\n# Set this path to your site's directory.\nroot * \/usr\/share\/caddy\n\n# Enable the static file server.\nfile_server\n\n# Another common task is to set up a reverse proxy:\n# reverse_proxy localhost:8080\n\n# Or serve a PHP site through php-fpm:\n# php_fastcgi localhost:9000\n\n# Refer to the Caddy docs for more information:\n# https:\/\/caddyserver.com\/docs\/caddyfile<\/code><\/pre>\n<p>Voil\u00e0 le fichier que vous obtenez par d\u00e9faut.<br>\nIl faut modifier <code>:80<\/code> par le nom de domaine qu&rsquo;on a achet\u00e9 pr\u00e9c\u00e9demment.<br>\nPuis modifier <code>\/usr\/share\/caddy<\/code> par <code>\/var\/www\/html<\/code> . Ca doit donner qqch comme \u00e7a :<\/p>\n<p><code>monsupersite.truc<\/code><code><br>\n(...)<br>\nroot * \/var\/www\/html<\/code><\/p>\n<p>On enregistre le fichier.<\/p>\n<h3>Relance le serveur : alors, \u00e7a marche ?<\/h3>\n<p>Puis, on va redemarrer notre serveur Caddy <strong>(je rappel que j&rsquo;utilise la m\u00e9thode o\u00f9 l&rsquo;on se place dans le r\u00e9pertoire contenant Caddyfile.)<br>\n<\/strong><code>caddy start<\/code><\/p>\n<p>Cette fois ci, j&rsquo;utilise la commande \u00ab\u00a0start\u00a0\u00bb plutot que \u00ab\u00a0run\u00a0\u00bb car je veux que Caddy s&rsquo;execute en background pour garder la main sur le terminal.<\/p>\n<p>Enfin, on tente de se connecter via un navigateur en tapant notre nom de domaine dans la barre d&rsquo;adresse :<\/p>\n<figure id=\"attachment_2622\" aria-describedby=\"caption-attachment-2622\" style=\"width: 439px\" class=\"wp-caption aligncenter\"><a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/sitewebexemple-1-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2622 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/sitewebexemple-1-1.jpg\" alt=\"\" width=\"439\" height=\"181\"><\/a><figcaption id=\"caption-attachment-2622\" class=\"wp-caption-text\">Effectivement : ca marche !<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Et si tout se passe bien, vous remarquerez que votre site est automatiquement g\u00e9r\u00e9 en HTTPS par Caddy. Vous n&rsquo;avez rien configur\u00e9 de plus !<\/p>\n<p>&nbsp;<\/p>\n<h1>Conclusion<\/h1>\n<p>On a notre serveur en ligne ! Youpi ! Bon. Actuellement, ca fait pas grand chose. Mais la prochaine fois, on l&rsquo;am\u00e9liorera ! On y ajoutera notre premier service , on s&rsquo;int\u00e9ressera au reverse proxy, et au fail2ban&#8230; Comme dirait un grand philosophe fran\u00e7ais :<\/p>\n<blockquote><p>\u00ab\u00a0C&rsquo;est que le d\u00e9but : d&rsquo;accord, d&rsquo;accord\u00a0\u00bb.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>Merci d&rsquo;avoir lu cet article, j&rsquo;esp\u00e9re qu&rsquo;il vous a plu que vous avez appris des choses. N&rsquo;h\u00e9sitez pas \u00e0 me faire vos retours ! Si vous rencontrez des difficult\u00e9s techniques, je vous sugg\u00e9re de vous orientez vers des forums sp\u00e9cialis\u00e9es ; vous y obtiendrai une meilleure aide que la mienne.<\/p>\n<p>&nbsp;<\/p>\n<p><!-- \/wp:code --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\uddd3\ufe0f Note : Cet article est une archive import\u00e9e de mon ancien blog. Certaines informations peuvent ne plus \u00eatre \u00e0 jour. Ou comment j&rsquo;ai commenc\u00e9&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2631,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,4],"tags":[18,29,62,107,126],"_links":{"self":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts\/2363"}],"collection":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2363"}],"version-history":[{"count":0,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts\/2363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}