Mémo : comment \ »débannir\ » une IP bloquée par fail2ban?

Quand on a son serveur personnel, fail2ban fait partie des indispensables à installer. Ce démon scrute les logs (que ce soient les logs ssh, apache, etc…) à la recherche des tentatives de connexion infructueuses et peut ainsi bannir une IP si nécessaire. Concrètement, dans le cas d\’une tentative de connexion par ssh qui échouerait 3 fois d\’affilés (ces paramètres sont configurables), l\’IP de la machine à l\’origine de ces tentatives aura droit à une belle règle iptable de façon à lui bloquer complètement la connexion via le port 22 pour une durée donnée (5 minutes ou 3000 ans, c\’est vous qui choisissez!). Bref, pour vous donner une idée, sur mon serveur je bloque en moyenne 5 IP par jour. Les tentatives sont faites en général via ssh avec des logins comme \ »root\ » ou \ »login\ » et des mots de passes évidemment faux!

Quoi qu\’il en soit, il peut arriver qu\’une IP vous appartenant soit bloquée. Ça peut arriver par exemple dans le cas où la connexion à ssh via login/password est activée (et pas uniquement par clé publique/privée) et où vous tentez de vous connecter à votre serveur depuis le boulot en vous trompant de login parce que vous en avez à la pelle vu le nombre de machines que vous utilisez. Du coup, vous tentez 3 fois votre mot de passe sans vous apercevoir que votre login n\’est pas bon… et hop! Banni pour un an! (True story!)

Il devient alors pratique, une fois rentré à la maison, de se \ »débannir\ », de bloquer la connexion ssh via login/password et d\’ajouter sa clé publique pour ne plus avoir de soucis. Mais comment se débannir? Comme ceci :

Admettons que vous ayez été banni à partir de tentatives infructueuses de connexion à ssh. Pour lister les IP bannies, il vous faudra lancer dans un premier temps la commande suivante :

$ sudo iptables -L fail2ban-ssh
Chain fail2ban-ssh (1 references)
target     prot opt source               destination
DROP 0 -- 66.249.92.104 anywhere
DROP 0 -- 91.189.90.40 anywhere
DROP 0 -- 207.46.170.123 anywhere
RETURN     all  --  anywhere             anywhere

Bien que la \ »mise en page\ » ne le laisse pas paraitre, il s\’agit ici d\’un tableau dont les en-têtes sont \ »target\ », \ »prot\ », … Il suffit alors de noter à quelle ligne du tableau apparait votre adresse IP. Considérons que vous souhaitez débloquer 91.189.90.40. Cette IP apparait à la ligne 2. Il ne reste plus qu\’à exécuter la commande suivante :

$ sudo iptables -D fail2ban-ssh 2

Votre IP sera bien supprimée des règles iptables, vous autorisant à nouveau à vous connecter en ssh!

Agrégateur de flux RSS : rssLounge

L\’un des intérêts à avoir son serveur personnel (ou même un hébergement chez un prestataire) c\’est qu\’on a alors un choix important d\’applications web open source pour tout type d\’utilisation et qu\’on peut ainsi se détacher des solutions propriétaires grand public avec lesquelles le contrôle de ses données personnelles est complexe pour ne pas dire impossible. Pour qui a quelques notions de base sur l\’administration d\’un serveur et sait suivre un tutoriel ou lire un README, il devient très facile de propulser un CMS, un blog ou encore un webmail.

Afin de poursuivre mon but de fuir Google, j\’ai souhaité remplacer l\’agrégateur de flux RSS Google Reader que j\’utilisais par une solution open source hébergée sur mon serveur. Malheureusement, ce genre d\’application ne court pas les rues. Mon premier choix s\’est porté sur Gregarius qui semble être l\’agrégateur web open source le plus populaire. Problème : le projet n\’est plus maintenu. Bref, en cherchant un peu, je suis tombé sur rssLounge. Il s\’agit d\’un agrégateur de flux dont le style est bien travaillé et qui utilise PHP/MySQL (et de l\’AJAX pour la navigation). Le traitement des flux est basé sur la bibliothèque Simple Pie, une des plus abouties.

Actuellement dans sa version 1.3, rssLounge propose presque tout ce qu\’on attend d\’un agrégateur :

  • classement des flux par catégorie
  • champ de recherche
  • paramètres d\’affichage \ »non-lu / tous / publié à telle date\ »
  • affichage spécifique pour les flux ne contenant que des images
  • marquage de flux en favoris
  • import/export en OPML (compatible Google Reader)
  • mise à jour des flux par AJAX ou crontab
\"rssLounge\"

Les deux seules fonctionnalités qu\’il lui font vraiment défaut selon moi sont la lecture des médias (vidéo ou audio) et l\’interprétation des balises spéciales permettant d\’afficher du code par exemple mais ceci semble plus lié à une limitation de Simple Pie. Hormis ces deux choses qui imposent parfois d\’ouvrir l\’article dans son site original, cette application est très efficace. Quelques détails supplémentaires : rssLounge peut (doit?) être protégé par un identifiant et un mot de passe mais ne gère pas le multi-compte. Ah! Et j\’oubliais, il est compatible avec les navigateurs basés sur Webkit et Gecko (Firefox, Safari, Opéra, Chrome, …) donc pas IE !!

Vous pouvez le tester sur la page de démo mise en place par l\’auteur de rssLounge.

Quitter Google, Free et les autres : 1ère étape, le serveur perso

Je me suis mis en tête depuis quelque temps de me défaire petit à petit des services proposés par des sociétés en qui je n\’ai plus aucune confiance. Parmi elles : Free et Google.

Free pour deux raisons : premièrement à cause des problèmes de connexion que j\’ai eu avec eux et qui m\’ont conduit à les mettre au tribunal (procès que j\’ai gagné mais j\’y reviendrai plus tard) et deuxièmement à cause de la qualité de l\’hébergement gratuit proposé, pas assez satisfaisant selon moi ou plutôt selon mes besoins.

Et Google pour une foule de choses qui font que comme Facebook, ils occultent le \ »personnelles\ » dans le terme \ »données personnelles\ »  (scan des mails, analyse des recherches effectuées, etc…etc…). Voir ce billet.

N\’ayant pas particulièrement envie d\’acheter un hébergement chez un prestataire, j\’ai choisi de me monter un serveur de façon à tout contrôler moi-même. Cette machine devait remplacer un vieux PC pas discret pour un sous et mal configuré que j\’avais installé quelques mois auparavant. Les critères de ce serveur devaient être les suivants : peu bruyant (fanless si possible), consommation d\’énergie minimum, peu encombrant, à un prix raisonnable (300€ de budget) et avec un système de sauvegarde fiable.

Je me suis donc tourné vers cette configuration après m\’être pas mal documenté et avoir demandé l\’avis d\’utilisateurs du forum d\’Hardware.fr.

\"ConfigurationUne petite explication d\’impose :

  • 2 x 1Go de DDRII : On est dans du classique. 2Go m\’ont paru nécessaire afin de faire face à d\’éventuelles surcharge si jamais ce blog était amené à être lu…
  • Intel D510MO : Il s\’agit là d\’une carte mère mini-ATX intégrant un processeur Atom double coeurs (cadencé à 1.66 Ghz). J\’ai fait ce choix d\’une part parce que la consommation d\’énergie de ce type de \ »carte mère + processeur\ » est extrêmement faible (13W1 contre environ 65W2 pour un Pentium 4 à 2,4 Ghz) et d\’autre part parce que le rapport qualité/puissance/prix m\’a semblé plus que raisonnable. A noter de plus que le tout est en refroidissement passif!
  • Lian Li PC-Q07B : C\’est solide, c\’est joli, c\’est petit, c\’est du Lian Li! Détail supplémentaire, c\’est un des seuls boitiers pour mini-ATX permettant d\’embarquer une alimentation en format ATX et possédant une baie 3,5\’ et 5,25\’  (soit de quoi mettre deux disques durs 3,5\’). Qui plus est, cette tour est conçue pour ne nécessiter aucun ventilateur pour gérer les flux d\’air.
  • Alimentation Be Quiet 350W : Cette alimentation est certifiée 80+, ce qui signifie que son rendement est excellent. C\’est finalement le seul élément de la tour possédant un ventilateur. Les alimentations à refroidissement passif sont encore un peu chères et en toute honnêteté, le ventilateur est des plus silencieux!
  • Adaptateur 3,5\’ vers 5,25\’ : De façon à mettre deux disques durs dont un dans l\’emplacement 5,25\’.
  • 2 disques dur SATA de 320Go : Ici pas de choix particulier… juste la capacité dont j\’ai besoin. J\’ai pris deux disques de façon à faire du RAID 1 (copie conforme des deux disques) pour sauvegarder mon système et mes données.

Pas de carte graphique (chipset intégré sur la carte mère), pas de lecteur CD. Seulement le strict minimum pour répondre à toutes les contraintes que je m\’étais fixé. J\’ai commandé le tout sur Materiel.net. Reçu deux jours après. Monté dans la foulée. Une petite Ubuntu Server 9.10 et quelques installations et configurations plus tard tout fonctionne parfaitement. La machine tourne comme une horloge sans aucun ralentissement ou plantage :

caradhras@server:~$ uptime
 10:01:19 up 52 days, 17:00,  1 user,  load average: 0.00, 0.01, 0.00

et le RAID 1 logiciel m\’assure un bon système de sauvegarde (même si pas complètement infaillible) :

caradhras@server:~$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90
  Creation Time : Tue Mar 16 22:51:20 2010
     Raid Level : raid1
     Array Size : 97659008 (93.13 GiB 100.00 GB)
  Used Dev Size : 97659008 (93.13 GiB 100.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Wed May 19 10:44:27 2010
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : cdc56660:bf3c75b4:7a610bf1:d22aab7f
         Events : 0.443207

    Number   Major   Minor   RaidDevice State
       0       8        6        0      active sync   /dev/sda6
       1       8       21        1      active sync   /dev/sdb5

Pour plus d\’infos concernant les bases de l\’installation (apache, php, mysql en particulier), je vous recommance le blog de Vanaryon qui a fait une suite d\’articles sur le sujet. Et pour le RAID 1 logiciel à configurer lors de l\’installation du système tout est détaillé dans la documentation officielle d\’Ubuntu.

1 : http://www.tomshardware.com/reviews/atom-d510-d510mo,2507-3.html
2 : http://www.intel.com/support/processors/pentium4/sb/cs-007999.htm#Specifications