La version 2.3.2 de PFSense, distribution open source de sécurité, avec 60 bugs corrigés, vient d’être libérée. Vous pouvez en savoir plus sur la publication de mise à jour de la version 2.3.2 sur le blog de pfSense. Pensez à mettre à jour vos appliances.
Catégorie : Open source
Comment sécuriser Firefox avec quelques paramètres dans about:config ?
Il est essentiel de paramétrer finalement son navigateur afin de s’assurer un surf plus sécurisé. Je vais vous présenter les différentes options essentielles à modifier. Je n’aborderai pas l’usage de modules complémentaires (peut-être le sujet d’un prochain article).
Pour entrer dans la configuration avancée de Firefox, il suffit d’entrer dans la barre d’adresse about:config et de taper sur la touche d’entrée. Lisez bien l’alerte, puis validez (si vous êtes OK).
Puis vérifiez, les paramètres de security.tls.version afin que les valeurs soient celles-ci (min à 1 et max à 3):

Ensuite, modifiez :
- geo.enabled à False afin de supprimer la géolocalisation
network.http.sendRefererHeader à 1 afin de ne communiquer que la dernière page visitée –Cela semble poser des problèmes (cf commentaires). Explication des valeurs de la variable network.http.sendRefererHeader :- 0 – never send the referring URL.
- 1 – send only when links are clicked.
- 2 – send for links and images (default).
- browser.safebrowsing.malware.enabled à False et supprimez les données de browser.safebrowsing.provider.google.lists afin d’éviter que Google vous profile. (Je vous recommande de lire ce lien https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/ expliquant le fonctionnement de cette option. Merci à Barmic pour la contribution)
- offline-apps.allow_by_default à False et offline-apps.quota.warn à 0 afin que les données offline ne soient utilisées à votre insu
N’oubliez pas de modifier les préférences par défaut afin d’éviter d’être pisté et d’accepter les cookies tiers inutiles.
Vous pouvez tester votre navigateur en utilisant ces sites : https://panopticlick.eff.org et http://ghacks.net/ip/ (teste l’IP, le referer et le navigateur)
Je mettrai à jour cette page afin de tenir compte des évolutions de Firefox. N’hésitez pas à contribuer pour la sécurité de tous.
Historique de modifications de la page :
- 22/08/2016 : changement de la valeur network.http.sendRefererHeader à 1 au lieu de 0, car cela bloque les réponses aux forums et empêche l’identification sur certains sites !
- 24/08/2016 : ajoût du lien d’explication du fonctionnement de l’option browser.safebrowsing.malware.enabled – Contribution de Barmic
- 01/09/2016 : suppression de la modification de network.http.sendRefererHeader (la valeur par défaut est à 2)
- 02/09/2016 : ajoût du site ghacks pour tester son navigateur
Règles iptables afin de bloquer les scanners SIP
Les serveurs SIP (Asterisk, FreeSwitch … mais aussi les serveurs propriétaires) sont constamment scannés par des automates ou des humains avec pour seule idée, découvrir une faille à exploiter. En effet, les enjeux financiers sont importants.
Je partage avec vous ce jour, un script iptables pour bloquer les scanners SIP (à adapter notamment les ports si vous utilisez des différents de 5060).
iptables -N SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sundayddr” –algo bm –to 65535 -m comment –comment “deny sundayddr” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sipsak” –algo bm –to 65535 -m comment –comment “deny sipsak” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sipvicious” –algo bm –to 65535 -m comment –comment “deny sipvicious” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “friendly-scanner” –algo bm –to 65535 -m comment –comment “deny friendly-scanner” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “iWar” –algo bm –to 65535 -m comment –comment “deny iWar” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sip-scan” –algo bm –to 65535 -m comment –comment “deny sip-scan” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: Nmap NSE” –algo bm –to 65535 -m comment –comment “deny Nmap NSE” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: VaxSIPUserAgent” –algo bm –to 65535 -m comment –comment “deny VaxSIPUserAgent” -j SIPDOS iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “From: sipp <sip:” –algo bm –to 65535 -m comment –comment “deny sipp” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sundayddr” –algo bm –to 65535 -m comment –comment “deny sundayddr” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sipsak” –algo bm –to 65535 -m comment –comment “deny sipsak” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sipvicious” –algo bm –to 65535 -m comment –comment “deny sipvicious” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “friendly-scanner” –algo bm –to 65535 -m comment –comment “deny friendly-scanner” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “iWar” –algo bm –to 65535 -m comment –comment “deny iWar” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sip-scan” –algo bm –to 65535 -m comment –comment “deny sip-scan” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: Nmap NSE” –algo bm –to 65535 -m comment –comment “deny Nmap NSE” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: VaxSIPUserAgent” –algo bm –to 65535 -m comment –comment “deny VaxSIPUserAgent” -j SIPDOS iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “From: sipp <sip:” –algo bm –to 65535 -m comment –comment “deny sipp” -j SIPDOS iptables -A SIPDOS -j LOG –log-prefix “firewall-sipdos: ” –log-level 6 iptables -A SIPDOS -j DROP
Si vous avez des idées pour l’améliorer, toutes les suggestions sont les bienvenues, l’idée étant de faciliter la sécurisation des serveurs SIP au plus grand nombre.
Mises à jour :
- 4 août 2016 : ajoût de règles + correction typo suite au commentaire de Ztur
Dolibarr : email de relance des factures impayées
Comment créer un email de relance pour les facture en retard de paiement sous Dolibarr, logiciel de gestion libre pour les TPE, PME et associations.
Dolibarr est un logiciel de gestion open source réputé pour les TPE/PME et associations permettant la gestion de la facturation. Il est aisé grâce à une fonction intégrée facilement appelable via un bouton, d’envoyer une facture à un contact par email. Dans une ancienne version, un bouton équivalent permettait de relancer les factures en retard de paiement par email, facture par facture. Ce bouton a maintenant disparu !
Nous allons voir comment, sans toucher au code (sauf pour l’ajout d’éléments complémentaires), intégrer simplement une fonction de relance de facture en retard de paiement par email.
Pour cela, nous allons utiliser les modèles d’email, utilisables pour les factures clients mais aussi pour les commandes, propales … Ainsi, il nous suffira de choisir le bon modèle dans la liste déroulante juste au dessus du mail, afin de sélectionner le texte adéquat.
Premièrement, des messages d’envoi d’emails sont prédéfinis. Ils sont disponibles dans le dossier des langues de dolibarr /htdocs/langs/fr_fr/other.lang . Nous retrouvons notre modèle d’envoi de facture par email mais aussi, avec surprise, le modèle de relance de facture par email.
Nous allons donc créer un nouveau modèle. Pour cela, il faut aller dans Accueil -> configuration -> dictionnaires -> modèles des courriels , puis renseigner les différents éléments : libellé (champs définissant le modèle dans liste déroulante, par exemple Relance_facture), type de modèle (« pour l’envoi de facture client » dans notre cas), privé (0, sinon juste vous pourrez utiliser ce modèle), la position dans la liste déroulante (1, c’est votre premier modèle), le sujet (par ex : Relance de la facture REF ), et enfin le content (par ex : Bonjour,\n\nNous voudrions vous avertir que le facture REF ne semble pas avoir été payée. Nous vous avons joins la dite facture comme rappel.\n\nCordialement\n\n__SIGNATURE__ ).
J’ai utilisé 2 variables REF qui sera remplacé par le numéro de facture, et SIGNATURE qui sera remplacé par … votre signature (bien penser à compléter votre signature dans votre profil d’utilisateur.
Voici la liste des variables disponibles pour les factures (elles sont définies dans le fichier htdocs/compta/facture.php ) :
$formmail->substit['__REF__'] = $object->ref; $formmail->substit['__SIGNATURE__'] = $user->signature; $formmail->substit['__REFCLIENT__'] = $object->ref_client; $formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name; $formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:''); $formmail->substit['__PROJECT_NAME__'] = (is_object($object->projet)?$object->projet->title:''); $formmail->substit['__PERSONALIZED__'] = ''; $formmail->substit['__CONTACTCIVNAME__'] = '';
Voici l’exemple d’un modèle d’email plus complet :
__CONTACTCIVNAME__,\n\n Veuillez trouver ci-joint votre facture __REF__ d'un montant de __FACTOTALTTC__ € TTC.\n\n Nous vous rappelons que cette facture doit être réglée avant le __FACDATELIMREG__ .\n\n Vous en souhaitant bonne réception, nous vous prions de croire,__CONTACTCIVNAME__, en l'assurance de nos salutations distinguées.\n\n __SIGNATURE__
Il faut noter que les 2 dernières variables, PERSONALIZED et CONTACTCIVNAME, qui sont pourtant utilisées dans les modèles de base, retournent une chaîne vide ! à vous de les compléter (je vous laisse un peu de taf).
J’utilise aussi des variables complémentaires qu’il nous faut créer. Pour cela, il suffit d’ajouter en ligne 3942 dans le fichier htdocs/compta/facture.php (version 3.9.3), les variables personnalisées complémentaires :
$formmail->substit['__FACDATE__'] = date('d/m/Y',$object->date); $formmail->substit['__FACTOTATTC__'] = number_format($object->total_ttc,2,',',''); $formmail->substit['__FACDATELIMREG__'] = date('d/m/Y',$object->date_lim_reglement);
A noter, qu’à chaque mise à jour, vos modifications seront écrasées et seront donc à refaire !
Il est aussi possible d’utiliser des extensions permettant de réaliser cette opération, mais aussi d’intégrer à Dolibarr un process complet de recouvrement. Je vous conseille Relance factures impayées v2, le plus complet, ou Rappel impayé facture, devis, adhérent (3.9.x) , deux outils intéressants, à des prix différents mais n’offrant pas les mêmes fonctionnalités.
Source : wiki dolibarr
Django : mise à jour de yawd-admin compatible avec django 1.9
Dans cet article du 27 mai 2016, je vous annonçais la reprise en main Yawd-admin, car il n’a plus été mis à jour par les mainteneurs officiels depuis mai 2014. Yawd-admin est un package django permettant d’adapter l’interface d’administration en ajoutant des fonctionnalités indispensables.
Yawd-admin en quelques mots :
yawd-admin est un site Web d’administration de django. Il étend le site d’admin de django par défaut et propose ce qui suit :
- une interface utilisateur « bootstrap » propre
- du code pur HTML5/CSS3
- une interface optimisée pour les smartphones et tablettes
- des paramètres en base de données personnalisés (options) modifiables à partir de l’interface utilisateur. ( vous pouvez utiliser tous les champs du formulaire standard de django pour ces paramètres)
- une intégration avec google analytique pour l’affichage des statistiques dans la page d’accueil de l’interface d’admin
- la possibilité de lister vos applications au menu de navigation
- un nouveau design des widgets de l’admin Django
La dernière version stable, la 0.8.0 vient d’être publiée et est compatible à 100% avec django 1.9, la dernière version de django à ce jour. Je remercie au passage henriquechehad pour son travail.
La prochaine étape concerne l’intégration de Bootstrap3 (ou 4 mais cela n’a pas l’air d’avancer très vite) en remplacement du Bootstrap 2 vieillissant.
Ensuite viendra la question de la reprise officielle de la maintenance de ce package ou la réalisation d’un fork puis publication sur pypi.
Si vous voulez donner un coup de main, le repo de yawd-admin est pour le moment sur github (je vais le migrer sur bitbucket quand j’aurais pris une décision sur fork ou pas).
Django : mise à jour de yawd-admin, template pour l’admin de Django
Depuis le 4 mai 2014, Yawd-admin n’a plus été mis à jour par les mainteneurs officiels. Plusieurs forks patchent quelques bugs et apportent une relative compatibilité avec la version 1.7 de django.
J’utilise par ailleurs ce package sur quelques projets, permettant ainsi de disposer d’une interface d’adminitration pour les sites django attrayante et performante. J’ai décidé de le mettre à jour.
Pour le moment, la dernière version stable est compatible à 100% avec django 1.6 et la version de dev avec django 1.7.
Je suis en train de finaliser la 1.8. Ensuite dès que yawd-admin sera compatible avec django 1.9, je commencerai à ajouter de nouvelles fonctionnalités.
Ensuite viendra la question de la reprise officielle de la maintenance de ce package ou la réalisation d’un fork puis publication sur pypi.
Si vous voulez donner un coup de main, le repo de yawd-admin est pour le moment sur github (je vais le migrer sur bitbucket quand j’aurais pris une décision sur fork ou pas).
Il existe un certain de nombre de paquets sympas fournissant un service à peu près équivalent pour django, comme django-grappelli, django-admin-bootstrapped, django-admin-bootstrap ou django-suit parmi ceux que j’ai utilisé et que j’apprécie.
Mais j’aime bien le look de yawd-admin même si tout n’est pas parfait, je vais pouvoir corriger quelques défaults 😉
Comparatif des versions des paquets dans ubuntu 14.04 et 16.04 et debian 8 et 9 que j’utilise le plus
Dans le cadre de mes différents projets, je suis amené à utiliser différents systèmes d’exploitation et différentes générations. Pour effectuer le bon choix, il est parfois utile de pouvoir comparer les versions des paquets disponibles dans les distributions (même si j’aime bien compiler certains paquets pour mieux coller à mes attentes, parfois il est nécessaire d’utiliser les paquets – pré-requis client par ex-).
J’ai choisi arbitrairement Ubuntu 14.04 LTS et la future 16.04 LTS ainsi que Debian stable (8) et testing. Il est bien sûr possible d’utiliser des ppa afin de disposer de versions plus à jour, mais cela est hors scope (et impose au passage une nécessaire confiance dans le contributeur et ajoûte une complexité de migration).
Pour préciser, ce comparatif a été réalisé dans l’objectif exclusif d’un usage en serveur et sans interface graphique !
Voici le tableau au 11/04/2016
Paquets | Ubuntu 14.04 LTS | Ubuntu 16.04 LTS | Debian 8 | Debian Testing |
---|---|---|---|---|
mariadb-server | 5.5.47 | 10.0.23-2 | 10.0.23 | 10.0.24 |
mysql-server | 5.5.47 | 5.7.11 | 5.5.47 | 5.6.28 |
postgresql | 9.3+154 | 9.5+173 | 9.4+165 | 9.5+173 |
odbc-postgresql | 1:09.02.0100 | 1:09.03.0300 | 1:09.03.0300 | 1:09.03.0300 |
redis-server | 2:2.8.4 | 2:3.0.6 | 2:2.8.17 | 2:3.0.6 |
unixodbc | 2.2.14 | 2.3.1 | 2.3.1 | 2.3.1 |
apache2 | 2.4.7 | 2.4.18 | 2.4.10 | 2.4.18 |
nginx | 1.4.6 | 1.9.14 | 1.6.2 | 1.9.10 |
gunicorn | 17.5 | 19.4.5 | 19.0 | 19.4.5 |
ssh | 1:6.6 | 1:7.2 | 1:6.7 | 1:7.2 |
fail2ban | 0.8.11 | 0.9.3 | 0.8.13 | 0.9.3 |
iptables | 1.4.21 | 1.6.0 | 1.4.21 | 1.6.0 |
munin | 2.0.19 | 2.0.25 | 2.0.25 | 2.0.25 |
rsyslog | 7.4.4 | 8.16.0 | 8.4.2 | 8.16.0 |
freeswitch | na | na | na | na |
asterisk | 1:11.7.0 | 1:13.1.0 | 1:11.13.1 | 1:13.7.2 |
kamailio | 4.0.4 | 4.3.4 | 4.2.0 | 4.4.0 |
freeradius | 2.1.12 | 2.2.8 | 2.2.5 | 2.2.8 |
ansible | 1.5.4 | 2.0.0.2 | 1.7.2 | 2.0.1.0 |
Ma première conclusion de cette revue, est de ne plus lancer de nouveaux projets avec Ubuntu 14.04 LTS !
Je mettrais à jour de temps en temps cette liste (n’hésitez pas à proposer quelques paquets indispensables pour les projets télécoms)
Lancement du forum de support pour FreeSwitch
Afin de combler un manque, j’ai décidé de lancer un forum de support dédié à la communauté francophone de FreeSwitch. En effet, je reçois pas mal de demandes d’aide par email, et je trouve dommage de ne pas faire profiter la communauté des réponses.
FreeSwitch est un outil fantastique permettant de créer des applications VoIP et vidéo (mais pas seulement) complexes et performantes. J’ai créé plusieurs sections (d’autres sections peuvent être envisagées) : actualités, installation, configuration, programmation et matériels. L’objectif est de créer une communauté d’entre-aide.
Si vous souhaitez devenir modérateur, envoyez moi un message privé.
L’adresse : forum FreeSwitch France
Ansible : installation automatisée de Freeswitch Ubuntu Debian – v1.3
Nouvelle mise à jour (v1.3) du role FreeSwitch pour Ansible, le célèbre moteur d’orchestration. Installation automatisée de FreeSwitch à partir des sources sur les systèmes linux basés sur Debian/Ubuntu.
Je viens de publier la mise à jour du role FreeSwitch pour Ansible, le célèbre moteur d’orchestration, la version 1.3. Ce role permet d’installer FreeSwitch de manière automatique à partir des sources sur les systèmes linux basés sur Debian et Ubuntu.
Un bug de dépendances touchant Debian Jessie a été corrigé, plus quelques modifications mineures.
L’utilisation est simple. Il faut dans un premier temps installer Ansible, puis ajouter mwolff44.freeswitch-mw à vos roles.
Installation d’Ansible recommandée (il faut une version supérieure à la 1.8, les paquets de Jessie ne fournissant que la 1.7 !) :
apt-get install -y python-apt python-pycurl libtiff5-dev git python-pip python-dev autoconf g++ libgmp-dev pip install ansible makupsafe
Pour un usage rapide du script, voici la démarche.
git clone https://github.com/mwolff44/freeswitch-mw.git echo localhost > inventory ansible-playbook -i inventory freeswitch-mw/test.yml --connection=local
Bien entendu, vous pouvez utiliser vos fichiers de configuration et des options spécifiques (le détail est sur le github de freeswitch-mw – role d’installation automatisée de FreeSwitch). Voici un exemple de configuration ci-dessous (le fichier test.yml appelé ci-dessus) :
- hosts: all vars_files: - 'defaults/main.yml' tasks: - include: 'tasks/main.yml' handlers: - include: 'handlers/main.yml'
Le repository du role Ansible pour FreeSwitch est hébergé chez Github et est bien sûr validé en intégration continue grâce au service de travis-ci.org.
Si vous voyez des idées d’amélioration, n’hésitez pas.
Mise à jour du 11/02/2016 : mise à jour des paquets Debian / Ubuntu à installer pour Ansible. Installation avec pip de markupsafe
PyFreeBilling V2 : quelles sont les news ?
Nouvelles de la v2 de PyFreeBilling, solution open source softswitch VoIP. PyFB gère les trunks, les comptes SIP, le routage, les tarifs, la facturation
Cela fait maintenant très longtemps que je n’ai pas communiqué sur la version 2 de PyFreeBilling, solution open source de softswitch VoIP. PyFB gère les clients, les fournisseurs, les trunks, les comptes SIP (mode user/mdp ou authentification par IP), les règles de routage, les tarifs, la facturation et le reporting.
La version 2 apporte de nombreuses nouveautés. La plus importante est la prise en charge native de plusieurs serveurs FreeSwitch de manière intégrée et simple. La V1 permet de le faire, mais il faut utiliser des scripts ssh et communiquer plusieurs ip à ses clients et fournisseurs. La V2 intègre Kamailio en frontal qui gère l’authentification et le load balancing entre les différents serveurs média (FreeSwitch).
La seconde nouveauté est une nouvelle interface plus moderne, plus rapide et plus réactive grâce à la technologie Ajax. Une API permet aussi d’intégrer PyFreeBilling à votre site web ou votre backoffice. Au passage, je cherche des traducteurs pour la documentation et l’interface. Pour le moment seul la langue anglaise est prévue.
La troisième importante nouveauté est la gestion des services (abonnement de canaux SIP par exemple) et des factures pdf.
Cette version est toujours en développement mais avance vite.
J’en profite pour remercier les sponsors qui me permettent de consacrer autant de temps à ce projet.
Quand la version 2 est prévue : j’espère libérer une beta pour la fin d’année (cadeau de Noël ?). Elle sera présentée avec le nouveau site de PyFreeBilling qui sera basé sur Pluxml.