Installation Fail2rest

De EjnTricks
Révision de 17 mars 2018 à 20:19 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Fail2rest est une application écrite en Go qui permet d'exposer des fonctions de Fail2ban à travers des services REST. Elle sera l'intermédiaire entre l'application web et Fail2ban.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Dependencies.gif Pré requis

L'application devant être compilée sur la machine, il est nécessaire d'installer le language Go. Dans le cadre d'une installation sur une machine Ubuntu, il suffit d'installer le paquet golang, comme décrit dans la simple procédure de Ubuntu : https://wiki.ubuntu.com/Go

#sudo apt-get install golang

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants vont être installés :
  golang-1.8 golang-1.8-doc golang-1.8-go golang-1.8-race-detector-runtime golang-1.8-src golang-doc golang-go golang-race-detector-runtime golang-src
Paquets suggérés :
  bzr mercurial
Les NOUVEAUX paquets suivants seront installés :
  golang golang-1.8 golang-1.8-doc golang-1.8-go golang-1.8-race-detector-runtime golang-1.8-src golang-doc golang-go golang-race-detector-runtime golang-src
0 mis à jour, 10 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 33,3 Mo dans les archives.


Robot-icon.png Compilation

La compilation peut s'effectuer avec n'importe quel compte d'accès. Dans le cadre de cet article, elle sera effectuée dans un répertoire "temporaire" fail2rest dans le répertoire home du compte. Il est nécessaire de le créer.

#mkdir ~/fail2rest

Une fois placé dans ce répertoire, il suffit de lancer la compilation à l'aide des outils de Go qui va télécharger les sources depuis GitHub.

#sudo go get -v github.com/Sean-Der/fail2rest
created GOPATH=~/go; see 'go help gopath'
github.com/Sean-Der/fail2go (download)
github.com/kisielk/og-rek (download)
github.com/mattn/go-sqlite3 (download)
github.com/Sean-Der/goWHOIS (download)
github.com/gorilla/mux (download)
github.com/kisielk/og-rek
github.com/mattn/go-sqlite3
github.com/Sean-Der/goWHOIS
github.com/gorilla/mux
github.com/Sean-Der/fail2go
github.com/Sean-Der/fail2rest

Une fois terminé, le paquet est créé sous ~/go/bin.

#ll ~/go/bin/
total 12564
drwxrwxr-x 2 user user     4096 mars  12 21:34 ./
drwxrwxr-x 5 user user     4096 mars  12 21:34 ../
-rwxrwxr-x 1 user user 12855584 mars  12 21:34 fail2rest*


User-icon.png Compte de service

Dans le cadre de cette installation, un compte de service failban est mis en place. Dans un premier temps, celui-ci ne sera utilisé que pour sécuriser les accès à l'exécutable. Mais le compte root sera utilisé pour accéder à fail2ban, car il est nécessaire d'accéder au "fichier" socket, qui par défaut n'est accessible que par root.

Le compte créé doit être le plus restrictif possible. Ainsi aucun répertoire home n'est créé, et l'accès au bash est interdit.

#sudo adduser --system --no-create-home --group failban
Ajout de l'utilisateur système « failban » (UID 127) ...
Ajout du nouveau groupe « failban » (GID 136) ...
Ajout du nouvel utilisateur « failban » (UID 127) avec pour groupe d'appartenance « failban » ...
Le répertoire personnel « /home/failban » n'a pas été créé.


Folder-icon.png Initialisation

L'application compilée est déplacée dans son propre répertoire, /var/opt/fail2rest/1.0 dans le cadre de cet article. Il est nécessaire de le créer.

#sudo mkdir -p /var/opt/fail2rest/1.0
#sudo mv ~/go/bin/fail2rest /var/opt/fail2rest/1.0/


Icon File Owner.png Propriétaire fichiers

Il est préférable de donner la propriété au nouveau compte, soit failban.

#sudo chown -R failban:failban /var/opt/fail2rest


Icon ACL.png Sécurisation

Après avoir modifier le propriétaire des fichiers, il est conseillé de positionner des droits restrictifs afin que seul le propriétaire puisse accéder à ceux-ci.

#sudo chmod 0700 /var/opt/fail2rest/1.0/fail2rest
#sudo find /var/opt/fail2rest -type d -exec chmod 0700 {} \;


Vues-icon.png Référencement version

Afin de faciliter les montées de versions, le lien /var/opt/fail2rest/fail2rest est mis en place pour référencer la version active.

#sudo ln -s /var/opt/fail2rest/1.0/fail2rest /var/opt/fail2rest/fail2rest
#sudo chown -h failban:failban /var/opt/fail2rest/fail2rest


Icon-Configuration-Settings.png Configuration

Afin de s'exécuter, un fichier de configuration est nécessaire, dont l'emplacement par défaut est /etc/fail2rest.json, afin de spécifier les éléments suivants.

  • le port d'écoute des services REST;
  • L'emplacement du fichier socket de Fail2ban.

Le contenu original du fichier est le suivant.

{
  "Addr": "127.0.0.1:5000",
  "Fail2banSocket": "/var/run/fail2ban/fail2ban.sock"
}

La configuration par défaut est suffisante dans le cadre de cette installation, mais le fichier sera placé à l'emplacement /var/opt/fail2rest/conf/fail2rest.json. Le répertoire de configuration doit être créé.

#sudo mkdir -p /var/opt/fail2rest/conf
#sudo chown failban:failban /var/opt/fail2rest/conf
#sudo chmod 700 /var/opt/fail2rest/conf

Une fois le fichier mis en place, les permissions sont modifiées.

#sudo chown failban:failban /var/opt/fail2rest/conf/fail2rest.json
#sudo chmod 600 /var/opt/fail2rest/conf/fail2rest.json


Link= Test exécution

Un test de démarrage de l'application est recommandé, en spécifiant l'emplacement spécifique du fichier de configuration.

#sudo /var/opt/fail2rest/fail2rest --config /var/opt/fail2rest/conf/fail2rest.json

La commande ne doit pas rendre la main. Il est alors possible d'interroger le service ping dont la réponse doit être pong.

#wget -qO- -- "localhost:5000/global/ping"
"pong"


Start-icon.png Installation service

Viewer icon.png Voir aussi

Documentation officielle: http://siobud.com/blog/installing-fail2web