Le Blog de C-quad

Archive pour janvier 2011

Vérifier la validité du certificat pour les contributions fedora

Petit pense bête (et oui, j’en ai parfois besoin) pour me souvenir de la commande pour vérifier l’état de mon certificat.

$ fedora-cert -v
Verifying Certificate
cert expires: 2011-07-19
CRL Checking not implemented yet

Si le certificat est expiré pour le renouveler la commande est :

$ fedora-cert -n

Sécuriser apache avec fail2ban

Si vous hébergez un site web avec apache, il y a de fortes chance qu’en regardant les logs vous tombiez sur ce type de chose.

[Sun Jan 09 09:27:54 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.5.5-rc1
[Sun Jan 09 09:27:54 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.5.6-rc1
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.5.6-rc2
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.5.6
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.5.7
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.5.7-pl1
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-alpha
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-alpha2
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-beta1
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-beta2
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-rc1
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-rc2
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0-rc3
[Sun Jan 09 09:27:55 2011] [error] [client 85.17.201.75] File does not exist: /var/www/html/wordpress/phpMyAdmin-2.6.0

Nous n’allons bien sur pas laisser ces tentatives d’intrusion impunies. Nous allons faire en sorte de bannir l’adresse ip de celui qui essaie d’accéder à des dossiers ou fichiers qui ne sont pas disponibles sur le serveur.

Pour cela nous utilisons fail2ban.

Configuration de fail2ban

Ajoutons dans le fichier /etc/fail2ban/jail.conf

# Apcahe 404
[apache-404]
enabled = true
filter  = apache-404
action   = iptables[name=HTTP, port=http, protocol=tcp]
           sendmail-whois[name=HTTP, dest=root, sender=fail2ban@mail.com]
logpath = /var/log/httpd*/error*.log
maxretry = 5

Les filtres

Il nouus reste à créer le filter apache-404. Nous l’ajoutons donc dans /etc/fail2ban/filter.d/

Voici le contenu du fichier apache-404.conf à créer :

# Fail2Ban configuration file
#
# Author: Cédric OLIVIER
#
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the 404 failure messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
failregex = [[]client <HOST>[]] (File does not exist|script not found or unable to stat): .*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Les actions

Dans le fichier /etc/fail2ban/jail.conf une action est définie quand le filtre est respecté. Dans notre cas, c’est :

  • iptables[name=HTTP, port=http, protocol=tcp]
  • sendmail-whois[name=HTTP, dest=root, sender=fail2ban@mail.com]

iptables est une action qui est définie dans /etc/fail2ban/action.d/iptables.conf, cette action a pour effet de bannir l’adresse ip de la personne qui a tenté l’intrusion

sendmail-whois est une action qui recherche les informations whois de l’attaquant et envoie un mail lorsqu’une ip est bannie, cela permet d’avoir une idée de l’efficacité de la règle.


Télécharger un paquet et ses dépendances pour une installation hors ligne

Un des problèmes de nos distributions modernes est d’être dépendante de l’accès à Internet.

Il est effectivement difficile d’installer un paquet rpm lorsque l’on n’est pas connecté à un dépôt.

Il existe bien heureusement une solution.  Sur une machine qui dispose d’un accès, il est possible de télécharger un paquet avec toutes ses dépendances.

$ yumdownloader --resolve nom_paquet

mettre à jour un paquet Fedora

Pré requis

Un des pré requis est d’avoir configuré correctement son environnement.La commande suivante permet de générer par exemple la clé pour accéder à koji :

fedora-packager-setup

Il reste ensuite à importer la clé ~/fedora-browser-cert.p12 dans Firefox

Mettre à jour la branche devel

Avant de mettre à jour un paquet, nous allons récupérer la version stockée dans l’outil de gestion de configuration.

 

  1. Récupération des sources
    fedpkg  clone <Paquet>
    cd <Paquet>
    
  2. Import du srpm
    fedpkg  import <SRPM File>
    
  3. Commit et push des modifications. Les fichiers qui ont changés seront affichés. Quitter sans sauver annule l’opération
  4. fedpkg commit -m "message de commit" -p
    
  5. Construction du paquet
    fedpkg build
    

Mettre à jour les branches stables

Par exemple pour la branche f13 (Fedora 13)

fedpkg switch-branch f13
fedpkg import -b f13 <SRPM File>
fedpkg commit -m "message de commit" -p

Générer la clé pkcs12 pour firefox (Contribution à Fedora Project)

Pour générer le certificat :

    • Se connecter à https://admin.fedoraproject.org/accounts/ et cliquer sur le lien « Download a client-side certificate ».
    • Sauvegarder dans le fichier ~/.fedora.cert
    • S’il y avait d’ancien certificats fedora les supprimer :
    rm ~/.fedora-server-ca.cert ~/.fedora-upload-ca.cert
    
    • Pour générer la clé pkcs12 :
    fedora-packager-setup
    
    • Ouvrir Firefox et aller dans Édition -> Préférences -> Avancé -> Chiffrement -> Afficher les Certificat -> Vos certificats
    • Supprimer l’ancien certificat et importer le nouveau depuis ~/fedora-browser-cert.p12