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

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. Ce qui peut être compliqué dans le cas d'un pfsense physique.

É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.1538690938.txt.gz · Dernière modification : 2018/10/04 22:08 de beu