PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bind9 spinnt...



Tuneman
04.06.03, 12:13
Hallo,

ich habe ein komisches Problem... Ich wollte meinen Rootserver als Nameserver konfigurieren. Er läuft mit SuSE 8.2 und ich habe Bind 9.2.2 installiert.
Nun wollte ich Bind starten (ein bind-Script wurde in etc/init.d erstellt) und habe "bind start" eingetippt. Eigentlich sollten doch jetzt ein paar Bestätigungs-Zeilen kommen! Kommen aber nicht, stattdessen fehlt ab sofort das "s". "ls" eintippen geht also nicht mehr. Tippe ich (nach neuem log-in) "bind restart" ein, fehlt danach das "r".
:confused:
Weiß jemand, warum Bind nicht richtig startet?

Vielen Dank im voraus

mamue
04.06.03, 12:57
ich dachte immer, es hiesse rcbind start?
eigenartig ist das trotzdem. Was steht denn in den logfiles? Ausserdem würde ich erstmal mit rcbind status erfragen, ob er denn ordentlich läuft.

Bin aber ganz sicher kein DNS Experte

mamue

Tuneman
04.06.03, 20:23
Hallo,

danke für Deine Antwort. "rcnamed" ergibt nur eine Fehlermeldung, war bei Bind8 der Startbefehl (soweit ich weiß...).

"dig" funktioniert auch, aber nslookup von einem externen Rechner läuft nicht...

Gruß
Tuneman

Tuneman
04.06.03, 20:24
...noch eine Frage...

wo finde ich denn die Logfiles, und in welchem File steht evtl. etwas?

cycomate
05.06.03, 10:05
"bind" ist ein bash builtin.
Wenn Du also - in der Annahme, das startscript hieße 'bind' - "bind restart" eingegeben hast, wurde das "r" (von "restart") neu gemapped.

Davon abgesehen lautet das startscript bei keiner mir bekannten Distribution "bind", sondern "named" (evtl. mit Zusätzen) oder "rcbind".

Tip: startscripte /immer/ mit einem Pfad aufrufen ("/etc/rc.d/init.d/bind start"), sonst kann u.U. noch viel mehr schiefgehen.

Nachtrag: die logfiles sind grundsätzlich die /var/(log|adm)/messages und die, die Du in der Konfiguration angegeben hast (/etc/named.conf).

Tuneman
05.06.03, 10:57
Hallo cycomate,

vielen Dank für Deine Antwort. Das Startscript heißt "bind", und ich habe Verschiedenes ausprobiert:

root:/ # /etc/init.d/bind start
-bash: /etc/init.d/bind: Permission denied

Wieso kann ich nicht zugreifen? Ich habe es doch auch erstellt.

root:/ # named
root:/ # named status
usage: named [-c conffile] [-d debuglevel] [-f|-g] [-n number_of_cpus]
[-p port] [-s] [-t chrootdir] [-u username]
named: extra command line arguments

Welche Zusätze gibt es und was kann man damit machen? Hast Du vielleicht einen Link, wo "named" erklärt wird?

"named checkconf" und "named checkzone 'zonefile'" funktioniert, danach lief dann auch nslookup, zwar nur mit non-authorative answer, aber das liegt wohl an den zonefiles... Muss ich später mal nachschauen.

root:/ # rcbind
-bash: rcbind: command not found


Im log stammt der letzte Eintrag vom 27. Mai, sonst habe ich auch nichts gefunden...


Gruß
Tuneman

Eagle
05.06.03, 11:23
Hallo,

bei mir tritt unter SUSE 8.2 dasselbe Problem auf. Mit den gleichen Zonemdateien etc. wie unter 8.1
konfiguriert, liefert mir BIND 9:

rcnamed start
Starting name server BIND 9 failed

Offensichtlich ist da ein bißchen mehr faul. Weiß dazu jemand bereits Abhilfe?


Gruß

Eagle

cycomate
17.06.03, 21:23
Sry, war die letzten Tage nicht da.

Original geschrieben von Tuneman
root:/ # /etc/init.d/bind start
-bash: /etc/init.d/bind: Permission denied
chmod 755 /etc/init.d/bind

Wieso kann ich nicht zugreifen? Ich habe es doch auch erstellt.
Was heißt "erstellt"?

root:/ # named
root:/ # named status
usage: named [-c conffile] [-d debuglevel] [-f|-g] [-n number_of_cpus]
[-p port] [-s] [-t chrootdir] [-u username]
named: extra command line arguments
named -u named # droppt z.B. die root privileges auf den user "named"
named -t /var/dns # schließt den named in ein jail innerhalb von /var/dns ein
named -c /etc/named.conf # gibt als configfile die Datei /etc/named.conf an
notfalls mal man named probieren.

"named checkconf" und "named checkzone 'zonefile'" funktioniert, danach lief dann auch nslookup, zwar nur mit non-authorative answer, aber das liegt wohl an den zonefiles... Muss ich später mal nachschauen.
höchstens "named-checkconf" und "named-checkzone". Diese sind aber nur für die Syntaxprüfung der Konfigurationsdatei bzw. Zonendatei.

root:/ # rcbind
-bash: cbind: command not found
Am besten, Du schaust mal mittels "rpm -ql named" oder "rpm -ql bind" oder "rpm -ql bind9" (je nachdem, wie SuSE das Paket nennt), wie die einzelnen Dateien heißen. Zwar kann man named auch direkt starten, vorteilhafter ist es aber über die initdatei in /etc/rc.d/init.d/.

Tuneman
17.06.03, 21:48
Hallo cycomate,

vielen Dank für Deine Ausführungen. Es hat sich etwas gelichtet im DNS-Dschungel...

Es war auf dem Server Bind8 installiert und auch aktiv. Meine Installation von 9.2.2 hat nicht funktioniert, habe aber dann über yast 9.1.3 installiert. Das läuft jetzt auch (sogar im Käfig). Es war dann nur noch ein Fehler im von yast bzw. automatisch erstellten Startscript (Ordner falsch angegeben...).

Von der shell aus funktioniert dig @... und nslookup auch, aber von einem externen PC kann ich den Nameserver mit nslookup nicht erreichen... Es kommt bei "server ip" immer ein connection timeout, danach kann auch überhaupt keine Domain erreicht werden (query refused).

Wenn ich nslookup auf einen anderen Nameserver (z. B. von schlund) festlege und nach Eingabe von "set type=any" meine domain suche, wird immer angezeigt, dass die beiden für meine domain zuständigen Nameserver schlund gehören, d. h. mein Nameserver wird gar nicht angezeigt, obwohl das doch in den zonefiles steht...

Woran liegt das?

Ich habe in yast die Option "Network/advanced -> Host name and DNS" gefunden. Muss ich da noch etwas an der resolv.conf ändern? Da steht weder meine Domain, noch meine IP drin.

Du kennst Dich ja anscheinend ziemlich gut aus, vielleicht hättest Du ja noch einen Tipp für mich..
Vielen schon mal

cycomate
17.06.03, 22:24
Möglicherweise horcht bind bei Dir nicht an allen interfaces oder der port 53 ist firewalled. Die resolv.conf hat damit nichts zu tun, ich würde an Deiner Stelle aber mal in die /etc/named.conf gucken, ob da etwas von "listen-on" steht. Notfalls guckst Du via "lsof -i" oder "netstat -lp", ob named wirklich an allen interfaces horcht.

Tuneman
17.06.03, 23:37
Hi,

das steht in der named.conf:

allow-transfer { 195.20.224.97; 195.20.225.34; }; # beide ips von schlund
notify yes;
forwarders { 195.20.224.234; 195.20.224.99; }; # beide ips von schlund
forward first;
listen-on port 53 { 127.0.0.1; eigene ip; };
listen-on-v6 { none; };
allow-query { 127.0.0.1; eigene ip; };
allow-recursion { 127.0.0.1; eigene ip; };
auth-nxdomain no; # conform to RFC1035


eine firewall ist noch nicht drauf, außer sie wurde vorinstalliert... kommt aber auf jeden Fall noch diese Woche!


das ist aus var/log/messages

/usr/sbin/named[19980]: client 80.146.76.20#3793: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3794: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3795: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3796: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3797: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3798: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3799: query denied
/usr/sbin/named[19980]: client 80.146.76.20#3800: query denied

(das war meine nslookup-Anfrage von extern...)



noch eine andere Frage... Was hat denn diese Meldung zu bedeuten??? (auch aus var/log/messages):
su: (to nobody) root on none
su: pam_unix2: session started for user nobody, service su
su: pam_unix2: session finished for user nobody, service su

der Server ist auch gerade verdammt langsam...


lsof und netstat bringt einiges... named horch an vielen interfaces, aber ich weiß nicht, ob es alle bzw. die Richtigen sind...


Ist da ein Fehler in named.conf???

Gruß
Tuneman

cycomate
17.06.03, 23:48
Original geschrieben von Tuneman
allow-query { 127.0.0.1; eigene ip; };
Hier ist der Fehler. Außer Dir darf keiner zugreifen.

Nachtrag:

noch eine andere Frage... Was hat denn diese Meldung zu bedeuten??? (auch aus var/log/messages):
su: (to nobody) root on none
su: pam_unix2: session started for user nobody, service su
su: pam_unix2: session finished for user nobody, service su
Das heißt, daß root seine privs. auf den user "nobody" via "su" gedroppt hat.

LINUXRH7
17.06.03, 23:53
Allow Query ist das die das hinter 127.0.0.1 die ip des Servers ?
Falls ja dar fnur der Server abfragen.
Trag mal any; ein und restart bind und tail
/etc/init.d/bind restart && tail -f /var/log/syslog

Ausgabe mal hier posten. Da sollte gnügend drin stehen um zu wissen was schief läuft

cya
LiNUXrh7

Tuneman
18.06.03, 15:17
Hallo zusammen,

ich habe wieder mal ausprobiert und habe entdeckt, dass bind die named.conf aus /etc/ holt, nicht aus dem angelegten chroot-Verzeichnis...
Bei allow-query habe ich any angegeben und noch ein paar andere Sachen deaktiviert. Jetzt ist der NS auch von meinem XP erreichbar.

directory "/var/named";
pid-file "/var/run/named/named.pid";
# allow-transfer { 195.20.224.97; 195.20.225.34; };
# query-source address * port 53
# transfer-source * port 53
# notify-source * port 53
notify yes;
# forwarders { 195.20.224.234; 195.20.224.99; };
# forward first;
listen-on port 53 { 127.0.0.1; 217.160.185.22; };
listen-on-v6 { none; };
allow-query { any; };
# allow-recursion { 127.0.0.1; 217.160.185.22; };
# auth-nxdomain no; # conform to RFC1035

Welche Optionen sind denn sinnvoll? Oder kann man es so lassen?

Hier noch ein AUszug aus dem log:

/etc # tail -f /var/log/messages
/usr/sbin/named[2285]: no longer listening on 217.160.185.22#53
/usr/sbin/named[2283]: exiting
/usr/sbin/named[2319]: starting BIND 9.1.3 -u dns
/usr/sbin/named[2319]: using 1 CPU
/usr/sbin/named[2321]: loading configuration from '/etc/named.conf'
/usr/sbin/named[2321]: the default for the 'auth-nxdomain' option is now 'no'
/usr/sbin/named[2321]: no IPv6 interfaces found
/usr/sbin/named[2321]: listening on IPv4 interface lo, 127.0.0.1#53
/usr/sbin/named[2321]: listening on IPv4 interface eth0, 217.160.185.22#53
/usr/sbin/named[2321]: running


@cycomate:

Das heißt, daß root seine privs. auf den user "nobody" via "su" gedroppt hat.

Ich habe nie einen User "nobody" angelegt... Ist da jemand eingedrungen??? Ich habe den User einfach mal gelöscht!


Danke für Eure Mühe...

cycomate
18.06.03, 15:28
Original geschrieben von Tuneman
Ich habe nie einen User "nobody" angelegt... Ist da jemand eingedrungen??? Ich habe den User einfach mal gelöscht!
autsch... nicht ernsthaft, oder?

Tuneman
18.06.03, 16:14
autsch gelöscht? oder autsch eingedrungen?

Wird der User benötigt??? Ich hatte gestern noch etwas über SUID und Sicherheitsrisiken gelesen... War ich da etwas zu voreilig?

cycomate
18.06.03, 16:21
autsch gelöscht. Der Benutzer sollte auf jedem System vorhanden sein, um sicherheitskritische Prozesse "entschärfen" zu können. Es kann gut sein, daß jetzt einiges bei Dir schiefläuft, da einige daemons/jobs/whatever den Benutzer "nobody" benötigen (bei einigen Distributionen läuft z.B. der apache als "nobody") und ihn nun nicht mehr finden.

Da die UID für "nobody" nicht genormt ist (Redhat verwendet UID 99, Debian glaube ich 65534 oder -1), mußt Du mal bei jemandem nachfragen, der dieselbe Distribution wie Du verwendet, mit welcher UID Du "nobody" neu anlegen sollst.