- DNS MENTEURS - - CENSURE SUR INTERNET -

DNS-MENTEURS

file404120200024


De nos jours tout Internet est basé sur les noms de domaines.

Sans le système DNS quasiment plus rien ne fonctionnerait.

Pour rappel selon Wikipédia:

Le Domain Name System (ou DNS, système de noms de domaine) est un service permettant de traduire un nom de domaine en informations,

notamment en adresses IP .


Autrement dit quand vous tapper sur http://blog.info16.fr, votre machine va tenter de transformer ce nom en Adresse IP.

Grace à cette addresse votre système va pouvoir aller communiquer avec l'adresse IP de mon blog.


La structure et le fonctionnement du DNS


Le système DNS utilise une structure en arbre.

http://www.info16.fr/ftpl/Structure_DNS.jpg

Tout commence depuis les serveurs Racines ( Root ) : Officiellement il y en a 13 ( 13 adresses IP) , mais réèllement il y en a plus

de 130 répartis dans le monde

Les serveurs racines utilisent la technologie réseau unicast ; selon votre localisation, l'adresse IP va être routée vers un serveur

le plus prêt de la requete.


http://www.info16.fr/ftpl/Root-current.svg.png

sources: https://fr.wikipedia.org/wiki/Serveur_racine_du_DNS



Puis les serveur de TLD ( .fr, .com, ...) ou de premier niveau

Puis les serveurs de second niveau

Puis les serveur de troisième niveau

etc ...


Autrement dit une requete récursive vers ce blog donnerait:

1. Quelle est l'adresse IP de blog.info16.fr ?  ( Les serveurs racines voit toujours la requête complète)

2. les serveurs racines répondent la liste des serveurs faisant autorité pour le .FR

3. Le client DNS interroge alors un des serveurs faisant autorité pour .FR en lui demandant "quelle est l'adresse IP de blog.info16.fr"

4. Un des serveurs faisant autorité pour .FR répond la liste des serveurs faisant autorité pour le domaine info16.fr

5. Le client DNS interroge alors un des serveurs faisant autorité pour info16.fr  en lui demandant "qu'elle est l'adresse IP de blog.info16.fr"

6. le serveurs faisant autorité pour .info16.fr répond la ou les adresses IP correspondantes au nom blog.info16.fr

On le voit très bien en utilisant la commande dig + Trace


Le resolveur

Cet enchainement de questions/réponses est ce que fait un résolveur

Le résolveur va de plus mettre en cache les réponses trouvées afin de pouvoir les fournir plus rapidement

la prochaine fois qu'on lui demandera. ( le temps du TTL du DNS)


Cela permet de ne pas de réinterroger tous les racines et les serveurs faisant autorités à chaque fois.

Cela explique que les DNS Racines ne sont pas très chargés car la plupart des requetes clients sont fournies via des résolveurs

qui ont la réponse en cache.

Plus le résolveurs est sollicité plus son cache sera fourni et moins il interrogera les serveurs racines.


http://www.info16.fr/ftpl/dns_resolution.png

Source www.afnic.fr


Il y a donc deux types de serveurs DNS:

  • Les Serveurs faisants autorité ( à différents niveaux)
  • Les resolveurs ( qui connaissent en durs les IP des racines)


Les serveurs faisant autorité ont l'autorité sur un domaine: c'est-à-dire que la réponse ne fait pas appel à un autre serveur ou à un cache

Les resolveurs  sont des serveurs qui vont intérroger les serveurs faisant autorité et mettre en cache les réponses pour les fournir à ses clients.


La plupart des utilisateurs de l'internet on peu ou pas conscience de ce fonctionnement.

L'utilisateur LAMBDA utilise sa box internet fourni par son FAI et navigue sans se poser de question.


La plupart du temps les box internet utilisent les résolveurs du Fournisseur d'accès.

PAr exemple :

Free:

212.27.40.240
212.27.40.241

Orange:
80.10.246.2
80.10.246.1291


SFR:

109.0.66.10
109.0.66.20

Et beaucoup d'autres...

http://www.ariase.com/fr/guides/adresses-dns.html


La censure via les DNS Menteurs

Mais alors mon FAI peut me renvoyer n'importe quelle adresse ? quand j'interroge un domaine ?

http://www.info16.fr/ftpl/censored-1680266_960_720.png

http://www.info16.fr/ftpl/smiley-1958283_960_720.png

OUI mon capitaine.

D'ailleurs si vous suivez l'actualité, des décrets français permettent d'obliger les FAI à bloquer, filtrer des sites internet

Sur décision de justice.

La réponse la plus simple des FAI est d'utiliser le mensonge DNS.


Par exemple cela à été le cas sur des sites de streaming, Torrent, etc ..

T411, Pirate Bay, libertyland, voirfilm ...

Mais aussi des sites islamistes, propagandes, etc ...

http://www.numerama.com/pop-culture/291796-apres-t411-libertyland-streamcomplet-et-voirfilms-se-font-bloquer-en-france.html


Vous allez me dire, oui... c'est pour notre sécurité, et c'est normal de bloquer ce qui est illégal.

On peut le voir comme cela en effet, si vous arrivez à dormir avec cela et que cela ne vous gène pas que

ce qu'on vous affiche à l'écran est ce qu'a décidé votre FAI et votre gouvernement, alors continuez comme cela.

Il faut des moutons :)

http://www.info16.fr/ftpl/face-47810_960_720.png


Pour ma part je milite pour la neutralité du NET depuis longtemps.

La Quadrature du NET en parle beaucoup mieux que moi : https://www.laquadrature.net/fr/neutralite_du_Net


On peut imaginer alors que ces résolveurs peuvent vous mentir à chaque instant et vous

envoyer l'adresse IP qui leur plait.

Pour par exemple:

  • Bloquer des sites
  • Vous envoyer sur des adresses publicitaires
  • Monetiser des sites
  • ...

Plus en détail, bortzmeyer.org. explique que « certains FAI prétendent mettre en place des DNS menteurs pour « le bien des clients »

alors qu'en réalité, ils sont poussés par des intermédiaires qui leur proposent de « monétiser » l'audience du site Web ainsi pointé, comme l'a bien expliqué le directeur technique de Free).


La preuve du mensonge.

http://www.info16.fr/ftpl/stepreuve.png

Vous allez me dire; oui mais comment prouver que mon résolveur me ment ?

En effet, il y a des cas facile et d'autres nons.

Dans certains cas, la résolution d'un nom de domaine par un resolveur menteur aboutit à la réponse 127.0.0.1

qui est votre adresse locale ce qui explique une page blanche ou une erreur dans votre navigateur.

Dans d'autres cas, le DNS va vous renvoyer un code erreur

Dans d'autre le DNS va vous envoyer sur une page de bloquage ou une publicité.



Exemple : Allez avec votre navigateur sur  http://streamcomplet.me/  ( juste pour voir, le téléchargement d'oeuvres protégées est illégales)


Avec mon résolveur:

Pour ma part en utilisant mon propre résolveur ( je vous en parlerait plus loin), le site s'affiche:

D'ailleurs il me redirige vers un autre domaine, car le site essaye déjà de contourner la censure

http://www.info16.fr/ftpl/streamok.png


La résolution DNS donne les adresses IP du FQDN

Moi@linux:~# dig streamcomplet.com +short

104.28.6.68
104.28.7.68

Avec le résolveur de mon FAI

Avec le résolveur de mon FAI ( je vous laisse deviner lequel)

Page blanche.


http://www.info16.fr/ftpl/streamnok.png

La résolution DNS renvoi 127.0.0.1

root@NAS:~# dig streamcomplet.com +short @212.27.40.241
127.0.0.1


La preuve avec les sondes ATLAS:

Il est difficile d'avoir une vue de l'internet depuis n'importe quel endroit du monde.

Qui me dit que l'internet est le même si je navigue depuis La France ou ou depuis l'Allemagne.

Pour cela il existe le projet  RIPE NCC , qui à un réseau de sonde Atlas.


Selon mon grand gourou Stéphane BORTZMEYER

http://www.bortzmeyer.org

Le réseau des sondes Atlas, créé et géré par le RIPE-NCC, couvre l'Europe (et au delà) de petites machines connectées à l'internet et qui effectuent en permanence des mesuresdiverses, qui servent par exemple de base aux très intéressants articles des RIPE Labs. Cela permet par exemple de détecter une bogue présente dans beaucoup de routeurs. Les Atlas ne savaient faire au début que des mesures commandées par le RIPE-NCC. Depuis quelque temps, les utilisateurspeuvent également commander des mesures selon leur goût, un système connu sous le nom d'UDM, User-Defined Measurements.


Ces petites sondes, tout le monde peut faire la demande d'en héberger et de la brancher sur sa connection internet.

Si RIPE NCC accepte votre demande vous recevrez votre petite sonde, qui contribuera à sonder la qualité de l'internet.


http://www.info16.fr/ftpl/201405_sonde_ripe_atlas_1.jpg


Héberger cette sonde vous permet de gagner des crédits chez https://atlas.ripe.net/

Ces crédit vous permettent de lancer des mesures internet depuis le site mais aussi depuis leurs APIs

Des scripts disponibles sur Github vous permettent d'utiliser ces API:

https://github.com/RIPE-Atlas-Community/ripe-atlas-community-contrib


J'ai la chance d'héberger une sonde, et donc de pouvoir faire ces mesures.

Parmis ces mesures on peut mesurer les DNS.


Reprenons l'éxemple de streamcomplet.com

En FRANCE

Nous allons utiliser le script atlas-resolve


% atlas-resolve --country FR --requested 100 streamcomplet.com
[ERROR: SERVFAIL] : 10 occurrences 
[104.28.6.68 104.28.7.68] : 47 occurrences 
[ERROR: NXDOMAIN] : 7 occurrences 
[127.0.0.1] : 35 occurrences 
[TIMEOUT(S)] : 1 occurrences 
Test #9327211 done at 2017-09-23T10:15:02Z


on lui demande, "résoud moi streamcomplet.com, depuis 100 sondes ATLAS  hébergées en FRANCE"

On obtient:

47 bonnes réponse sur 100 requetes ...

Ce domaine est donc en partie "censuré" en France


En ALLEMAGNE

Nous allons utiliser le script atlas-resolve

% atlas-resolve --country DE --requested 100 streamcomplet.com 
[104.28.6.68 104.28.7.68] : 100 occurrences 
Test #9327213 done at 2017-09-23T10:16:08Z

on lui demande, "résoud moi streamcomplet.com, depuis 100 sondes ATLAS  hébergées en FRANCE"

On obtient:

100 bonnes réponse sur 100 requetes !!!

Ce domaine ne subit pas de censure en Allemagne.

Mais alors !! Qu'est ce que je dois faire ??


http://www.info16.fr/ftpl/deep-thought-1296377_960_720.png


Les Resolveurs publics

Si vous vous interessez un peu à la question, les premières réponses qu'on trouve

sur le NET c'est:

Les DNS de ton FAI ce sont des menteurs, utilise les DNS de Google ; les fameux 8.8... !!! Eux ils te respectent

D'autres te diront Utilise ceux de Open DNS c'est les meilleurs et ils sont OPEN

D'autres réponses un peu moin bêtes vous recommande des Résolveurs associatif qui revendiquent la liberte du NET


Tout cela se discute sur plusieurs points:

Google --> Vous êtes sérieux ? certes ils ne sont pas connus pour mentir, mais encore cela peu changer

Mais vous vous doutez bien que c'est vous le produit, et que vos requetes seront utilisées d'une manière ou d'une autre.

Ceci dit vous utilisez surement leur moteur de recherche . ils savent dejà tout de vous.

Du moment que vous en êtes conscient ...


OpenDNS --> Cela pourrait paraitre une bonne idée à première vue, mais leurs intentions ne sont pas différentes

de celle de Google.

Ils vont même a vous ajouter de la Pub, quand le FQDN n'existe pas.

Tout cela est réglable dans leur interface, mais ma confiance en eux est toute relative.

NB; L'utilisation de OPEN DNS en tant que filtrage parentale peut apporter une solution à mondre cout

Si on est conscient du risque pourquoi pas.


Les DNS Associatifs et les autres  --> Certains DNS associatifs s'engagent sur la pureté des résolutions de nom (pas de censure...etc.)

comme les DNS proposés par FDN : 80.67.169.12 et 80.67.169.40.

pourquoi pas, ce serait le moins pire.

Mais encore une fois nous ne savons pas à 100% qu'ils respecteront leurs engagements,et si les resolveurs ne disparaitront pas du jour au lendemain


Il faut aussi voir le coté performance.

En règle général les resolveurs de vos FAI seront les plus rapides ( mais pas toujours)

Ils sont sur le même réseau que vous et sont donc censé etre plus performants.

Si vou ssouhaitez utiliser des résolveurs ouverts publics n'hésitez pas à tester leur temps de réponses avec dig par exemple

;; Query time: 59 msec
;; SERVER: 212.27.40.241#53(212.27.40.241)
;; WHEN: Sat Sep 23 14:54:36 CEST 2017
;; MSG SIZE  rcvd: 138


Avoir son propre résolveur.

http://www.info16.fr/ftpl/deoxyribonucleic-acid-1500068_960_720.jpg


J'en suis arrivé à la conclusion, que la moins pire des solutions est

d'utiliser son propre resolveur

Cela demande un peu ( très peu) de travail, mais c'est le seul moyen d'éviter les problèmes de DNS Menteur et

d'exploitation de vos requetes DNS

Le tout en gardant une meilleure performance.


Il y a plusieurs outils qui vous permettent de monter votre résolveur

Les plus connus : Unbound et BIND

Unbound est pas mal car beaucoup plus léger que BIND.

https://www.unbound.net/


Je ne vais pas écrire d'article sur comment monter un résolveur; Il y en a plein sur le NET.

Ce résolveur va lui même réaliser les requetes récursive depuis les racines et les mettre en cache

PAr conséquent, pas de censure, et vous maitrisez vos requetes DNS

de plus la performance est au rendez vous, puisque si votre resolveurs est local, la réponse

en cache sera quasi instantanée


Exemple d'une requete depuis un de mes postes clients, qui utilise mon resolveur local unbound


Premiere requete elle n'est pas en cache --> 176ms

Moi@NAS:~# dig www.info16.fr

;; QUESTION SECTION:
;www.info16.fr.                 IN      A

;; ANSWER SECTION:
www.info16.fr.          3600    IN      A       212.129.3.40

;; AUTHORITY SECTION:
info16.fr.              10800   IN      NS      b.dns.gandi.net.
info16.fr.              10800   IN      NS      c.dns.gandi.net.
info16.fr.              10800   IN      NS      a.dns.gandi.net.

;; Query time: 176 msec
;; SERVER: 10.0.0.254#53(10.0.0.254)
;; WHEN: Sat Sep 23 15:06:31 CEST 2017
;; MSG SIZE  rcvd: 119

On relance la même requetes --> Elle est instantanée 0ms

Moi@NAS:~# dig www.info16.fr

;; QUESTION SECTION:
;www.info16.fr.                 IN      A

;; ANSWER SECTION:
www.info16.fr.          3592    IN      A       212.129.3.40

;; AUTHORITY SECTION:
info16.fr.              10792   IN      NS      b.dns.gandi.net.
info16.fr.              10792   IN      NS      c.dns.gandi.net.
info16.fr.              10792   IN      NS      a.dns.gandi.net.

;; Query time: 0 msec
;; SERVER: 10.0.0.254#53(10.0.0.254)
;; WHEN: Sat Sep 23 15:06:39 CEST 2017
;; MSG SIZE  rcvd: 119


Il existe tout de même des inconvénients non négligeables.

Vous ne bénéficier pas de l'énorme cache du résolveur de votre FAI

Sur l'ensemble des requetes de tous ses clients, le cache emmagazine les informations et les fournis

sans faire de requetes récursive.


Vous solliciterez plus les serveurs racines et contribuerez à leur montée en charge.


Mais a mon avis cela reste la meilleures solution à l'heure actuelle.


Pour finir, c'est vrai que monter son resolveur, n'est pas toujours évident.

Surtout pour le grand public ( les entreprises c'est plus facile, elles bénéficient déjà d'infrastructures serveurs))

Avoir un petit serveur qui tourne dans un coin, ou un vrai serveur dédié demande de l'investissement et du temps


Pour ma part j'ai trouvé le compromis qui me convient : Cela est intégré dans mon routeur.

J'utilise ma Box en mode Bridge, ce qui me permet de mettre un vrai routeur / Firewall en frontal de ma connexion.

Pour cela j'utilise le magnifique PFSENSE que j'ai monté dans un petit boitier ALIX:

https://www.3cx.com/wp-content/uploads/2014/05/image02.png

http://blog.info16.fr/index.php?article62/remplacement-d-une-box-adsl-ovh-par-un-routeur-firewall-pfsense


Dans PFSENSE, le choix de faire un DNS Forwarder ou Resolver est possible: ( d'ailleurs PFSense utilise Unbound)



http://www.info16.fr/ftpl/2017-09-23%2015_19_06-pfSense.localdomain%20-%20Services_%20DNS%20Resolver.png







Simuler un réseau WAN en Local

WANem

J'ai été amené à rencontrer des problèmes de performances sur certains logiciels.
Ils fonctionnaient très bien sur un réseau local en Gigabit, mais avaient des performances excbrables en passant par un réseau WAN ( VPN)

Les éditeurs de logiciels ont rapidement l'habitude de vous renvoyer dans les cordes en vous disant que c'est votre connexion internet ou votre tunnel VPN qui bride leur application.

C'est pour cela, que j'ai eut besoin de "simuler" un réseau WAN dans un réseau local.
Ceci afin de tester comment réagit une application avec des bande passante et des latences plus élévées mais sans passer par un vrai réseau WAN
Ainsi l'éditeur ne peut pas se cacher derrière l'excuse internet.

J'ai cherché à droite à gauche et je suis tombé sur un outil "Open Souce" : WANem

Il s'agit d'une distribution Gnu/linux qui peut se mettre en coupure de 2 réseaux ( routage et NAT) et appliquer les caractéristiques WAN demandés

WANem lance une simple interface WEB permettant facilement de faire les réglages :
Au programme
  • Routage
  • NAT
  • Limitation Bande Passante
  • Latence
  • Gigue
Cette distribution est diponible ici :  wanem.sourceforge.net
Il suffit de télécharger l'ISO et de le lancer sur une machine physique ou virtuelle avec 2 cartes réseau.




Je suis parti sur ce type de réseau:




Pour les test je l'ai lancé dans une machine virtuelle simple avec 2 cartes réseaux:
Dès le lancement de la machine avec l'ISO
On arrive sur le paramétrage réseau



Je suis partis sur un routeur avec 2 réseaux:

  • 10.0.0.0/24
  • 192.168.0.0/24
IP LAN0 de WANem = 10.0.0.95/24
IP LAN1 de WANem = 192.168.0.254/24

Afin de ne pas avoir à créer de routes statiques sur mon lan pour joindre le 192.168.0.0/24 j'ai activé le NAT sur WanEM
La commande est simple:
 #nat add eth0



a partir de la mon pc client 192.168.0.1 devrait pouvoir accéder à mon server 10.0.0.100
Le tout étant routé et NATé par WANem

On test:





Le débit est tout de même un peu faible.. surement dut au fait du peu de ressource allouée à ma VM ( 1CPU / 256MO ram)



On accède à l'interface WEB de WANem : http://10.0.0.94/WANem



On paramètre la latence souhaité et la bande passante souhaitée.



Il existe aussi les options avancées ou tout est paramétrable !!!
simuler la gigue, la retransmission ...
Une mine d'or!








Nous avons bien limité la latence à 70ms
Nous avons bien limité le débit à 1Mbits/s

Nous avons réussi grace à une simple distribution à simuler un réseau WAN à l'intérieur de notre LAN.

Controle Parental Avec OpenDNS : Une solution alternative au Proxy

nasmaison Control Parental Avec OpenDNS : Une solution alternative

opendns logo


A la maison, les enfants commencent à toucher à tout.
Et à l'ère du numérique ils sont de plus en plus connectés.

Mon petit, a eut une tablette Android à son dernier Noel et sans le vouloir aboutit quelques fois sur des sites pas forcément recommandables.

j'y réfléchi depuis un petit moment : Comment filtrer facilement les accès internet sans pour autant se lancer dans l'usine à gaz.

Quelques solutions s'offrent à moi:

  • L'installation d'un logiciel de controle parental sur tous les équipement de la maison --> Trop lourd , pas centralisé
  • L'installation d'un Proxy filtrant type Squid + SquidGuard + DansGuardian --> Très bonne solution que j'ai déjà installé en entreprise et qui à fait ses preuves.
  • Utilisation des serveurs DNS de OpenDNS
  • La surveillance continue des actions de son enfant --> C'est indispensable mais on ne peut pas être là 24h/24
  • Pas d'internet :)
J'en oublie surement

La solution la plus sure et péreine est à mon avis le proxy.
Mais cela implique, un serveur qui tourne 24h/24 ( Même si ce n'est plus trop un problème puisque beaucoup d'entre nous on un nas qui tourne)
De plus cette solution nécessite pas mal d'installation et de configuration.

Au final pour commencer j'avais envie de tester la solution que propose OpenDNS en gratuit.

Le filtrage OpenDNS attaque le problème d'un angle différents: La résolution de nom.
C'est pas bête en effet quand on surl, une des première chose que fait notre machine est de résoudre le nom du site en adresse IP.
On pointe donc sur un serveur DNS à chaque requêtes ( hors cache)

C'est donc OpenDNS qui va se charger de filtrer !
En fonction du domaine demandé il va autoriser la requete ou pas, et rediriger vers une page de bloquage le cas échéant.

La première chose à faire est de se créer un compte OpenDNS; Même si ce n'est pas indispensable, cela va vous permettre de gérer vos catégories et de bénéficier de statistiques.
Dans les paramétrages de OpenDNS on entre son IP Publique.

opendnsconfig



Il y pas mal de paramétrages possibles; Notemment les règles de filtrages










Une fois votre compte paramétré à votre convenance, il suffit d'ajouter les serveurs DNS d'OpenDNS sur vos différentes machines.

Les adresses IP OpenDNS sont:

  • 208.67.220.220
  • 208.67.222.222
Voilà vous êtes protégés.
Un petit test sur un site bloqué:




J'ai voulu aller un peu plus loin, même si mes enfants ne sont pas encore en age de bricoler les options réseaux des équipements de la maison.
J'ai pris un peu d'avance pour essayer de vérouiller le truc.

Mes objectifs:
  • Forcer tous les équipements de la maison à utiliser OpenDNS ( sauf postes admins)
  • Ne pas être obligés de limiter les sessions utilisateurs sur les postes.
  • Eviter au maximum au système d'être contourné.

Les règles PfSense.

Pour forcer les équipements à utiliser les serveurs OpenDNS, il suffit d'ajouter ces DNS dans les paramètres DHCP de PfSense



J'ai mis des baux DHCP statiques pour les postes Admin avec les DNS de Google.




Pour éviter que l'on contourne le système, il faut bloquer les accès DNS depuis le LAN vers d'autres serveurs qu'OpenDNS

Par contre pour permettre au postes Admin de faire des reqêtes DNS sur tous les serveurs il faut leur créer une règle spécifique

J'ai utiliser la notion d'Aliases dans PfSense qui permet de définir un Objet groupant plusieures IP.



Les règles donnent ça:



L'ordre des règles a une importance

On authorise les admin en any vers l'exterieur sur le port 53
On authorise à tout le monde l'accès vers l'extérieur sur le port 53 des serveurs OpenDNS
on Bloque tous les accès vers l'extérieur sur le port 53

Voilà, en théorie on ne peut plus faire des requetes DNS vers l'extérieur sur d'autres serveurs que ceux de OpenDNS
Les admin peuvent requeter sur n'importe quels serveurs.

Ca à l'air de pas mal fonctionner.
Les équipements récupèrent en DHCP les bon dns filtrants.
Si un petit malin veut forcer les DNS en dur, les requetes sont bloqués au niveau du Firewall

Seuls les PC Admin font ce qu'ils veulent.

La seule faille est bien sur de prendre les IP Admins.
Mais j'ai encore un peu de temps devant moi pour trouver la parade.








Remplacement d'une Box ADSL OVH par un routeur / Firewall PfSense.

nasmaison Remplacement d'une Box ADSL par un routeur / Firewall PfSense.

PfSense


Voilà quelques temps que j'ai un accès ADSL OVH.
J'ai comme la majorité des gens utilisé un bon moment leur routeur livré en standard.
OVH envoi à ses abonnés le Technicolor TG788vn

technicolor


Ce n'est pas un mauvais modem routeur, mais je trouve son interface particulièrement lourde et les fonctionnalités assez limités.
Si on veut faire des conf un peu touchy il faut tout de suite les faire en ligne de commande. ( Et cela ne fonctionne pas toujours)

Il me manquait des fonctionnalités agréables tels que:
  • VPN ( IPSEC, PPTP, OpenVPN)
  • Un vrai firewall
  • Des logs dignent de nom
  • Gestion des DMZ
  • ...

J'ai cherché un petit moment et mon choix s'est porté sur PfSense.

2 Problèmes majeurs se présentaient:
  1. Sur quoi installer PsSense
  2. Comment continuer à bénéficier de la téléphonie OVH sans leur Box !!!

Installation de PfSense

  • Plateforme matérielle:
Je voulais un système qui consomme peu, silencieux, avec 3 ports réseaux.
Mon choix s'est porté sur un Boitier Alix 2D13
J'ai trouvé ce boitier d'occasion sur le bon coin à 100€


alix 2D13
  • Processeur : 500 MHz AMD Geode LX800 
  • DRAM : 256 MB DDR DRAM 
  • Stockage : CompactFlash 4GB ( non fournie)
  • Alimentation : DC jack or passive POE, min. 7V to max. 20V 
  • Trois diodes en facade arrière 
  • Extension : 1 slots miniPCI slots, sur bus LPC
  • Connectivité : 3 ports Ethernet (Via VT6105M 10/100) dont un port PoE

  • Installation logicielle.
Préparation de la carte Compact Flash:

Il faut en premier lieu , installer le systeme PfSense sur la carte CF.
Pour cela nous allons utiliser les images disques fournies par PfSense

L'installation de PfSense est relativement rapide.
N'inséréz pas encore la carte CF dans la boitier Alix,

https://www.pfsense.org/download/mirror.php?section=downloads

On choisi la version 32 Bits/ Nano BSD / Port Série / 4GB ( dépend de votre CF)

psense download

Une fois l'image récupérée il suffit de la copier en mode Bloc sur votre carte.
Pour Cela rien de tel qu'un bon vieux dd

On branche la carte CF sur un lecteur de carte CF et on copie l'image sur la carte.


Depuis un Linux, la commande ressemble à ça

#zcat pfSense-2.1.5-RELEASE-4g-i386-nanobsd.img.gz | dd of=/dev/sdc bs=16k

Voilà l'image est copiée

Attention !!!
J'ai galéré une journée entière... sur ce point là
J'avais une erreur du type : Can't load kernel...
J'ai fini par essayer un autre lecteur de carte USB et là miracle plus d'erreur.
Je pense que mon lecteur de carte générique, écrivait des blocs corrompus..


On insère la CF dans le boitier Alix , on branche un cable DB9 sur le port série + un adaptateur USB série.

Au départ de base le boitier Alix est en 38400Baud

Paramétrez votre client console avec ces paramètres 3600 / 8 / 1

Démmarez le boitier

On appui sur S rapidement dès le boot du boitier, et on arrive sur le Bios.

Comme PfSense utilise une connexion série en 9600bps, il vaut mieux paramétrer le bios de la même maniere.

PC Engines ALIX.2 v0.99h
640 KB Base Memory
261120 KB Extended Memory
01F0 - no drive found !
BIOS setup:
*9* 9600 baud (2) 19200 baud (3) 38400 baud (5) 57600 baud (1) 115200 baud
*C* CHS mode (L) LBA mode (W) HDD wait (V) HDD slave (U) UDMA enable
(M) MFGPT workaround
(P) late PCI init
*R* Serial console enable
(E) PXE boot enable
(X) Xmodem upload
(Q) Quit
Save changes Y/N ?

il suffit d'appuyer sur 9 pour passer en 9600baud et sauvegarder avec Y

Pour information; Le bios 0.99h est conseillé pour utiliser pFsense et CF
SI il n'est pas dans cette version je vous invite à le mettre à jour : https://doc.pfsense.org/index.php/ALIX_BIOS_Update_Procedure

Si tout c'est bien passé, en démarrant votre boitier, PfSense devrait booter:

boot-pfsense

L'installation est assez intuitive.
Elle va vous demander de choisir vos interfaces WAN / LAN
FreeBSD détecte vos carte réseau et leur donne un nom; En général ce nom dépend du construteur de la carte.

Pour moi les cartes du boitier Alix sont vr1, vr2, vr3
Asigner une adresse IP à votre carte LAN

Brancher la patte Lan de votre boitier Alix sur votre réseau Local

ET vous pouvez maintenant vous y connecter depuis l'interface Web
Pour ma part je n'ai pas paramétré l'interface WAN au départ car je souhaitais faire du PPPOE


  • Mon schéma réseau CIBLE:
lan maison

Voiçi le schéma de mon réseau complet à la maison.

Seule la partie Modem/Routeur est nouvelle
Je remplace ma Box ADSL par un Modem + PfSense sur boitier ALIX

Je branche mon modem sur la patte Wan de l'Alix et mon réseau local sur la patte LAN.

Et c'est parti pour l'interface Web.

web

Il ne reste plus qu'à paramétrer l'interface WAN en PPPOE - Avec login et mot de passe
Pour info pour OVH j'ai placé le MTU à 1456

pppoe


PfSense est connecté et à pris mon IP Publique.

JE vous laisse faire les paramétrages qui vous conviennent.
DNS, DHCP, NAT, Rules etc...


La téléphonie:

L'incovénient quand on utilise pas la Box OVH est qu'on ne bénéficie plus de la téléphonie.
Je voulais faire du SIP, mais OVH ne fournit pas les identifiants SIP...

Par contre ils ont eut l'intelligence de proposer des équipements préconfigurés SIP.
J'ai donc opté pour le boitier Cisco SPA112
spa112

Ce boitier permet de relier 2 téléphone analogiques.
Il s'occupe de la partie SIP
Il suffit donc de le relier sur le réseau local ( pour ma part je l'ai laissé en DHCP)

Pour info, chez OVH, il faut activer l'équipement dans votre manager afin que les appels soient bien renvoyé sur le boitier.
Comme OVH vous l'envoi préconfiguré, il n'y a rien à faire de plus.




Scripter des commandes à distance : EXPECT

Trim

Cela faisait un moment que je cherchais un outil capable d'envoyer une liste de commande à distance.
La pupart du temps quand on souhaite envoyer des commandes à distance, on est confronté au problème du mot de passe.
En effet il faut entrer le mot de passe et cela empêche de pouvoir scripter à distance...


  A quoi sa sert

Dans le cadre du travail, j'ai dut scripter quelques petites lignes de commandes pour backuper tous mes switchs. ( plus de 80 !!)
Avant de connaitre la fameuse commande, je me tappais les switchs 1 par 1... et du coup moins souvent.

Depuis j'ai découvert la commande EXPECT



Le script:

Après avoir installé le paquet expect sur votre distribution Gnu/Linux préférée vous pouvez commencer.

#!/usr/bin/expect
#expect.sh
set username admin
set password motdepasse
set tftp 192.168.1.10
set switch [lrange $argv 0 0]
set switchname [lrange $argv 1 1]


set timeout 60
spawn ssh $username@$switch
sleep 2
send "$password\n"
sleep 2
send "\031"
sleep 2
send "save config\n"
sleep 12
send "copy config tftp address $tftp filename $switch-$switchname.cc\n"
sleep 10
send "copy running-config tftp address $tftp filename $switch-$switchname.ascii\n"
sleep 2
send "exit\n"
interact


Vous l'aurez compris, le script est ultra simple, il va envoyer des commandes en ssh directement au switch.
expect permet en fait d'enchainer des commandes comme si vous tappiez vous même sur le clavier.

Ce genre de bidouille n'a bien sur pas vraiment d'interêt sur un systeme qui peut directement executer des scripts, par contre cela prend tout son sens sur des systèmes figés comme des switchs, des routeurs, des bornes Wifi etc...
Pour info le send "\031" correspond à un "Ctrl-Y" ( nécessaire pour se connecter sur des switchs Nortell)

Ce genre de script est utilisable dans de nombreuses situations !

Pour finir j'ai créer un autre script qui lance la commande précédente en boucle switch par switch.
#!/bin/bash
#backupswitchs.sh
#SWITCH1 192.168.1.1
#SWITCH2 192.168.1.2
#SWITCH3 192.168.1.3
#SWITCH4 192.168.1.4
#SWITCH5 192.168.1.5

SWITCHS=$(cat /root/backupswitchs.sh| grep "#" | grep "10." | awk '{print $2}')

for i in $SWITCHS
do
NAME=$(cat /root/backupswitchs.sh | grep -w $i | grep "#" | awk '{print $1}' | cut -d"#" -f2)
/root/expect.sh $i $NAME
done

Voilà, au final mes switchs sont backupés en TFP en binaire et en ascii :)

 

page 1 sur 11 suivante »