-
Początki z NIS w CentOS 6
NIS (Network Information Service) to protokół pozwalający na scentralizowane zarządzania użytkownikami, aliasami, nazwami hostów oraz adresami e-mail poprzez sieć. Jego konfiguracja nie jest zbyt trudna. Narzędzie jest niezwykle przydatne, jeśli mamy kilka serwerów i chcemy się na nie logować tą samą nazwą użytkownika i hasłem, a nie chcemy zaprzęgać do tego np. LDAP-a, o którego zresztą niedługo będziemy omawiać. Zacznijmy od instalacji potrzebnych pakietów na serwerze NIS:
yum install ypserv ypbind rpcbind
Teraz ustawiamy domenę NIS w pliku „/etc/sysconfig/network” dodając następującą linię:
NISDOMAIN=dowolna_nazwa
Następnie edytujemy plik „/etc/yp.conf” i ustawiamy serwer NIS (na serwerze wpisujemy następujący tekst):
ypserver 127.0.0.1
Następnie odpalamy usługi rpcbind, yppasswdd (do zmiany haseł) oraz ypserv (właściwy serwer NIS):
/etc/init.d/rpcbind start
/etc/init.d/yppasswdd start
/etc/init.d/ypserv start
Nadszedł czas na wygenerowanie bazy loginów, haseł i aliasów:
/usr/lib/yp/ypinit -m
W wyniku czego otrzymujemy:
[root@cloud ~]# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. cloud.p-project.pl is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a .
next host to add: nasz-nis-server.pl
next host to add:
The current list of NIS servers looks like this:nasz-nis-server.pl
Is this correct? [y/n: y] y
We need a few minutes to build the databases…
Building /var/yp/centos/ypservers…
Running /var/yp/Makefile…
gmake[1]: Wejście do katalogu `/var/yp/centos’
Updating passwd.byname…
Updating passwd.byuid…
Updating group.byname…
Updating group.bygid…
Updating hosts.byname…
Updating hosts.byaddr…
Updating rpc.byname…
Updating rpc.bynumber…
Updating services.byname…
Updating services.byservicename…
Updating netid.byname…
Updating protocols.bynumber…
Updating protocols.byname…
Updating mail.aliases…
gmake[1]: Opuszczenie katalogu `/var/yp/centos’nasz-nis-server.pl has been set up as a NIS master server.
Now you can run ypinit -s nasz-nis-server.pl on all slave server.
W miejscu gdzie pyta o „next host to add” nic nie wpisujemy poza nazwą serwera, która sama powinna się pojawić. Naciskamy więc ctrl+d.
Następnie uruchamiamy ypxfrd oraz ypbind:/etc/init.d/ypxfrd start
/etc/init.d/ypbind start
Sprawdzamy, czy wszystko wstało:
ps ax | grep yp
Powinniśmy otrzymać coś takiego:
[root@cloud ~]# ps ax | grep yp
1192 ? S 0:00 /usr/sbin/rpc.ypxfrd
3207 ? S 0:00 /usr/sbin/rpc.yppasswdd
3219 ? S 0:00 /usr/sbin/ypserv
5178 ? Sl 0:00 /usr/sbin/ypbind
5197 pts/0 S+ 0:00 grep yp
Kolejnym testem jest wykonanie polecenia „ypcat passwd”. Powinniśmy otrzymać część pliku „/etc/passwd” z danymi użytkowników (oprócz kont systemowych). Jeśli tak się stało, to znaczy, że serwer mamy skonfigurowany. Teraz czas na klienta. Instalujemy niezbędne pakietyyum install ypbind rpcbind
Teraz ustawiamy domenę NIS w pliku „/etc/sysconfig/network” dodając następującą linię:
NISDOMAIN=dowolna_nazwa_ale_taka_jak_na_serwerze
Następnie edytujemy plik „/etc/yp.conf” i ustawiamy serwer NIS (na serwerze wpisujemy następujący tekst):
domain dowolna_nazwa_ale_taka_jak_na_serwerze server adres_ip_serwera
Edytujemy plik „/etc/nsswitch.conf” i dopisujemy „nis”, po czym powinno wyglądać to następująco:
passwd: files nis
shadow: files nis
group: files nis
Następnie odpalamy usługi rpcbind i ypbind:service rpcbind start
service ypbind start
Najprostszym sposobem sprawdzenia poprawności działania usług jest wykonanie polecenia „ypcat passwd”. Powinniśmy otrzymać część pliku „/etc/passwd” z danymi użytkowników (oprócz kont systemowych). Jeśli tak się stało, to znaczy, że klient został poprawnie skonfigurowany i podłączony do serwera NIS. Znanym problemem jest brak uruchomionego w systemie procesu „dbus-daemon”. Często nawet nie mamy go zainstalowanego w systemie. Objawem jest poniższy wpis w logach systemowych (/var/log/messages):
Connection to D-BUS system message bus failed: Failed to connect to socket /var/run/dbus/system_bus_socket: Nie ma takiego pliku ani katalogu.
Aby to naprawić wykonujemy poniższe czynności:yum install dbus
dbus-daemon –system
Bazę loginów, haseł i aliasów należy aktualizować na serwerze przy pomocy polecenia „make -C /var/yp/”. Najlepiej dopisać je do crona, aby wykonywało się automatycznie.
UWAGA !!!
W systemie CentOS 6 pakiet/usługa portmap, została zastąpiona przez rpcbind, który obsługuje ipv6 oraz nfs4.
Yellow Pages 😉 fajny artykuł usługa fajna i pomocna. Pozdrawiam.
Świetny artykuł! Usługa może przydać się w firmie, i bardzo fajnie i przystępnie wytłumaczone ode mnie (+).
Dzięki za artykuł.
Z NIS-em jest tak że (prawie) nikt tego nie zna, nikt nie rozumie i nikt nie stosuje 🙂
Co cię skłoniło do napisania o tym i to w 6-ce?
Chętnie zaczekam na LDAP-a.
Dziękuję za pozytywne odebranie mojego artykułu 🙂 O NIS-ie wcześniej nie pisałem, a uważam go za godną uwagi usługę, która jest wspaniałym zamiennikiem LDAP-a. Jest on bowiem w niektórych zastosowaniach po prostu zbyt rozbudowany. Przynajmniej ja tak sądzę. Może macie inne zdanie na ten temat. Co do wyboru wersji 6, to jest ona najnowsza i w sumie tylko dlatego na nią padło 😛 Mechanizm konfigurowania NIS-a jest taki jak w 5, tylko jeden pakiet jest inny niż w nowszej edycji.
Owszem NIS jest może i skrojony na miarę ale problem zaczyna się gdy np. chcemy wewnętrzny intrane t podpiąć pod nis i tego nis już nie obsługuje. Większość developerów dodaje wsparcie dla baz sqlowych, AD, ldap, i jest jeszcze coś novelowego ale nie pamiętam już nazwy.