Hello la communauté 🙂

J'utilise pour le moment Liberador (https://liberador.net/fr/) et leur DNS pour accéder à Molotov depuis la Belgique. J'aimerais toutefois ne plus passer par leur service mais bien par mon dédié Kimsufi à la place. Étant une demi quiche en réseau, j'aimerais savoir si l'un ou l'autre d'entre vous pourrait m'aider à mettre ça en place.

PS : J'ai un openvpn sur mon dédié, mais malheureusement on ne sait pas mettre de client VPN sur Apple TV 😢

Merci d'avance 🙂

Il te faut un serveur DNS récursif. Installe Unbound (par exemple) sur ton serveur :

apt-get install unbound
curl -s -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache
unbound-anchor -a /etc/unbound/root.key
chmod 775 /etc/unbound
chown -R unbound:unbound /etc/unbound
# /etc/unbound/unbound.conf

server:
  interface: 0.0.0.0
  interface: ::0 
  access-control: IP/cidr allow
  access-control: 127.0.0.0/8 allow
  root-hints: "/etc/unbound/root.hints"
  auto-trust-anchor-file: "/etc/unbound/root.key"
  verbosity: 1
  port: 53
  do-ip4: yes
  do-ip6: yes
  do-udp: yes
  do-tcp: yes
  do-daemonize: yes
  username: unbound
  qname-minimisation: yes
  minimal-responses: yes
  hide-identity: yes
  hide-version: yes
  harden-glue: yes
  harden-dnssec-stripped: yes
  harden-referral-path: yes
  use-caps-for-id: yes
  prefetch: yes

Démarre le service et ça devrait être bon.

Oublie pas de mettre ton IP publique (la tienne, pas celle du serveur) dans l'ACL access-control: IP/cidr allow pour ne pas que ce soit un serveur récursif ouvert. Si tu mets 0.0.0.0/0, il pourra être utilisé pour faire des attaques DNS par amplification. Donc évite de faire ça, surtout qu'OVH le détectera et te coupera ton serveur.

Donc si ton IP publique est 1.2.3.4 alors l'ACL ressemblera à access-control: 1.2.3.4/32 allow.

Plus d'info :

http://www.bortzmeyer.org/dns-attaque-ns-point.html
http://www.bortzmeyer.org/fermer-les-recursifs-ouverts.html
https://www.cloudflare.com/learning/ddos/dns-amplification-ddos-attack/

Doc de Unbound et exemple de configuration :

https://www.unbound.net/documentation/unbound.conf.html
https://calomel.org/unbound_dns.html

  • winz a répondu à ça.

    Hello Hardware merci pour ta réponse rapide et précise 🙂 !

    J'ai suivi tes instructions et essayé de lancer le service via

    service unbound start
    

    Mais j'ai l'impression que quelque chose coince.

     unbound.service - Unbound DNS server
       Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled)
       Active: failed (Result: exit-code) since Fri 2018-03-30 21:30:22 UTC; 2s ago
         Docs: man:unbound(8)
      Process: 14908 ExecStart=/usr/sbin/unbound -d $DAEMON_OPTS (code=exited, status=1/FAILURE)
      Process: 14902 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exited, status=0/SUCCESS)
      Process: 14897 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/SUCCESS)
     Main PID: 14908 (code=exited, status=1/FAILURE)
    
    Mar 30 21:30:22 ns351133 systemd[1]: unbound.service: Failed with result 'exit-code'.
    Mar 30 21:30:22 ns351133 systemd[1]: unbound.service: Service hold-off time over, scheduling restart.
    Mar 30 21:30:22 ns351133 systemd[1]: Stopped Unbound DNS server.
    Mar 30 21:30:22 ns351133 systemd[1]: unbound.service: Start request repeated too quickly.
    Mar 30 21:30:22 ns351133 systemd[1]: Failed to start Unbound DNS server.
    Mar 30 21:30:22 ns351133 systemd[1]: unbound.service: Unit entered failed state.
    Mar 30 21:30:22 ns351133 systemd[1]: unbound.service: Failed with result 'exit-code'.
    

    J'ai retrouvé ceci dans le syslog

    Mar 30 21:30:22 ns351133 unbound[14908]: [1522445422] unbound[14908:0] error: can't bind socket: Address already in use for 0.0.0.0
    Mar 30 21:30:22 ns351133 unbound[14908]: [1522445422] unbound[14908:0] fatal error: could not open ports
    

    En creusant encore un peu et changeant le port 53 en 553 le service à l'air de se lancer 🙂. Et en ajoutant le DNS sur mes devices j'ai bien une connection 🙂 !

    Par contre je suis toujours detecte en belgique 😞. Plus qu'à ajouter quelques forward zones j'imagine ? Comme ici ? https://www.reddit.com/r/NetflixByProxy/comments/4prvor/how_to_use_smartdns_services_securely/ Si t'as des pistes pour m'aider à forward, je suis preneur 🙂 Merci

    Tu as pas besoin de forward à d'autres serveurs DNS, la conf que je t'ai donné va directement chercher ce qu'il faut à partir des serveurs racines (puis ceux des TLDs jusqu'aux serveurs autoritaires en bout de chaine). Par contre, tu peux pas changer le port, il faut laisser le 53/udp.

    Regarde ce qui écoute sur le port 53 (netstat -tulpn) et arrête le service.

    • winz a répondu à ça.

      Hardware Apparemment il s'agirait de named

      udp 0 0 127.0.0.1:53 0.0.0.0:* 574/named

      J'ai stop bind9 et je peux désormais run sur le port 53. Par contre toujours détecté en Belgique :p

      Tu es sûr que ton appareil utilise bien ton serveur DNS ?

      • winz a répondu à ça.

        Hardware Quasiment certain oui, si je l’enlève ou change l'ip j'ai plus d'access. Et je vois aussi des stats dans mes logs unbound. J'ai également testé sur mon windows et c'est pareil malheureusement.

        Essaye de forward alors pour voir si ça change quelque chose.

        Comme ceci ?

        forward-zone:
          name: "molotov.tv"
          forward-addr: <IP de mon dedié> 
        

        Mmmh les calls vers molotov.tv ne fonctionne plus en faisant comme ca 😔 .
        J'ai essayé de faire pareil pour netflix et résultat similaire 😢

        Bon en fait j'avais pas bien compris le fonctionnement de liberator.net, c'est un smart proxy/DNS en fait donc la mise en place d'un tel service de manière self-hosted est plus complexe que de simplement installer un serveur DNS récursif. Tu peux regarder https://github.com/ab77/netflix-proxy et essayer de faire quelque chose de similaire pour Molotov.

        Ce projet utilise dnsmasq comme serveur DNS et sniproxy comme proxy HTTP(S) :

        https://github.com/dlundquist/sniproxy

        Merci @Hardware, je viens de tester sur un VPS Scaleway et ca marche au top ! J'aurais bien aimé faire ca sur mon dédié directement malheureusement je connais absolument rien à docker :/

        Répondre…