pfSense : sortie de la version 2.1.1 :-)

pfSense est une appliance de sécurité basée sur FreeBSD fort réputée.

En attendant la version 2.2, cette nouvelle version corrige 3 failles de sécurité (FreeBSD-SA-14:01.bsnmpd / CVE-2014-1452, FreeBSD-SA-14:02.ntpd / CVE-2013-5211, FreeBSD-SA-14:03.openssl / CVE-2013-4353, CVE-2013-6449, CVE-2013-6450), met à jour les drivers de cartes réseaux (em/igb/ixgb/ixgbe) et corrige des bugs mineurs.

Vous trouverez le détail de la mise à jour ICI .

Lightbeam : voir les sites qui nous traquent à notre insu

Vous en avez marre de ces sites qui ne respectent pas votre vie privé, soit pas incompétence soit par volonté. J’espère que vous utilisez Firefox et une ectension bloquant les cookies un peu trop curieux et bavard. Mais, une autre extension de Firefox permet de vous montrer visuellement avec quels sites vous communiquez sans le savoir !

Firefox définit ainsi cette extension :

Lightbeam est une extension pour Firefox qui fait appel à des visualisations interactives pour vous montrer avec quels sites tiers vous communiquez sans le savoir. À mesure que vous naviguez, Lightbeam vous révèlera les coulisses du Web d’aujourd’hui, y compris les parties les moins visibles pour l’utilisateur moyen.

L’installation est très simple, comme n’importe quelle extension. A noter, qu’il n’est pas nécessaire de redémarrer votre navigateur.

Comment fonctionne Lightbeam ? L’extension tourne en tâche de fond et collecte des statistiques sur chaque site visité et des sites tiers liés. Ensuite, vous pouvez voir graphiquement avec catastrophe vos données que vous échangez avec des tiers à votre insu. Pour cela, allez dans le menu de Firefox, et cliquez sur « show lightbeam ». Un nouvel onglet va s’ouvrir.

Après avoir visité 3 sites, voilà le résultat :

Comme je bloque les cookies, les fuites ne sont pas aussi importantes, mais via les plugins analytics et autres, les données sont quand même transférées vers d’autres sites sans mon accord. Faites le test de votre côté et comparons !

On voit que le journaldunet partage des informations avec 7 sites ! Quand on additionne la somme des sites vus dans une journée, le partage de données non souhaité devient insoutenable.

Comme nous disaient nos parents quand on était encore jeune, sortez couvert.

Sécurité : une backdoor découverte sur les routeurs Cisco, Linksys et Netgear

Il a été découvert récemment une backdoor écoutant sur le port TCP/32764 sur certains routeurs des marques Cisco, Linksys et Netgear. Cette backdoor permet de faire un reset du routeur ou de prendre le contrôle complet de ce dernier.

Un petit lien vers le repo github de la personne ayant mis à jour cette backdoor : https://github.com/elvanderb/TCP-32764

Comment sécuriser son routeur afin de ne plus être vulnérable? Le plus simple, est de changer le firmware par un firmware opensource comme OpenWRT.

La liste des routeurs vulnérables (liste non exhaustive malheureusement) – source elvanderb :

Avec les récentes histoires de backdoor présentent dans un certains nombre d’équipements, les solutions opensource deviennent une des solutions les plus sures, le code restant auditable. Profitez en pour regarder Pfsense ou Zeroshell. A vos Soekris !

Configuration de fail2ban selon les différentes versions d’asterisk

Fail2ban est un outil indispensable à installer sur ses serveurs asterisk. Il permet de bloquer de manière proactive les tentatives de scan et ainsi de protéger vos deniers. Mais selon la version d’asterisk, le filtre doit être configurer de manière différente.

Il faut ajouter au fichier jail.conf la partie le code suivant :

[asterisk-iptables]
# if more than 4 attempts are made within 6 hours, ban for 24 hours
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
              sendmail[name=ASTERISK, dest=, sender=]
logpath  = /var/log/asterisk/messages
maxretry = 4
findtime = 21600
bantime = 86400

et créer le fichier suivant :

filter.d/asterisk.conf

et copier le code suivant pour asterisk 1.4 et 1.6 :

# Fail2Ban configuration file
#
#
# $Revision: 251 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures 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>S+)
# Values:  TEXT
#

failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Wrong password
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Username/auth name mismatch
            NOTICE.* <HOST> failed to authenticate as '.*'$
            NOTICE.* .*: No registration for peer '.*' (from )
            NOTICE.* .*: Host  failed MD5 authentication for '.*' (.*)
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Device does not match ACL
            NOTICE.* .*: Registration from '.*" .* failed for '<HOST>' - Peer is not supposed to register
            VERBOSE.*SIP/<HOST>-.*Received incoming SIP connection from unknown peer

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

et pour la version 1.8, le code suivant :

# Fail2Ban configuration file
#
#
# $Revision: 251 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures 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>S+)
# Values:  TEXT
#
# Asterisk 1.8 uses Host:Port format which is reflected here

failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Wrong password
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Username/auth name mismatch
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Device does not match ACL
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Peer is not supposed to register
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - ACL error (permit/deny)
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Device does not match ACL
            NOTICE.* .*: Registration from '".*".*' failed for '<HOST>:.*' - No matching peer found
            NOTICE.* .*: Registration from '".*".*' failed for '<HOST>:.*' - Wrong password
            NOTICE.* <HOST> failed to authenticate as '.*'$
            NOTICE.* .*: No registration for peer '.*' (from <HOST>)
            NOTICE.* .*: Host <HOST> failed MD5 authentication for '.*' (.*)
            NOTICE.* .*: Failed to authenticate user .*@<HOST>.*
            NOTICE.* .*: <HOST> failed to authenticate as '.*'
            NOTICE.* .*: <HOST> tried  to authenticate with nonexistent user '.*'
            VERBOSE.*SIP/<HOST>-.*Received incoming SIP connection from unknown peer

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

Ce code fonctionne pour asterisk 10 et 11 même si je bosse sur une amélioration.

PfSense : exporter la configuration client OpenVPN

Présentation de PFSense

PFSense est une appliance de sécurité réputée que j’apprécie tout particulièrement. PFSense permet, entre autres fonctions, de jouer le rôle de serveur VPN (IPSEC, PPTP, L2TP et OPENVPN).

Choix du serveur VPN

Je conseille d’utiliser OpenVPN de part sa simplicité (versus IPSEC), sa possibilité de fonctionner un peu n’importe où (même via des réseaux très strict, il suffit de bien configurer les ports) et sa sécurité (versus PPTP et L2TP). Par contre, l’intégration de la configuration pour les utilisateurs mobiles n’est pas toujours simple, notament face à la multitude des systèmes d’exploitations.

Configuration des terminaux

Vous trouverez, grâce à la vivante communauté de PFSense, un package facilitant les exports de configuration, que ce soit vers les ordinateurs sous windows, Linux et MacOSX, mais aussi vers les terminaux mobiles et tablettes comme Android et IOS ( une application Openvpn pour IOS est disponible sur le store US depuis quelques semaines. Peut-être bientôt en Europe, ainsi plus besoin de rooter son idevice afin de profiter d’OpenVPN).

Client Android

Je peux vous conseiller un client Android de qualité qui ne nécessite pas de rooter votre terminal. Il s’agit de FeatVPN . Une version est disponible sur le google store, mais il est recommandé d’installer la version disponible sur leur site web. Faites bien attention de choisir le bon apk selon votre version d’Android.

Procédure d’installation

Apres avoir téléchargé la configuration pour votre utilisateur sous Android sur votre ordinateur via l’interface web de PFSense, il faut copier ce fichier sur la carte SD de votre téléphone ou tablette.

Ensuite, il faut lancer votre FeatVPN, sélectionner « Tunnels », puis le bouton « Add », aller dans la partie « Configuration » et cliquer sur « Load ». Il faut ensuite choisir le fichier que nous venons de copier sur la carte SD. La configuration se fait tout seul. Je vous conseille fortement de ne pas stocker votre mot de passe sur votre terminal Android, car en cas de perte ou de vol, votre réseau sera accessible le temps que vous révoquiez le certificat utilisateur.

Conclusion

Plus de raison de ne plus sécuriser l’accès à votre infrastructure loin de vos bases, PFSense et OpenVPN vous apportent une solution fiable, performante et pérenne.

Pourquoi installer DenyHosts sur son serveur ?

Il existe plusieurs de manière de bloquer les vilains assaillants essayant de se connecter à votre serveur en SSH. Vous pouvez utiliser Fail2ban, iptables mais aussi DenyHosts. Alors, pourquoi absolument installer DenyHosts ?

DenyHosts se différencie de Fail2ban sur plusieurs points :

  • il ne s’occupe que du ssh alors que Fail2ban sait bloquer un grand nombre de services se basant sur l’authentification par mot de passe et ayant la capacité de logguer les essais infructueux dans le bon fichier de log
  • le mode de blocage est différent, Fail2ban utilise iptables alors que DenyHosts utilise TCP Wrappers (leurs actions étant différentes, on comprend qu’ils sont complémentaires)
  • synchronisation entre plusieurs DenyHosts : vous avez plusieurs serveurs, et grâce à cette fonction dès qu’un de vos serveurs subis une attaque, tous vos serveurs blacklistent cette IP
  • partage des IP blacklistées via www.denyhosts.net, vous envoyez vos IP blacklistées, mais vous pouvez aussi recevoir les IP blacklistées par les autres utilisateurs (vous pouvez définir des seuils)

Vous aurez compris que DenyHosts, Fail2ban et iptables correctement configurés doivent cohabiter sur vos serveurs.

Je ne vais pas vous détailler l’installation et la configuration de DenyHosts, le fichier de conf /etc/denyhosts.conf est parfaitement commenté.

Si vous hésitez sur la valeur d’un paramètre, je vous invite à poster un message.

Howto : comment renforcer la sécurité du réseau sous linux avec sysctl ?

Il est essentiel de sécuriser ses machines sous linux. Il y a plusieurs étapes indispensables à suivre. Aujourd’hui, nous allons voir comment sysctl va nous aider.

En modifiant un seul fichier de conf, nous allons renforcer la protection réseau :

  • protection contre l’ IP Spoofing
  • protection contre les scans
  • amélioration des logs pour permettre des traitements avec des outils tiers comme fail2ban
  • paramétrages divers

Nous allons éditer le fichier /etc/sysctl.conf et ajouter ou décommenter les lignes suivantes :

# IP Spoofing protection 
net.ipv4.conf.all.rp_filter = 1 
net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests 
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing 
net.ipv4.conf.all.accept_source_route = 0 
net.ipv6.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0 
net.ipv6.conf.default.accept_source_route = 0

# Ignore send redirects 
net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.default.send_redirects = 0

# Block SYN attacks 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_max_syn_backlog = 2048 
net.ipv4.tcp_synack_retries = 2 
net.ipv4.tcp_syn_retries = 5

# Log Martians 
net.ipv4.conf.all.log_martians = 1 
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Ignore ICMP redirects 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv6.conf.all.accept_redirects = 0 
net.ipv4.conf.default.accept_redirects = 0 
net.ipv6.conf.default.accept_redirects = 0

# Ignore Directed pings 
net.ipv4.icmp_echo_ignore_all = 1

Vous sauvegardez et quittez. Il faut ensuite recharger sysctl pour la prise en compte des modifications :

sysctl -p

Et voilà !

HowTo : comment faire des recherches sur google anonymement ?

Chaque fois que vous faites une requête de recherche via google, google trace tous vos faits et gestes. Vous souhaitez malgré tout continuer à profiter de l’exhaustivité de la base de données de google tout en protégeant votre vie privée. Oui, c’est possible. Il y a un site pour ça : startpage.com .

Ils s’engagent dans leur charte à n’enregistrer aucune donnée personnelle, ni l’adresse IP du terminal et n’enregistre aucun cookie. Les requêtes via leur serveur se font via une connexion cryptée et sécurisée.

Startpage appartient à une société de droit hollandais. Le moteur de recherche a obtenu plusieurs prix : 1er prix du label européen de la protection de la confidentialité (European Privacy Seal) décerné par l’autorité de certification Europrise et désigné meilleur métamoteur de recherche par Search Engine Watch en 2000, 2002 et 2004.

Sortie de la version 2.0.2 de PFSense, appliance de sécurité open source de référence

La nouvelle version de PfSense est disponible, la 2.0.2 , en attendant la très attendue 2.1. Cette version corrige 3 failles de sécurité FreeBSD. Je vous engage à upgrader en urgence votre Firewall préféré.

A noter aussi, les corrections de bugs touchant IPSEC et OPENVPN. Vous trouverez la liste complète des fixes sur le blog officiel.

PfSense est une appliance de sécurité open source basée sur FreeBSD, performante et complète. Vous avez besoin d’un firewall, d’un serveur VPN, d’un portail captif … (de nombreux packages complètent les fonctionnalités), je vous engage à découvrir cette superbe solution. Une solution basée sur des boitiers Soekris peut parfaitement faire office de firewall/VPN/Proxy pour les particuliers, télétravailleurs ou PME, et sans rougir des solutions propriétaires onéreuses.

Quel algorithme de chiffrement symétrique (symmetric cipher) choisir ?

Vous souhaitez installer OpenVPN, OpenPGP, OpenSSH ou une autre solution nécessitant l’utilisation d’un algorithme de chiffrement symétrique. Mais entre AES, Blowfish ou DES vous ne savez pas lequel choisir. Voici un comparatif afin de vous aider à choisir.

Un chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer contrairement au chiffrement asymétrique qui utilise des clés différentes (en fait 2 clés : une clé publique, servant au chiffrement, et une clé privée, servant à déchiffrer).

Un rappel de la réglementation en vigueur en France me semble nécessaire. Toute information chiffrée par un algorithme à clef symétrique ne doit pas utiliser de clé supérieure à 128 bits (« service de confidentialité » défini par les décrets du 17 mars 1999, avec une clef de 128 bits).

Pour commencer, je ne vais présenter que les algorithmes le plus souvent rencontrés (la liste des algorithme étant existant étant très longue) : IDEA, TripleDES (DES est exclu du fait de sa lenteur et du fait de la possibilité d’une attaque systématique dans un temps raisonnable), CAST-5, blowfish et AES.

Avant de rentrer plus dans le détail, la solidité d’un algorithme dépend fortement de la taille de la clé. Une clé est une donnée qui permet de chiffrer et de déchiffrer une information après traitement par un algorithme. Par exemple, en 1997, une recherche exhaustive de clé de l’algorithme DES a été réussie. DES est basée sur des clés de 56 bits, soit 2 puissance 56 possibilités !

IDEA est un algorithme breveté par la société Suisse Mediacrypt et depuis tombé dans le domaine public (en 2011 en Europe) est dérivé de l’algorithme PES. Il até présenté la première fois en 1991. Il utilise des blocs de 64 bits avec une clé de 128 bits. Depuis la société, a présenté en 2005 son successeur FOX breveté sous le nom IDEA NXT (clé 128 bits/blocs 64 bits ou clé 256 bits/blocs 128 bits).

Publié en 1979, 3DES ou Triple DES a été développé par Walter Tuchman en enchainant 3 traitements successifs de l’algorithme DES. Il utilise 3 clés DES de 56 bits sur des blocs de 64 bits. Il est vulnérable aux attaques de type « rencontre au milieu ». De ce fait, il est admis qu’il fournit une sécurité effective de 112 bits seulement. 3DES est largement utilisé dans l’industrie électronique.

CAST5 ou CAST-128, a été conçu en 1996 utilise des clés allant de 40 à 128 bits pour des blocs de 64 bits. Il est notamment validé par le gouvernement canadien et est utilisé par défaut dans de nombreux produits.

Blowfish est aussi présent dans de nombreuses solutions (par défaut dans OpenVPN par exemple). Présenté en 1993, c’est un algorithme de référence avec AES. Un des gros points forts de Blowfish réside sans sa légèreté qui lui permet d’être utilisé dans le domaine de l’embarqué. A noter, que son créateur, Bruce Schneier, recommande d’utiliser son successeur Twofish.

AES est le standard issu du concours lancé en 1997 par le NIST (National Institute of Standards and Technology). C’est le standard par défaut du gouvernement US. Comme Blowfish, il n’y a pas d’attaque connue contre cet algorithme (hormis par brute force, mais difficilement réalisable en l’état actuel de la technologie).

IDEA3DESCAST-5BLOWFISHAES (128-192-256)
Date de publication19921979199619931998
Dérivé dePESDESSQUARE
Taille des clés (bits)12856, 112 ou 168de 40 à 128, multiple de 8 bits. Par défaut 128 bits.de 32 à 448, multiple de 8 bits. Par défaut 128 bits.128-192-256
Taille de bloc (bits)6464646464-128-128
StructureAdd-Rotate-Xor 8,5 toursSchéma de FeistelSchéma de Feistel – 12 ou 16 toursSchéma de Feistel – 16 toursSubstitution, permutation – 10, 12 ou 14 tours selon la taille de la clé.
VarianteFOX (breveté)CAST-256TWOFISH
Commentaires sur la sécuritéAttaque par collisions possiblesSelon la taille de la clé, des exploits existent.Aucune attaque réalisable connueAucune attaque réalisable connueAucune attaque réalisable connue
Sécurité (/5)44555
Performance (/5)21454
CommentairesIDEA était soumis au brevet jusqu’en 2011 en Europe.La taille de la clé dépend de l’option choisie : 1, 2 ou 3Aussi appelé CAST-128Empreinte mémoire très faible et très performant.Certifié par la NSA.

Il existe plusieurs versions AES128, AES192 et AES256. le chiffre définissant la longueur de la clé.

En conclusion, les 3 algorithmes les plus sécurisés sont CAST-5, AES et Blowfish dont à ce jour, aucune attaque réalisable n’est connue. J’ai une petite préférence pour Blowfish de par sa performance.