iptables allow dns traffic

  • Hallo,


    ich nutze folgende Befehle um die iptables Regeln für DNS zu erstellen:

    Code
    # allow traffic for dns
    DNS_SERVERS="84.200.69.80 84.200.70.40 46.38.225.230 46.38.252.230"
    for DNS_IP in $DNS_SERVERS
    do
        sudo iptables --append OUTPUT --destination $DNS_IP --protocol udp --destination-port 53 --jump ACCEPT
        sudo iptables --append INPUT --source $DNS_IP --protocol udp --source-port 53 --jump ACCEPT
        sudo iptables --append OUTPUT --destination $DNS_IP --protocol tcp --destination-port 53 --jump ACCEPT
        sudo iptables --append INPUT --source $DNS_IP --protocol tcp --source-port 53 --jump ACCEPT
    done

    Leider funktioniert die Namensauflösung anschließend nicht.


    Die Namensauflösung funktioniert mit folgenden Regeln, wenn ich --source und --destination weg lasse:

    Code
    sudo iptables --append OUTPUT --protocol udp --destination-port 53 --jump ACCEPT
    sudo iptables --append INPUT --protocol udp --source-port 53 --jump ACCEPT
    sudo iptables --append OUTPUT --protocol tcp --destination-port 53 --jump ACCEPT
    sudo iptables --append INPUT --protocol tcp --source-port 53 --jump ACCEPT


    Weiß jemand warum erstere Befehle nicht das gewünschte Ergebnis liefern?


    Vielen Dank und viele Grüße

  • Ja, für mich ist das logisch.

    Code: Output
    sudo iptables --append OUTPUT --destination $DNS_IP --protocol udp --destination-port 53 --jump ACCEPT

    Grund: Bei Destination ist nicht die IP Adresse vom Server gemeint, sondern die Zieladresse (Entfernte IP aus dem Internet)


    Code: Input
    sudo iptables --append INPUT --source $DNS_IP --protocol udp --source-port 53 --jump ACCEPT

    Grund: Bei Source ist auch nicht IP Adresse vom Server gemeint, sondern die Quelladresse (Enfernte IP aus dem Internet)

    Mit freundlichen Grüßen
    Track1991

  • Folgende Ausgaben wären ganz hilfreich, um das eingrenzen zu können:

    Code
    iptables -n -v --list
    ip6tables -n -v --list
    
    cat /etc/resolv.conf
    dig A example.net

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • `systemd-resolve --status` gibt folgende Ausgabe:

  • Folgende Ausgaben wären ganz hilfreich, um das eingrenzen zu können:

    Code
    iptables -n -v --list
    ip6tables -n -v --list
    
    cat /etc/resolv.conf
    dig A example.net
  • Ich nutze Ubuntu 18 LTS. Die nameserver werden wie hier beschrieben via netplan konfiguriert:


    Code
    network:
        ethernets:
            ens3:
                nameservers:
                    addresses:
                        # according to https://dns.watch/
                        - 84.200.69.80
                        - 84.200.70.40
    /etc/netplan/60-nameserver.yaml (END)


    Die anderen beiden nameserver werden wohl über DHCP von netcup eingebunden.


    Code
    network:
        ethernets:
            ens3:
                dhcp4: true
        version: 2
    /etc/netplan/50-cloud-init.yaml (END)
  • ok .. sorry, die Ausgabe von `iptables --list` oben ist nicht korrekt. Das war von einem anderen Test. Hier die korrekte Ausgabe: (leider kann ich den Beitrag nicht editieren :cursing:)


  • ich konnte das Problem lösen :)


    folgende Zeile hat gefehlt:

    Code
    sudo iptables --append OUTPUT --out-interface lo --jump ACCEPT

    Herausgefunden hab ichs, indem ich eine LOG Zeile eingefügt habe und das Log beobachtet habe. Anleitung:


    Log für ankommende udp Pakete auf Port 53 aktivieren mit:

    Code
    sudo iptables --append OUTPUT --protocol udp --destination-port 53 --jump LOG

    in einem anderen Terminal Fenster das Log beobachten mit:

    Code
    tail --follow /var/log/kern.log

    ein DNS Lookup ausführen mit zum Beispiel:

    Code
    dig ecosia.org

    Wer sich für die aktuell funktionierende Konfiguration interessiert, kann mich gerne anschreiben.


    Vielen Dank und liebe Grüße und schöne Feiertage euch allen

  • Wer sich für die aktuell funktionierende Konfiguration interessiert, kann mich gerne anschreiben.

    Mach die Lösung Bitte ganz Öffentlich, weil das Forum bei Netcup schon einigen geholfen hat und dadurch keine neuen Formbeiträge mehr entstehen.

    Wünsche auch Frohe Weihnachten.

    Mit freundlichen Grüßen
    Track1991