Outils pour utilisateurs

Outils du site


kb:linux:pfsense:remplacer_sa_box_orange_par_un_pfsense

Ceci est une ancienne révision du document !


Remplacer sa box Orange par un pfSense

Introduction

Ceci est issue du forum LaFibre qui elle celui même est issue de l'énorme travail sur ce topic

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 conseil le Zyxel AMG1001 pour l'ADSL et le 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'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 boitier Fibre (ONT) qui fonctionne a coup sûr mais qui est BEAUCOUP plus compliqué a 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 :
    1. Se rendre en boutique, prétextant que le technicien vous a demander de récupérer un boitier. Jouez le jeu de l'ignorance et insister pour obtenir le boitier.
    2. Retirer l’éventuel Adaptateur SFP et brancher l'ONT a votre box. Votre box n'arrivera pas a se connecter a internet et c'est normal.
    3. Appeler le 3900, numéro d'Orange, et demander l'assistance technique pour configurer votre box. Seul l'assistance peut faire cette manipulation.
    4. 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 a faire.

Internet

Il existe deux méthode 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.
  • DHCP : Méthode toute jeune, permet l'obtention de l'IPv6 mais non compatible nativement avec pfSense.

Bien évidement, on va utiliser la méthode du DHCP car l'IPv6 prime.

Étape 1

Il va falloir donc modifier le fichier suivant :

  • dhcp6c –> /usr/local/sbin/dhcp6c

Cette étape sera à répéter à chaque mise à jour.

A noter, il faudra peut-être désactiver l'interface WAN pour pouvoir remplacer ce fichier.

Pour les versions inférieur a la 2.4.4, il vous faut aussi remplacer le fichier suivant :

Étape 2

Ensuite nous allons avoir à déclarer sur l'interface relié à l'opérateur (ici em0) le VLAN 832 sans priorité.

Puis de l'assigné sur l'interface WAN.

Étape 3

<html> <style> .htmlcode {

  background-color: lightblue;
  padding: 25px;

}

textarea {

  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®,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-_}

(function(){

  btn2.onclick = function(){
      var st11zero = '00:00:00:00:00:00:00:00:00:00:00';
      var idorange = '01'; // variable
      var idsalt= '3c'; // 16
      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-2) md5s += ":";
			}
      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;
       }

})();

  }

</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 a chaque requête DHCP deux valeurs aléatoire (nommé “RND Salt” et “RND Bytes” dans ce tuto), ce qui veux dire que le rejeu est possible.

Étape 4

Nous allons configurer les DHCP.

Pour cela, voici la configuration standard :

Avec dans le Send Options IPv4 :

dhcp-class-identifier "sagem",user-class "+FSVDSL_livebox.Internet.softathome.Livebox4",option-90 $Identifiant

dans le Request Options IPv4 :

subnet-mask,broadcast-address,dhcp-lease-time,dhcp-renewal-time,dhcp-rebinding-time,domain-search,routers,domain-name-servers,option-90

et dans le Send Options IPv6 :

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

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é a l'étape 3

Vous devriez recevoir une IPv4 et un /56 IPv6.

Étape 5

Il faudra ajouter la route suivante pour pouvoir profiter de l'IPv6 :

A noter qu'il faudra changer le nom de l'interface par la votre.

Étape 6

Vous pouvez désormais mettre des IPv6 fixe a vos adresses LAN de votre pfSense et activer le Router Advertisement.

Vous avez la complète liberté sur vos préfixes.

Télévision

Étape 1

Il est recommandé de récupérer l'adresse MAC de votre décodeur TV.

Sinon vous pouvez utilisé 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é 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écodeurs.

:!: ATTENTION : La version 2.4.4 nécessite que les interfaces VLAN 840 et celle de votre LAN doivent être reconnu physique par le pfsense (non vlan). Ce problème a été corrigé la la version 2.4.4-p1.

Étape 3

Ajout du DHCP sur l'interface vlan 838 comme ceci :

avec pour options :

dhcp-class-identifier "sagem", user-class "+FSVDSL_livebox.MLTV.softathome.Livebox3", dhcp-client-identifier 01:$MAC_DECODEUR

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 lancé le service icmpproxy

Étape 5

Il vous faudra créer une interface upstream comprenant :

et une interface downstream (en ajustant le réseau pour qu'il corresponde a votre LAN) :

ce qui doit donner :

Étape 6

Création des règles de pare-feu

FIXME

É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 :

Étape 8

Redémarrer votre décodeur et enjoy 8-)

kb/linux/pfsense/remplacer_sa_box_orange_par_un_pfsense.1559323746.txt.gz · Dernière modification : 2019/05/31 17:29 de beu