Archives de catégorie : Serveurs

Tout les articles en rapports aux serveurs tournant sous Linux.

Monitorer un serveur Linux avec eZ Server Monitor

Aperçu de l'interface d'eZ Server Monitor Web

Aperçu de l’interface d’eZ Server Monitor Web

Dans cet article on va voir comment monitorer un serveur Linux avec eZ Server Monitor.
Aujourd’hui je tenais absolument à vous parler d’un merveilleux script PHP qui m’a bien été utile depuis mes débuts en administration de serveur Linux. Il s’agit de eZ Serveur Monitor Web, qui n’est ni plus ni moins qu’un script servant à visualiser, via un interface web, l’état globale de votre serveur.

Ses avantages sont multiples. Tout d’abord c’est un script aisé à mettre en place et qui ne nécessite que peu de pré-requis soit :
– Un OS Linux
– PHP 5,3 ou mieux
Un serveur web ( Apache2, Nginx, Lighttpd ou autre. )

En outre il propose une interface graphique vraiment réussi et agréable à l’oeil tout en étant très complet, comme vous pouvez le voir sur ce screen :

Interface d'eZ Serveur Monitor.

Interface d’eZ Serveur Monitor.

Il est donc capable d’afficher l’état des disques durs, l’usage de la ram et du swap, il affiche également la bande passante utilisé ainsi que les ressources CPU utilisé dans le dernier quart d’heure.
Il vérifie aussi les services installés tels que l’état des serveurs web, mail, ftp, ssh et sql en se basant sur leurs ports. Il est possible de modifier les ports dans un fichier de configuration au cas ou l’ont utilisent pas les ports par défauts.
Petit détail sympa, il affiche également la température du processeur.

Et pour résumé, j’utilise eZ Server Monitor depuis 1 an, d’abord sur un Raspberry Pi 2 puis sur mon serveur Pentium D.

Et maintenant, si cet article vous a plu, on va procéder à son installation. Comme on l’a vu plus haut, il faut un serveur web ainsi que PHP. Si vous l’avez déjà sautez cette étape :

sudo apt-get install -y apache2 php5

Nous avons donc un serveur web, plaçons nous donc dans le dossier web, par défaut /var/www :

cd /var/www

Récupérez ensuite l’archive la dernière version sur le site officiel sur votre serveur, puis extrayez le :

wget http://ezservermonitor.com/esm-web/downloads/versionX.X && unzip eZServerMonitor-X.X.zip

Pour plus de confort on va de suite le renommer et supprimer l’archive :

mv eZServerMonitor-X.X moniteur && rm eZServerMonitor-X.X.zip

On rend ensuite Apache2 ( dans le cas d’Apache ) propriétaire du dossier :

chown www-data:www-data -Rf moniteur

Vous pouvez dorénavant accéder à eZ Server Monitor à l’adresse du dossier moniteur, si vous avez appliqué le tuto à la lettre sur http://0.0.0.0/moniteur ( remplacez bien évidemment 0.0.0.0 par l’ip de votre serveur ou par votre nom de domaine ).

Et voilà, si par hasard vous n’utilisez pas les ports par défaut sur vos services, vous pouvez les modifier dans /var/www/moniteur/conf/sm.config.json .

Le minimum vital pour sécuriser son serveur Linux

Un verrou, synonyme de confidentialité

Un verrou, synonyme de confidentialité.

Salut à toi chez internaute,

Aujourd’hui je sais ce qui ta poussé à lire cet article, cette profonde angoisse de voir l’intimité de son serveur Linux violé. Administrant mon serveur Debian depuis un an, je ne suis certes pas encore un professionnel, mais j’ai tout de même acquis quelques réflexes afin de protéger ma parcelle d’Internet.

Tout d’abord, il faut ‘cacher’ nos propres accès à notre serveur, je parle bien évidemment des protocoles FTP, SSH voir VNC ou RDP si vous les utilisez. Les ports d’accès de ces protocoles sont évidemment bien connus de tous ( le port 22 pour SSH ou le 21 pour FTP par exemple ). Un des risques auxquels sera confronté votre serveur sera les scans de plage d’ip lancés automatiquement par des scripts malveillants. Une fois votre serveur détecté, il risque de subir multiples tentatives de bruteforce voir d’exploits envers votre serveur FTP qui n’aurais pas été à jour.
Un moyen très simple existe afin de diminuer drastiquement le risque de hack par cette manière, c’est le fait de changer les ports par defauts de vos accès SSH & FTP par des ports de valeurs élevés. Ainsi une tentative de connexion par SSH sur le port 22 de votre serveur sera automatiquement refusé. Le port que vous aurez choisi agit en quelques sortes comme un 2ème mot de passe.
Toujours en rapport aux ports reseaux, un script Iptables pourra vous permettre de bloquer tout les ports que vous n’utilisez pas, réduisant ainsi la surface d’attaque potentielle de votre serveur.

Si vous hébergez un serveur Linux il est fort probable que vous y disposiez d’un serveur web, contenant peut-être des pages d’identifications à divers services. Il est donc indispensable d’empêcher quiconque de bruteforcer ces fameuses pages d’identifications, potentiellement sensibles.
Pour cela, le soutien de Fail2Ban vous sera tout simplement indispensable.
En effet, une fois correctement configuré ( pour cela je vous laisse vous remettre à la doc d’Ubuntu par exemple ) il surveillera une variété de services allant du serveur SSH aux pages de connexions d’Apache afin de détecter tout tentative d’intrusion. En effet après un certains nombre d’échecs de connexions, il bannira l’ip en question pour une période que vous aurez tout le soin de définir.
Ce qui coupera net un éventuel bruteforce.

Une fois ces quelques mesures mise en place, votre serveur sera ‘blindé’ contre les bruteforces en tout genre. Mais il existe des manières bien plus subtiles de prendre le contrôle d’une machine connecté à Internet.
Vous aurez donc intérêt à être bien au courant de ce qu’il se passe sur votre serveur. Pour cela, un programme nommé Logwatch va vous aider à garder un oeil sur vos fichiers de logs.
Tout les jours, Logwatch vous enverra un résumé de ce qu’il s’est passé sur votre serveur. Cela inclut tout les connexions, réussis ou infructueuses, les potentielles erreurs de certains services, l’état de votre stockage, .. Enfin bref, il sera vos yeux et vos oreilles sur votre serveur et vous semblera très vite indispensable.

Malgrès toutes ces mesures, il se pourrait malgrès tout qu’un hacker particulièrement doué parviennent à s’infiltrer sur votre serveur. Si c’est le cas, il tentera sûrement d’installer une backdoor afin de pouvoir revenir plus tard à sa guise. Pour cela, je ne peux que vous conseiller d’installer Rkhunter. Rkhunter est un programme qui va comparer le hash des programmes installés afin de vérifier leurs intégrité. Il sera en mesure de détecter d’éventuels exploits, rootkit ou autres backdoor.

Une fois toute ces mesures prises, ne vous croyez surtout pas en sécurité ! Vous devez faire particulièrement attention aux permissions de vos fichiers ainsi que maintenir votre infrastructure à jour, sous peine de vous retrouver vulnérables à de nouvelles failles récemment découvertes.
Aussi, s’il vous arrive d’héberger des CMS, veillez à toujours modifier l’url des panels d’administrations de sorte que, si votre base de données s’avérer avoir été dumpé à cause d’une requête SQL mal sécurisé, le pirate ne parviendrait pas à trouver le panel pour se connecter.

Aussi, si vous faites régulièrement des backups de votre serveur ( ce que je vous conseille très vivement ), tachez de les exporter rapidement hors de votre serveur. Les backups contiennent en général des informations sensibles ( fichiers de configurations de CMS contenant le mots de passe d’une DDB par exemple ).

Voilà voilà, cet article n’avait pas la prétention de vous apprendre à sécurisé un serveur à la perfection, je n’ai pas parler des permissions par exemple, mais juste de partager avec vous mon expérience personnelle.
Et surtout n’oubliez pas, un hack parfait c’est celui que personne n’a remarqué.

Installer son propre serveur Git en VM ( avec interface Web )

Logo de Git ( à gauche ) et logo de Gogs ( à droite ).

Salut à tous, aujourd’hui vous avez le droit à un article/tutoriel sur la mise en place d’un serveur Git avec une interface web ( Gogs en l’occurence ).
Dans l’article, l’installation se fera dans une VM ( Virtual Machine ) dédié a ce tuto. Je ferais l’installation sous Debian Jessie.

L’installation de Gogs peut se faire via plusieurs méthode ( voyez ici ). Pour ce tuto, on va installer Gogs via les fichiers sources. Pour le SGBD ( gestionnaire de bases de données ) on a le choix entre MySQL ou PostegreSQL. Par question d’habitude j’utiliserais MySQL. Gogs est programmé en Go, on va donc installer ce dernier afin de faire fonctionner Gogs.

Donc, commençons. Connectez vous en SSH au serveur cible ( à moins que vous n’installiez le serveur Git sur votre propre machine ). Lancez ensuite l’installation du paquet git ainsi que le serveur SQL :

sudo apt-get install git mysql-server

Lors de l’installation de Mysql-Server il vous sera demander un mot de passe pour le compte root de MySQL, entrez-en un et validez ( mémorisez le ! ).
Une fois Mysql-Server et Git installés, on va créer un compte utilisateur pour Git, entrez :

sudo adduser --disabled-login --gecos 'Gogs' git.

Connectez-vous ensuite sous le compte git :

sudo su - git

. Allez dans votre home ( « cd ~  » ou « cd /home/git » ), créez le dossier local :

mkdir local

Téléchargeons ensuite Go, récupérez le lien de téléchargement ici et copiez le.
On va maintenant lancer le téléchargement en commande :

wget URL_DU_TELECHARGEMENT_DE_GO

Une fois le téléchargement terminé, on va extraire l’archive :

tar -C /home/git/local NOM_DU_FICHIER.tar.gz

Dans le dossier ‘local’ vous avez maintenant le programme Go installé. Avant d’aller plus loin, on va personnaliser notre fichier .bashrc pour y ajouter les chemins de notre installation toute fraîche. Entrez les commandes suivantes :

echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc

Voilà, maintenant on va installer Gogs. Lancez :

go get -u github.com/gogits/gogs

Gogs est maintenant téléchargé. Pour l’installer, lancez :

cd $GOPATH/src/github.com/gogits/gogs
go build

Et voilà, à partir de maintenant votre serveur Git avec interface web devrait être opérationnel, pour lancer l’interface web entrez :

cd $GOPATH/src/github.com/gogits/gogs
./gogs web

Si tout se passe bien, votre serveur devrait être accessible via son ip locale sur le port 3000. Dans le cas d’une installation sur votre propre machine, il devrait être accessible à l’adresse : http://127.0.0.1:3000 .
Une fois sur la page, vous serez face au formulaire d’installation, avant de commencer il faut au préalable créer la base de donnée.
Pour créer la base de donnée, on va commencer par ouvrir la console MySQL. Entrez :

mysql -u root -pVOTREMOTDEPASSE ( Attention, le -p doit être collé au mot de passe ! )

Une fois dans la console MySQL, créons la base de donnée avec la commande :

CREATE DATABASE gogs CHARACTER SET 'utf8';

Vous devriez avoir comme message « Query OK » qui signifie que tout s’est bien passé. Vous pouvez quitter Mysql avec CTRL+C.

Vous pouvez maintenant revenir à la page d’installation de Gogs pour finir la configuration.

Une fois Gogs installé, l’interface web est assez intuitive et je ne pense pas avoir besoin de la détaillé.
Vous pouvez dès maintenant commencer à héberger vos morceaux de codes sur votre nouveau serveur Git privé !

L’intérêt de l’auto-hébergement


Yo ! Plop ! Ou encore Salut !

Je me suis motivé à écrire un article cette fois sur : l’auto-hébergement ! Selon mon premier article de mon site web ( www.wargof.net ) cela fait à peu près 1 an que je tiens ce serveur et ce site.

Pour en revenir à mes débuts, j’avais un Raspberry Pi 2 Modèle B+ sous la main, sans projets particuliers. Je savais que le RPI était adapté pour servir de serveur entre autre. Je me suis donc lancer .. dans l’administration d’un serveur sur le RPI.

Étant vite limité par la bête ( et surtout par l’architecture ARM à vrai dire ) je me suis mis en tête de monter un serveur avec des pièces de récupération sous architecture AMD64 ce coup-ci.

Côté connexion, malheureusement je n’ai pas la fibre mais je suis chez Free, qui permet d’auto-héberger un serveur sans restrictions contrairement à la concurrence. Pour l’envoi de mail depuis le serveur je n’ai pas installé de serveur mail mais j’ai juste mis en place un programme ( ssmtp ) qui transmet les mails à envoyer directement à Gmail, afin d’éviter d’être classé en temps que Spam.

Plus tard suite au changement des principaux composants de mon Desktop, j’ai eu de quoi monter un serveur basé sur un Pentium D DualCore E5200 @ 3,00 Ghz en socket 775 avec 4go de ram. Étant un utilisateur de Linux depuis plus de 3 ans, c’est sans hésitation que j’ai confié mon serveur à Debian Jessie avec, en tant que serveur web, Apache2.

Histoire d’avoir quelques chose à héberger sur mon petit serveur, j’ai donc créer ce blog sous WordPress ainsi que mon site « vitrine » ( wargof.net ) codé, lui, entièrement à la main ( PHP, MySQL, HTML/CSS ) et d’autres petit projet. Très rapidement je me suis installé un wiki tournant sous Mediawiki qui me sert énormément pour mes notes.
J’ai également hébergé un cloud Owncloud pendant plusieurs mois avant de m’en remettre à un cloud plus traditionnel chez Cozy-Cloud ( hébergé sur leurs serveurs ).
Pour suivre l’utilisation du serveur, j’utilise ce script eSM eZ Server Monitor qui fait son boulot parfaitement.

Bien entendu je ne me suis pas arrêté à un serveur web, j’héberge également un serveur FTP/MySQL et d’autres services.
Entre autre j’héberge un lecteur de flux RSS pour ma lecture et depuis cette nuit mon propre serveur Git pour ranger mes morceaux de codes. Pour rendre ce serveur Git plus pratique, je lui ai installé une interface web.
D’ailleurs ce serveur Git hébergeant du code sensible ( le code de wargof.net entre autres ), je l’ai installé dans une machine virtuelle dédié par sécurité.

Ah les machines virtuelles ! C’est la prochaine étape pour mon serveur, tout virtualiser. Malheureusement, le processeur du serveur ne gère pas Intel-Vt ( technologie de virtualisation avancée ) et m’empêche donc d’installer un hyperviseur. Le prochain upgrade matériel visera d’ailleurs à disposer de l’Intel-Vt afin de partir sur un hyperviseur pour gérer mon serveur ( Proxmox en l’occurrence ).
Le but ? Disposer d’un seul serveur physique ( qui s’améliorera dans le temps ) et de pouvoir y installer autant de serveurs que je souhaite.

Côté sécurité je compte sur Fail2Ban qui bannit automatiquement un utilisateurs après plusieurs mots de passes erronés ( le but étant d’empêcher les attaques par bruteforce ). A côté de sa, LogWatch m’envoie un résumé de l’activité du serveur tout les jours. Les ports par default sont tous changés et IpTables s’occupe de bloquer les ports qu’il reste.

Pour résumer, se lancer dans l’auto-hébergement requiert juste un vieux PC ( du style Pentium 4 ), une connexion sans trop de restrictions ( Reverse DNS autorisé, adresse Ip fixe, etc .. ) et des connaissances sur les systèmes Linux. Les avantages sont multiples : Disposer de son propre serveur dédié, pouvoir héberger ses propres services ( nickel pour la vie privée ), découvrir le monde Linux, voir même pour les plus fainéants, disposer d’un blog prêt à l’emploi grâce aux CMS 😉

Voila tout pour cet article, et n’oubliez pas, n’importe quelle vieille machine fera l’affaire 🙂