option dhcp119 – Search Domains

 Sans catégorie  Commentaires fermés sur option dhcp119 – Search Domains
Fév 022019
 

Je voulais passer plusieurs domaines de recherche dans l’option dhcp 119. Après plusieurs essais, mon client dhcp me dit toujours « suspect value in domain_search option – discarded »

Je cherche un peu sur le net, et il s’avère qu’il y a une syntaxe
rigolotte décrite dans la RFC3397

ci dessous un encodeur fait à l’arrache pour générer la chaine en hexadécimal correspondant a une liste

#include <stdio.h>

int main(void) {

    const char * StrToEncode = "lan chez.moi.net ailleurs.com";

    const char * ptrA = StrToEncode;
    const char * ptrB = StrToEncode;

    printf("\nSTART\n");

    printf("Chaine initiale : '%s'\n", StrToEncode);
    printf("Chaine resultat : '0x");

    while (1) {
        int cpt=0;
        const char * ptrB=ptrA;

        while (1) {
            if ( *ptrA =='\0' ) break;
            if ( *ptrA =='.' ) break;
            if ( *ptrA ==' ' ) break;
            cpt++;
            ptrA++;
        }

        printf("%02x", cpt);

        while ( ptrB != ptrA ) {
            printf("%02x", *ptrB);
            ptrB++;
        }

        if ( *ptrA ==' ' ) printf("00");        //separateur
        if ( *ptrA =='\0' ) { printf("00'\n");  break; }   //Fin de chaine

        ptrA++;
    }

    printf("END\n");
    return 0;
}

Client OpenVpn sur routeur Mikrotik

 Sans catégorie  Commentaires fermés sur Client OpenVpn sur routeur Mikrotik
Jan 162017
 

Petites mises au point

Mikrotik ne permet pas toutes ce que openVPN permet usuellement.
Pour faire simple :

  • Mode TCP obligatoire (même pas réglable)
  • Utiliser exclusivment le mode IP (mode ethernet au comportement plus qu’étrange si on tente du bridging donc, si c’est pour finir par faire du L3 dessus, c’est sans intéret)
  • Il y a une seule instance du serveur (On ne peut pas en mettre polusieurs sur plusieurs ports avec des conf différentes
  • Utilisation du mode d’authentification « user/password » (presque) obligatoire

Donc.

Etape1 : Générer les certificats.
C’est plus simple en SSH

/certificate
add ca-template key-usage=key-cert-sign,crl-sign days-valid=3650 key-size=4096
country=FR organization=orgName common-name=CA+orgName

ça, ça crée juste un template (cert request avec tout les params)
A noter que ca-template est en fait un nom tout à fait libre. C’est juste un identifiant. Mais c’est plus parlant de mettre un nom qui correspond à ce qu’on va faire et d’y integrer le mot clé « template » pour bien piger que c’est pas un certificat fini.

(auto) Signature

sign ca-template name=CA+orgName

A noter que le champs name est en fait libre. C’est juste un identifiant. Mais c’est plus parlant de le rendre égal au common-name.
Comme il n’y a aucun ca spécifié, il crée un autosigné.

set trusted=yes

Tada! Ce certif est desormais un CA.

export-certificate CA+orgName

Le certificat CA est exporté sous forme de fichier (section /files)
Il y en aura besoin pour le client openVPN

Création d’un Certif serveur pour OpenVpn

add name=server-template key-usage=digital-signature,key-encipherment,data-encipherment,crl-sign,tls-server,tls-client days-valid=3650 key-size=2048
country=FR organization=orgName common-name=OvpnServer

Idem, le champs name est en fait libre. C’est juste un identifiant.

sign server-template name=OvpnServer ca=CA+orgName

Re-Idem, le champs name est en fait libre. Mais c’est plus parlant de le rendre égal au common-name.
la signature se fait avec la clé du CA spécifié. (Il faut que cette clé ait l’attribut key-cert-sign, ce qu’on a fait plus haut)

Configuration du serveur OpenVpn

/ppp profile
add change-tcp-mss=yes name=default_ovpn use-compression=no use-encryption=yes use-mpls=no
/interface ovpn-server server
set certificate=OvpnServer cipher=aes256 default-profile=default_ovpn enabled=yes keepalive-timeout=30 max-mtu=1400

Configuration du client OpenVpn

Installer le client openvpn sur la machine.

Aller dans le dossier de configuration (Il n’y a pas de GUI config)
Y déposer le fichier CA.crt créé plus haut.

créer un fichier texte monvpn.ovpn

client
dev tun
proto tcp
remote 89.83.98.218 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca nomdufichier.crt ///// a  modifier
auth-user-pass login.txt
tun-mtu 1400
mssfix
route-nopull
route 10.25.0.0 255.255.0.0 ///// a  modifier : Réseau auquel le client accède
cipher AES-256-CBC
verb 4

créer un fichier texte login.txt

myusername
mekmitasdigoat

Cliquez sur connecter,
C’est fini