Installation Fail2rest : Différence entre versions
m |
(Aucune différence)
|
Version actuelle en date du 17 mars 2018 à 20:19
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
.
Sommaire
Votre avis
Nobody voted on this yet
|
|
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.
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*
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éé.
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/
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
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 {} \;
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
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
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"
Installation service
Voir aussi
Documentation officielle: http://siobud.com/blog/installing-fail2web