NIS Server und Client können nicht verbinden

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
andbaum
Beiträge: 17
Registriert: 13.10.2004 15:15:52

NIS Server und Client können nicht verbinden

Beitrag von andbaum » 24.03.2006 06:49:47

Ich wollte nach dem Debian NIS Howto (/usr/share/doc/nis/nis.debian.howto.gz) einen NIS Server installlieren, bekomme ihn aber nicht zum laufen. Auch verschiedene Konfigurationen und googeln halfen nicht. Kann mir hier jemand weiterhelfen?

Starte ich

Code: Alles auswählen

/etc/init.d/nis
auf dem Server, so läuft der ypbind immer ins leere:

Code: Alles auswählen

Starting NIS services: ypserv yppasswdd ypxfrd ypbind [binding to YP server .......... backgrounded]
(Bis er backgrounded dauert es ein paar Minuten)

Eigentlich sollte trotzdem alles laufen:

Code: Alles auswählen

# rpcinfo -p localhost
   Program Vers Proto   Port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100021    1   udp  32768  nlockmgr
    100021    3   udp  32768  nlockmgr
    100021    4   udp  32768  nlockmgr
    100021    1   tcp  32769  nlockmgr
    100021    3   tcp  32769  nlockmgr
    100021    4   tcp  32769  nlockmgr
    100024    1   udp    991  status
    100024    1   tcp    994  status
    100003    2   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100005    1   udp   1020  mountd
    100005    1   tcp   1023  mountd
    100005    2   udp   1020  mountd
    100005    2   tcp   1023  mountd
    100004    2   udp    851  ypserv
    100004    1   udp    851  ypserv
    100004    2   tcp    854  ypserv
    100004    1   tcp    854  ypserv
    100009    1   udp    853  yppasswdd
 600100069    1   udp    856  fypxfrd
 600100069    1   tcp    858  fypxfrd
    100007    2   udp    862  ypbind
    100007    1   udp    862  ypbind
    100007    2   tcp    865  ypbind
    100007    1   tcp    865  ypbind
Will ich nun vom Client aus verbinden,

Code: Alles auswählen

# /etc/init.d/nis start
Starting NIS services: ypbind [binding to YP server .......... backgrounded]
(Bis er backgrounded dauert es wieder ein paar Minuten)

Leider ist er dann immer noch nicht verbunden:

Code: Alles auswählen

# getent passwd
Dauert auch ein paar Minuten und zeigt nur lokale User.


Die beiden Rechner (Debian Testing) sind untereinander pingbar, auch über den Hostname.

Meine Konfiguration auf dem Server:

Code: Alles auswählen

# egrep -v '#' /etc/default/nis
NISSERVER=master
NISCLIENT=false
YPPWDDIR=/etc
YPCHANGEOK=chsh
NISMASTER=
YPSERVARGS=
YPBINDARGS=
YPPASSWDDARGS=
YPXFRDARGS=

Code: Alles auswählen

# egrep -v '#' /etc/defaultdomain
domain.home

Code: Alles auswählen

# egrep -v '#' /etc/yp.conf
ypserver <ip_von_diesem_rechner>

Code: Alles auswählen

# egrep -v '#' /etc/ypserv.conf
*                            : *       : shadow.byname    : port
*                            : *       : passwd.adjunct.byname : port
*                            : *       : *                : none

Code: Alles auswählen

# egrep -v '#' /etc/ypserv.securenets
host    127.0.0.0
10.10.1.0               10.10.1.255

Code: Alles auswählen

# egrep -v '#' /etc/hosts.allow
portmap: 10.10.1.0/255.255.255.0
mountd: 10.10.1.0/255.255.255.0
ypserv: 10.10.1.0/255.255.255.0
ypbind: 10.10.1.0/255.255.255.0
yppasswdd: 10.10.1.0/255.255.255.0
fypxfrd: 10.10.1.0/255.255.255.0
-----------------------------------------------------------------------------------------------------------

Konfiguration auf dem Client

Code: Alles auswählen

# egrep -v '#' /etc/nsswitch.conf
passwd:         compat nis
group:          compat nis
shadow:         compat nis
netgroup:       nis
hosts:          files nis dns wins
networks:       files

Code: Alles auswählen

# egrep -v '#' /etc/defaultdomain
domain.home

Code: Alles auswählen

# egrep -v '#' /etc/yp.conf
ypserver <ip_von_dem_server>

Code: Alles auswählen

# egrep -v '#' /etc/default/nis
NISSERVER=false
NISCLIENT=true
YPPWDDIR=/etc
YPCHANGEOK=chsh
NISMASTER=
YPSERVARGS=
YPBINDARGS=
YPPASSWDDARGS=
YPXFRDARGS=

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 24.03.2006 11:33:48

Siehst Du vielleicht hilfreiche Meldungen, wenn Du ypserv mal mit -d startest? Bzw. auch mal ypbind mit -d startest? Was sagt die Ausgabe von ypdomainname auf dem Client und dem Server?

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

andbaum
Beiträge: 17
Registriert: 13.10.2004 15:15:52

Beitrag von andbaum » 24.03.2006 11:51:02

Vielen Dank, jetzt klappt der Bind.

/etc/ypserv.securenets war falsch. So muss es richtig heissen:

Code: Alles auswählen

# egrep -v '#' /etc/ypserv.securenets
host    127.0.0.0
255.255.255.0           10.10.1.0
Allerdings liefert

Code: Alles auswählen

getent passwd
auf dem Client immer noch keine nis User, sondern nur lokale :roll:

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 24.03.2006 14:13:51

Hast Du denn auch am Ende der /etc/passwd die Zeile ...

Code: Alles auswählen

+::0:0:::
...und am Ende der /etc/group die Zeile ...

Code: Alles auswählen

+::0:
...eingefügt?

Wenn es doch drin stehen sollte, wie sieht dann Deine /etc/nsswitch.conf aus ?

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

andbaum
Beiträge: 17
Registriert: 13.10.2004 15:15:52

Beitrag von andbaum » 27.03.2006 09:44:39

Also, ich habe folgendes:

Code: Alles auswählen

# tail -n 1 /etc/passwd
+::::::

Code: Alles auswählen

# tail -n 1 /etc/group
+:::

Code: Alles auswählen

# egrep -v '#' /etc/nsswitch.conf
passwd:         compat nis
group:          compat nis
shadow:         compat nis
netgroup:       nis
hosts:          files nis dns wins
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
Wenn ich wie von Dir angegeben die 0en auch mit eintrage, bringt es aber auch nichts.

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 29.03.2006 08:18:34

Mmmh, sieht alles ok aus. Und "ypcat passwd" zeigt Dir keinerlei NIS-User an? Dann hätte ich im Moment leider auch keine Idee mehr, sieht meiner Meinung nach alles richtig aus ...

Grüsse, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

andbaum
Beiträge: 17
Registriert: 13.10.2004 15:15:52

Beitrag von andbaum » 29.03.2006 10:15:01

Also, anscheinend passen die NIS Maps nicht:
Server:

Code: Alles auswählen

# ypcat -k auto.home
Map auto.home nicht gefunden. Grund: Keine passende Map in der Domain des Servers
Mach der Client

Code: Alles auswählen

# getent passwd
passiert am Server:

Code: Alles auswählen

connect from ipclient
        -> OK.
ypproc_first(): [From: ipclient[:919]
        domainname = "domain.home"
        mapname = "passwd.byname"
connect from ipclient
        ypdb_open("domain.home", "passwd.byname")
gdbm_open: GDBM Error Code #3
        -> Error #-1
(ipclient ist die richtige IP Adresse des Clients)

Aber am server scheint alles richtig konfiguriert zu sein:

Code: Alles auswählen

# egrep -v '#' /var/yp/Makefile  | head -n 60

B =

NOPUSH = true

YPPUSHARGS=

MINUID = 1000
MINGID = 1000

NFSNOBODYUID=65534
NFSNOBODYGID=65534

MERGE_PASSWD=false

MERGE_GROUP=false

AWK = /usr/bin/awk
MAKE = /usr/bin/make
UMASK = umask 066

YPSRCDIR = /etc
YPPWDDIR = /etc
YPBINDIR = /usr/lib/yp
YPSBINDIR = /usr/sbin
YPDIR = /var/yp
YPMAPDIR = $(YPDIR)/$(DOMAIN)

GROUP       = $(YPPWDDIR)/group
PASSWD      = $(YPPWDDIR)/passwd
SHADOW      = $(YPPWDDIR)/shadow
GSHADOW     = $(YPPWDDIR)/gshadow
ADJUNCT     = $(YPPWDDIR)/passwd.adjunct
ALIASES     = /etc/aliases
HOSTS       = $(YPSRCDIR)/hosts
NETWORKS    = $(YPSRCDIR)/networks
PRINTCAP    = $(YPSRCDIR)/printcap
PROTOCOLS   = $(YPSRCDIR)/protocols
PUBLICKEYS  = $(YPSRCDIR)/publickey
RPC         = $(YPSRCDIR)/rpc
SERVICES    = $(YPSRCDIR)/services
NETGROUP    = $(YPSRCDIR)/netgroup
NETID       = $(YPSRCDIR)/netid
AMD_HOME    = $(YPSRCDIR)/amd.home
AUTO_MASTER = $(YPSRCDIR)/auto.master
AUTO_HOME   = $(YPSRCDIR)/auto.home
AUTO_LOCAL  = $(YPSRCDIR)/auto.local
TIMEZONE    = $(YPSRCDIR)/timezone
LOCALE      = $(YPSRCDIR)/locale
NETMASKS    = $(YPSRCDIR)/netmasks


target: Makefile
        @test ! -d $(LOCALDOMAIN) && mkdir $(LOCALDOMAIN) ; \
        cd $(LOCALDOMAIN)  ; \
        $(NOPUSH) || $(MAKE) -f ../Makefile ypservers; \
        $(MAKE) -f ../Makefile all


ALL =   passwd shadow group hosts rpc services netid protocols netgrp
Mich wundert nur, dass ein make nie "was zu tun" hat :roll:

Code: Alles auswählen

# make -C /var/yp
make: Entering directory `/var/yp'
make[1]: Entering directory `/var/yp/domain.home'
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Leaving directory `/var/yp/domain.home'
make: Leaving directory `/var/yp'
Wenn ich was in Makefile was ändere, ergibt sich immer noch:

Code: Alles auswählen

# make -C /var/yp
make: Entering directory `/var/yp'
make[1]: Entering directory `/var/yp/domain.home'
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Leaving directory `/var/yp/domain.home'
make: Leaving directory `/var/yp'

Antworten