Archives de catégorie : Linux

Les alias, ou comment créer ses propres commandes sous Linux !

Un exemple de fichier .bash_aliases contenant des alias.

Salut à tous Linuxiens, aujourd’hui j’ai décider de vous présenter une fonctionnalité de Linux que j’affectionne particulièrement ; il s’agit des alias de commandes !

Grâce à cela, vous pourrez par exemple créer un alias nommé ‘miseajour’ qui lancerait une fois entré : ‘sudo apt update && sudo apt upgrade && sudo apt dist-upgrade’.
Cela reviendrait à juste entrer ‘miseajour’ pour maintenir votre système.

Pour ce faire, on aura besoin d’éditer un fichier, soit .bashrc ou soit .bash_aliases tout deux situés dans votre dossier /home.
Pour cet article, j’éditerais le fichier .bash_aliases pour la bonne raison qu’il est destiné aux alias et que .bashrc est un fichier sensible.

Ouvrez donc .bash_aliases ( ou créez le s’il n’existe pas ) avec votre éditeur de texte préféré.
La syntaxe pour définir un alias est la suivante :

alias NOM_DE_L’ALIAS=’COMMANDE À EXÉCUTÉ’

Ne vous précipitez pas, pour le moment votre alias ne fonctionne sûrement pas pour le moment. Il faut s’assurer que certains lignes soient activés dans le fichier .bashrc .
Ouvrez le donc et recherchez ces lignes :

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Si ces lignes débutent par des dièzes ( # ) enlevez-les et sauvegardez.

Il ne reste plus qu’à entrer la commande : « source ~/.bashrc » et votre alias devrait est entièrement fonctionnel !

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é !

Utiliser son pc ( Linux ) en console depuis votre Android !

Salut cher lecteur ! Je suis sûr que le titre de cet article a provoqué chez toi une immense curiosité !

Le but de cet article est de vous montrer comment se connecter facilement en SSH sur son PC sous Linux ( variantes Debian ) depuis votre smartphone Android. Notez qu’avec l’application adéquate la marche à suivre pour Iphone est identique ( du côté du PC bien évidemment ). Pour Windows Phone je doute fortement que vous vous y intéressiez mais avec une appli SSH cela devrait marcher sans problème.

La connexion au PC depuis le smartphone se fera, comme vous deviez vous en douter, via une connexion SSH.
Si ce n’est pas encore fait, installez le paquet ‘openssh-server’. Une fois le serveur SSH installé, il devrait démarrer automatiquement. Si ce n’est pas le cas, vous pouvez le lancer via la commande ‘sudo service ssh start’.
Voilà, votre PC est accessible en SSH ! Il vous faut maintenant récupérer l’ip locale de votre machine. Pour sa, entrez la commande ‘sudo ifconfig’ dans un terminal ( à lancer absolument en tant que root sous peine de Command not Found ), votre ip locale sera indiqué juste à côté de ‘inet adr:’. Dans mon cas c’est ‘inet adr:192.168.1.11’.

Pour se connecter via un Android il suffit de récupérer l’application Juice SSH sur le Play Store ( ou une autre appli SSH du PlayStore ). Une fois Juice SSH lancé, allez dans ‘Connexions’ et ajoutez une nouvelle connexion.
Dans ‘type’ sélectionnez bien ‘SSH’ ! A côté du champs ‘adresse’ indiquez tout simplement l’ip locale de votre système. Dans le champs ‘identité’ entrez le nom de votre compte Linux. Pour le port, entrez le port 22 ( port SSH par default ). Une fois tout les champs remplis, validez.

Sur l’appli Juice SSH vous n’avez plus qu’à cliquer sur la connexion précédemment enregistré et c’est parti, vous n’avez plus qu’à vous loggé et vous aurez accès à un terminal.

/!\ A noter que ce mini-tutoriel ne fonctionne qu’en réseau local ! /!\
Si cependant vous voudriez vous connecter en SSH via la 3G par exemple, il faudra passer par la page d’administration de votre box internet pour y effectuer une redirection des pots 22 vers l’ip locale de votre machine. Cela permet à votre box de savoir vers quel machine transmettre les requêtes entrante sur le port 22.
Une fois la redirection de ports effectué vous pourrez remplacer votre ip locale par votre ip publique ( l’ip qui apparaît sur le net ) pour vous connecter.
Attention, si votre ip est dite « dynamique » elle changera régulièrement, dans ce cas la optez pour redirection no-ip afin d’avoir un nom de domaine gratuit qui s’adaptera à votre ip.

C’est tout pour cet article, rdv au prochain 😉