Node.js

Ce blog post regroupera les quelques infos de bases à propos de Nodejs et son écosystème. Les instructions sont valables pour des environnements compatibles Linux (dont MacOS et WSL pour Windows 10) Installation de Node.js installer NodeJS via NVM of course (suivre la procédure d’install de NVM)) qui est en résumé: récupérer et installer nvm:

WSL: un shell Bash sous Windows 10

Lorsqu’on travaille sous Windows, il nous faut parfois la possibilité d’accéder à un environnement Linux.

Historiquement on utilisait (et on utilises toujours pour des raisons de perf) des ordinateur en dual boot (Bootcamp pour OSX) ou des machines virtuelles et depuis peu des conteneur Docker.

Linux est parfois encore « nécessaire » pour des raisons de compatibilité avec l’outillage Javascript (Node, React, Webpack etc.), ou automatiser des taches avec des scripts shell par exemple.

Pour cela nous allons utiliser Linux Debian fournie par Microsoft dans Windows 10 64 bit dénommée WSL pour Windows Subsystem for Linux (MSDN, aperçu global de l’archi et interop Win/Linux).

Pour les développeurs qui utilisent VSCode, ce Linux est également disponible dans le terminal intégré (CTRL + ALT + O).

Installer WSL Debian

installer Linux (WSL) pour Windows 10 depuis le Microsoft Store (build > 1709) et choisir sa distribution parmi celles-ci (Debian forever 😜):

pour les anciennes build de Windows 10 précédent la Fall Creators Update, suivre le tuto de Korben ou la doc Ubuntu-fr et plus d’infos ici)

Git Server sur un NAS Synology

En tant que développeur ou devops il est primordial de garder une sauvegarde de ses fichiers (sources ou conf) et si possible de garder un historique des modifications (versionning) pour pouvoir s’y référer, c’est là qu’intervient git qui est l’un des systèmes de gestion de version les plus utilisés dans le monde.
Git est le système de gestion que l’on peut installer soi même sur un serveur mais la concurrence est rude chez les SAAS Git pour proposer des hébergement et services associés à Git (Github, Bitbucket, Azure Devops).

Préparation de l’installation

  1. créer un nouvel utilisateur git sur le DSM, ce qui permettra les push coté clients via SSH
  2.  ajouter les clés SSH publiques des clients (ceux qui vont se connecter aux répos) dans ~/.ssh/authorized_keys de ce nouvel utilisateur, pour permettre l’authentification lors des commandes git
  3. créer un dossier où seront stockés les repos par ex: /volume1/git_repos
  4. puis appliquer les permissions adéquats:
    chown git:git-users /volume1/git_repos && chmod g+s /volume1/git_repos

Installation de l’application Git Synology

UFW un simple Firewall sous Linux

UFW Un firewall (pare-feu en 🇫🇷) permet de bloquer les tentatives d’accès à des combinaisons de ports/protocoles que nous définissons. Un firewall permet par exemple, de n’autoriser les connexions ssh que depuis certaines adresses IP. UFW a été conçu pour simplifier la mise en place d’un Firewall iptables sous Linux, qui est relativement complexe a configurer…

Linux Networking

Linux dispose depuis longtemps d’outils puissant en ligne de commande pour diagnostiquer les problèmes réseau ou récupérer des informations sur les éléments présent sur le réseau, comme nmap, whois, dig etc.

netstat

Netstat (apt install net-tools)est une commande shell qui affiche les informations sur les connexions réseau locales, les tables de routage et un certain nombre de statistiques:

sudo netstat -tupln

nmap

Port scan

stealthy (furtif) ou SYN scan (known as a stealthy port scan because it does not finish the full TCP handshake) est plus rapide car ne renvois pas de réponse, mais le SYN/ACK de retour de la cible est parfois filtrée par les firewalls… pour scanner les 65.535 ports (juste 1000 par défaut) utiliser -p:

nmap -sS -p- pi

Service scan

Nginx

Logging Dans une architecture disposant d’un reverse proxy devant le serveur web (tout 2 étant des Nginx), il est possible de logger des informations différentes sur chaque Nginx. Il est possible d’exclure certaines requêtes des logs Nginx avec des directives telles que (dans une section location) : Erreur WordPress WordPress en erreur à cause de