Outils pour utilisateurs

Outils du site


kb:linux:pfsense:remplacer_sa_box_orange_par_un_pfsense

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
kb:linux:pfsense:remplacer_sa_box_orange_par_un_pfsense [2018/09/24 16:21] beukb:linux:pfsense:remplacer_sa_box_orange_par_un_pfsense [2020/08/22 15:23] (Version actuelle) beu
Ligne 1: Ligne 1:
 ======Remplacer sa box Orange par un pfSense====== ======Remplacer sa box Orange par un pfSense======
  
-====Introduction====+=====Introduction=====
  
-Ceci est issue du forum [[https://lafibre.info/remplacer-livebox/remplacer-sa-livebox-par-un-routeur-pfsense/|LaFibre]] qui elle celui même est issue de l'énorme travail sur ce [[https://lafibre.info/remplacer-livebox/le-guide-complet-internet-tv-et-telephone-sans-livebox-et-bien-plus-plus/|topic]]+Ceci est issu du forum [[https://lafibre.info/remplacer-livebox/remplacer-sa-livebox-par-un-routeur-pfsense/|LaFibre]] qui elle celui même est issue de l'énorme travail sur ce [[https://lafibre.info/remplacer-livebox/le-guide-complet-internet-tv-et-telephone-sans-livebox-et-bien-plus-plus/|topic]]
  
-====Internet==== 
  
-Il existe deux méthode d'attribution d'IP chez Orange :+====Prérequis==== 
 + 
 +Il vous faudra un convertisseur de média compatible. Pour l'ADSL/VDSL il vous faudra un modem supportant la fonction bridge. Je vous conseille le [[https://www.amazon.fr/Zyxel-Passerelle-ADSL2-port-splitter/dp/B00HO1TJ8M/ref=sr_1_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=amg1001&qid=1559321858&s=gateway&sr=8-1 | Zyxel AMG1001]] pour l'ADSL et le [[https://www.amazon.fr/TP-Link-TD-W9970-Modem-Routeur-VDSL2/dp/B00YU23DI0/ref=sr_1_2?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=modem+vdsl&qid=1559321926&s=gateway&sr=8-2|TP Link TD W9970]] pour la VDSL. 
 + 
 +Pour la fibre, c'est plus complexe. Il vous faudra un équipement orange officiel, puisque qu'il faut le faire appairer par un technicien Orange. Il existe l'[[https://assistance.orange.fr/livebox-modem/toutes-les-livebox-et-modems/installer-et-utiliser/brancher-ou-debrancher-votre-livebox-modem/livebox-avec-terminal-optique-fibre-changer-l-adaptateur-sfp-ou-le-boitier-ont_250292-792081#onglet1|adaptateur SFP]] fournit par défaut, mais je ne sais pas si il est possible de le faire fonctionner avec un équipement classique (switch ou carte PCI). Il existe aussi le [[https://assistance.orange.fr/livebox-modem/toutes-les-livebox-et-modems/installer-et-utiliser/brancher-ou-debrancher-votre-livebox-modem/livebox-avec-terminal-optique-fibre-changer-l-adaptateur-sfp-ou-le-boitier-ont_250292-792081#onglet2|boitier Fibre (ONT)]] qui fonctionne à coup sûr mais qui est BEAUCOUP plus compliqué à récupérer. Voici quelques conseils pour le récupérer : 
 + 
 +  * __Méthode Simple__ - La demander au technicien lors de la mise en place de votre ligne. Il n'a aucune raison de vous la donner, seulement de la gentillesse (si il en a un avec lui). Il se chargera de l'appairer avec Orange. 
 +  * __Méthode Compliqué__ - En plusieurs étapes : 
 +    - Se rendre en boutique, prétextant que le technicien vous a demandé de récupérer un boitier. Jouez le jeu de l'ignorance et insister pour obtenir le boitier. 
 +    - Retirer l’éventuel Adaptateur SFP et brancher l'ONT à votre box. Votre box n'arrivera pas à se connecter a internet et c'est normal. 
 +    - Appeler le **3900**, numéro d'Orange, et demander l'assistance technique pour configurer votre box. Seule l'assistance peut faire cette manipulation. 
 +    - Expliquer que vous remplacer le boitier, et qu'il faut qu'elle ajoute le numéro de série du boitier pour qu'il fonctionne. Il faut moins de 5 minutes pour le faire, et l'assistance vous guidera sur les manipulations à faire. 
 + 
 +=====Internet===== 
 + 
 +Il existe deux méthodes d'attribution d'IP chez Orange :
   * PPPOE : L'ancestrale méthode de chez Orange, ne supporte que l'IPv4 dynamique et est nativement compatible avec pfSense.   * PPPOE : L'ancestrale méthode de chez Orange, ne supporte que l'IPv4 dynamique et est nativement compatible avec pfSense.
   * DHCP : Méthode toute jeune, permet l'obtention de l'IPv6 mais non compatible nativement avec pfSense.   * DHCP : Méthode toute jeune, permet l'obtention de l'IPv6 mais non compatible nativement avec pfSense.
Ligne 24: Ligne 38:
  
  
-Pour les versions inférieur a la 2.4.4, il vous faut aussi remplacer le fichier suivant :+Pour les versions inférieures a la 2.4.4, il vous faut aussi remplacer le fichier suivant :
  
   * {{ :kb:linux:pfsense:dhclient |}} --> /sbin/dhclient   * {{ :kb:linux:pfsense:dhclient |}} --> /sbin/dhclient
Ligne 38: Ligne 52:
 ===Étape 3=== ===Étape 3===
  
-Il va falloir transformer son identifiant Orange en base32, pour cela il suffit de lancer le script suivant :+<html> 
 +<style> 
 +.htmlcode { 
 +    background-colorlightblue; 
 +    padding: 25px; 
 +}
  
-<file bash fti.sh [enable_line_numbers="true"]> +textarea { 
-#!/bin/bash+    width: 100%; 
 +    height: 100px; 
 +
 +</style> 
 +       
 +  <script type="text/javascript"> 
 +    window.onload=function(){ 
 +       
 +var MD5 = function(d){result = M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_}
  
-USERNAME=$1 
-AUTHSTRING=00:00:00:00:00:00:00:00:00:00:00:66:74:69:2f 
  
-for (( i=0; i<${#USERNAME}; i++ )); do +(function(){ 
-        HEXCHAR=$(echo -n ${USERNAME:$i:1} | od -An -txC | xargs+    btn2.onclick = function(){ 
-        AUTHSTRING=${AUTHSTRING}:${HEXCHAR} +        var st11zero = '00:00:00:00:00:00:00:00:00:00:00'; 
-done +        var idorange = '01'; // variable 
-echo ${AUTHSTRING+        var idsalt= '3c'; // 16 
-</file>+        var idhash  = '03'; //1+16 
 +        var fixed = '1a:09:00:00:05:58:01:03:41'; 
 +         
 + function TLofTLS(id,l) { 
 +            var toAdd = l.toString(16).toUpperCase(); 
 +            if (toAdd.length<2) toAdd = '0' + toAdd; 
 +            return id + ':' + toAdd; 
 +
 +        function SofTLS (s) { 
 +          var i, toAdd; 
 +          var res = ''; 
 +          for(i = 0; i < s.length; i++) { 
 +              toAdd = s.charCodeAt(i).toString(16).toUpperCase(); 
 +              if (toAdd.length<2) toAdd = '0' + toAdd; 
 +              res += toAdd; 
 +              if (i<s.length-1) res += ":"; 
 +          } 
 +          return res; 
 +        } 
 +        var Orange = 'fti/'+orange.value; 
 +        var Salt = salt.value; 
 +        var Byte = byte.value; 
 +        var md5 = MD5(Byte + password.value + Salt).toString(); 
 +        console.log(md5); 
 +        var md5s ''; 
 +        for(i = 0; i < md5.length; i+=2) { 
 +        md5s += md5[i]+md5[i+1]; 
 +          if (i<md5.length-2md5s += ":"; 
 + } 
 +        console.log(md5s); 
 +        output.value = 
 +              st11zero + ':' + fixed + ':' + 
 +              TLofTLS(idorange,2+Orange.length)+ ':' + SofTLS(Orange)+ ':' + 
 +              TLofTLS(idsalt,2+16)+ ':' + SofTLS(Salt) + ':'
 +              TLofTLS(idhash,2+1+16)+ ':' + SofTLS(Byte) + ':' + md5s; 
 +         
 +})();
  
-avec pour argument les 7 caractères de l'identifiant Orange (après le fti/).+    } 
 + 
 +</script> 
 + 
 +</head> 
 +<body> 
 + 
 +<div class=htmlcode> 
 +Rédigé par <b>kgersen</b> via ce <a href="https://lafibre.info/remplacer-livebox/cacking-nouveau-systeme-de-generation-de-loption-90-dhcp/">topic lafibre.info</a><br> 
 +<hr> 
 +login Orange : fti/<input id="orange" placeholder="identifiant Orange"/><br> 
 +mot de passe Orange: <input id="password" placeholder="password"/><br> 
 +RND Salt: <input id="salt" placeholder="16 ASCII Charts"/ maxlength="16" size="16"><br> 
 +RND Bytes: <input id="byte" placeholder="1 ASCII Charts" maxlength="1" size="12"/> 
 +<br>(exécution sur le navigateur, rien ne transit sur le réseau)<br> 
 +<hr> 
 +<button id="btn2">Générer la chaine</button><br> 
 + 
 +$Identifiant :<textarea id="output" placeholder=""></textarea><br> 
 + 
 +   
 +</body> 
 +</div> 
 +</html> 
 +Note:\\ 
 +La box génère à chaque requête DHCP deux valeurs aléatoires (nommé "RND Salt" et "RND Bytes" dans ce tuto), ce qui veut dire que le rejeu est possible.
  
 ===Étape 4=== ===Étape 4===
Ligne 66: Ligne 152:
  
 <code> <code>
-dhcp-class-identifier "sagem",user-class "+FSVDSL_livebox.Internet.softathome.Livebox4",option-90 XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX+dhcp-class-identifier "sagem",user-class "+FSVDSL_livebox.Internet.softathome.Livebox4",option-90 $Identifiant
 </code> </code>
  
Ligne 72: Ligne 158:
  
 <code> <code>
-subnet-mask,broadcast-address,dhcp-lease-time,dhcp-renewal-time,dhcp-rebinding-time,domain-search,routers,domain-name-servers,rfc3118-auth+subnet-mask,broadcast-address,dhcp-lease-time,dhcp-renewal-time,dhcp-rebinding-time,domain-search,routers,domain-name-servers,option-90
 </code> </code>
  
Ligne 78: Ligne 164:
  
 <code> <code>
-ia-pd 0, raw-option 15 00:2b:46:53:56:44:53:4c:5f:6c:69:76:65:62:6f:78:2e:49:6e:74:65:72:6e:65:74:2e:73:6f:66:74:61:74:68:6f:6d:65:2e:6c:69:76:65:62:6f:78:33,raw-option 16 00:00:04:0e:00:05:73:61:67:65:6d,raw-option 6 00:0b:00:11:00:17:00:18,raw-option 11 XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX+ia-pd 0, raw-option 15 00:2b:46:53:56:44:53:4c:5f:6c:69:76:65:62:6f:78:2e:49:6e:74:65:72:6e:65:74:2e:73:6f:66:74:61:74:68:6f:6d:65:2e:6c:69:76:65:62:6f:78:33,raw-option 16 00:00:04:0e:00:05:73:61:67:65:6d,raw-option 6 00:0b:00:11:00:17:00:18,raw-option 11 $Identifiant
 </code> </code>
  
-A noter que le XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX est le contenu obtenu l'étape 3.+Oubliez pas de remplacer la valeur "$Identifiant" de l'option 90 en IPv4 et de l'option 11 en IPv6 par celle générée a l'étape 3
  
 Vous devriez recevoir une IPv4 et un /56 IPv6. Vous devriez recevoir une IPv4 et un /56 IPv6.
Ligne 91: Ligne 177:
 {{ :kb:linux:pfsense:route.png |}} {{ :kb:linux:pfsense:route.png |}}
  
-A noter qu'il faudra changer le nom de l'interface par la votre.+A noter qu'il faudra changer le nom de l'interface par la vôtre.
  
 ===Étape 6=== ===Étape 6===
Ligne 99: Ligne 185:
 Vous avez la complète liberté sur vos préfixes. Vous avez la complète liberté sur vos préfixes.
  
-====Télévision====+=====Télévision===== 
 + 
 +===Étape 1=== 
 + 
 +Il est recommandé de récupérer l'adresse MAC de votre décodeur TV.  
 + 
 +Sinon vous pouvez utiliser celle-ci : 5e:ff:56:a2:af:15 
 + 
 +===Étape 2=== 
 + 
 +Il vous faut créer les deux interfaces VLAN 838 et 840 sur la même interface physique que celle utilisée pour Internet. 
 + 
 +Le VLAN 840 est utilisé pour la télévision en direct alors que le VLAN 838 est utilisé pour la VOD, et tous les services annexes du décodeur. 
 + 
 +:!: ATTENTION : La version 2.4.4 nécessite que les interfaces VLAN 840 et celle de votre LAN doivent être reconnus physique par le pfsense (non vlan). Ce problème a été corrigé dans la version 2.4.4-p1.  
 + 
 +===Étape 3=== 
 + 
 +Ajout du DHCP sur l'interface vlan 838 comme ceci : 
 + 
 +{{ :kb:linux:pfsense:conf_tv.png |}} 
 + 
 +avec pour options : 
 + 
 +<code> 
 +dhcp-class-identifier "sagem", user-class "+FSVDSL_livebox.MLTV.softathome.Livebox3", dhcp-client-identifier 01:$MAC_DECODEUR 
 +</code> 
 + 
 +Notez bien le 01 avant la valeur $MAC_DECODEUR 
 + 
 +===Étape 4=== 
 + 
 +Il vous faudra attribuer une IP a l'interface VLAN 840 afin de pouvoir lancer le service **icmpproxy** 
 + 
 + 
 +===Étape 5=== 
 + 
 +Il vous faudra créer une interface upstream comprenant : 
 + 
 +{{ :kb:linux:pfsense:upstream_igmp.png?800 |}} 
 + 
 +et une interface downstream (en ajustant le réseau pour qu'il corresponde a votre LAN) : 
 + 
 +{{ :kb:linux:pfsense:downstream_igmp.png?800 |}} 
 + 
 +ce qui doit donner : 
 + 
 +{{ :kb:linux:pfsense:result_igmp.png?800 |}} 
 + 
 +===Étape 6=== 
 + 
 +Création des règles de pare-feu. 
 + 
 +FIXME : Je n'ai pas eu le temps d'expérimenter des règles fines. J'ai donc sur chaque interface WAN de la TV créer une règle totalement ouverte avec l'option **Allow IP options** activée. Si jamais vous avez le lot de règles plus sécurisée et fonctionnel, contactez-moi. 
 + 
 +===Étape 7=== 
 + 
 +Il vous faudra créer un bail DHCP Statique afin de définir des serveurs DNS spécifique a ce même décodeur : 
 + 
 +{{ :kb:linux:pfsense:dhcp_statique.png |}} 
 + 
 +===Étape 8===
  
-FIXME+Redémarrer votre décodeur et enjoy 8-)
kb/linux/pfsense/remplacer_sa_box_orange_par_un_pfsense.1537806100.txt.gz · Dernière modification : 2018/09/24 16:21 de beu