Pam-ldap-debian: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) Die Seite wurde neu angelegt: „Benutzerauthentifizierung mit LDAP und PAM auf Debian apt-get install slapd libldap2-dev db4.2-util slapd: OpenLDAP Standalone Server libldap2-dev: ent…“ |
Thomas (Diskussion | Beiträge) |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Benutzerauthentifizierung mit LDAP und PAM auf Debian | =Benutzerauthentifizierung mit LDAP und PAM auf Debian= | ||
==Installation Server== | |||
apt-get install slapd libldap2-dev db4.2-util | apt-get install slapd libldap2-dev db4.2-util | ||
*slapd: OpenLDAP Standalone Server | |||
*libldap2-dev: enthält Bibliotheken und Header | |||
slapd: OpenLDAP Standalone Server | *db4.2-util: Tools zum managen der Berkley Datenbank | ||
==Installation Clients== | |||
libldap2-dev: enthält Bibliotheken und | apt-get install ldap-utils libpam-ldap libnss-ldap | ||
*ldap-utils: Utilities zum Zugriff auf den LDAP Server | |||
*libpam-ldap: Modules, die LDAP die Möglichkeit geben User mit Programmen die PAM benutzen zu authentifizieren | |||
db4.2-util: Tools zum managen der Berkley Datenbank | *libnss-ldap: Hiermit kann man den Name Service Switch zu konfiguriern das er einenLDAP Server nutzen kann | ||
=Die Konfigurationdatei des LDAP Servers genannt SLAPD= | |||
<pre> | |||
apt-get install ldap-utils libpam-ldap libnss-ldap | |||
ldap-utils: Utilities zum Zugriff auf den LDAP Server | |||
libpam-ldap: Modules, die LDAP die Möglichkeit geben User mit Programmen die PAM | |||
libnss-ldap: Hiermit kann man den Name Service Switch zu konfiguriern das er | |||
Die Konfigurationdatei des LDAP Servers genannt SLAPD | |||
gawron:/etc/ldap# cat slapd.conf | gawron:/etc/ldap# cat slapd.conf | ||
allow bind_v2 | allow bind_v2 | ||
| Zeile 45: | Zeile 31: | ||
rootdn "cn=admin,dc=cronos,dc=int" | rootdn "cn=admin,dc=cronos,dc=int" | ||
rootpw "sysadm" | rootpw "sysadm" | ||
</pre> | |||
Starten des slapd | ==Starten des slapd== | ||
gawron:/etc/ldap# /etc/init.d/slapd start | |||
gawron:/etc/ldap# /etc/init.d/slapd start | Starting OpenLDAP: slapd. | ||
==Stoppen des slapd== | |||
gawron:/etc/ldap# /etc/init.d/slapd stop | |||
Stopping OpenLDAP: slapd. | |||
Stoppen des slapd | ==Neustarten des slapd== | ||
gawron:/etc/ldap# /etc/init.d/slapd restart | |||
gawron:/etc/ldap# /etc/init.d/slapd stop | Stopping OpenLDAP: slapd. | ||
Starting OpenLDAP: slapd.Starten des slapd | |||
==Auf welchem Port lauscht der slapd== | |||
gawron:/etc/ldap# netstat -lntp | grep slapd | |||
Neustarten des slapd | tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 499/slapd | ||
==Welche PID hat der slapd== | |||
gawron:/etc/ldap# /etc/init.d/slapd restart | gawron:/etc/ldap# pgrep slapd | ||
Stopping OpenLDAP: slapd. | 499 | ||
Starting OpenLDAP: slapd.Starten des slapd | 500 | ||
501 | |||
Auf welchem Port lauscht der slapd | =Clientkonfiguration von LDAP= | ||
gawron:/etc/ldap# cat ldap.conf | |||
gawron:/etc/ldap# netstat -lntp | grep slapd | base dc=cronos, dc=int | ||
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 499/slapd | uri ldap://127.0.0.1 | ||
ldap_version 3 | |||
rootbinddn cn=admin, dc=cronos, dc=int | |||
Welche PID hat der slapd | pam_password md5 | ||
==Passwort für den Adminzugang eintragen== | |||
gawron:/etc/ldap# pgrep slapd | |||
499 | |||
500 | |||
501 | |||
Clientkonfiguration von LDAP | |||
gawron:/etc/ldap# cat ldap.conf | |||
base dc=cronos, dc=int | |||
uri ldap://127.0.0.1 | |||
ldap_version 3 | |||
rootbinddn cn=admin, dc=cronos, dc=int | |||
pam_password md5 | |||
Passwort für den Adminzugang eintragen | |||
gawron:/etc# echo sysadm > /etc/ldap.secret | gawron:/etc# echo sysadm > /etc/ldap.secret | ||
==Wir benutzen nur eine Konfigurationdatei== | |||
gawron:/etc# ln -sf /etc/ldap/ldap.conf /etc/pam_ldap.conf | |||
Wir benutzen nur eine Konfigurationdatei | gawron:/etc# ln -sf /etc/ldap/ldap.conf /etc/libnss-ldap.conf | ||
==Testen ob Client mit dem Server kommunizieren kann.== | |||
gawron:/etc# ln -sf /etc/ldap/ldap.conf /etc/pam_ldap.conf | gawron:/etc# ldapsearch -x | ||
gawron:/etc# ln -sf /etc/ldap/ldap.conf /etc/libnss-ldap.conf | # extended LDIF | ||
# | |||
# LDAPv3 | |||
Testen ob Client mit dem Server kommunizieren kann. | # base <> with scope sub | ||
# filter: (objectclass=*) | |||
gawron:/etc# ldapsearch -x | # requesting: ALL | ||
# extended LDIF | # | ||
# | # search result | ||
# LDAPv3 | search: 2 | ||
# base <> with scope sub | result: 32 No such object | ||
# filter: (objectclass=*) | # numResponses: 1 | ||
# requesting: ALL | =Erstellen der Struktur im LDIF Format= | ||
# | <pre> | ||
# search result | |||
search: 2 | |||
result: 32 No such object | |||
# numResponses: 1 | |||
Erstellen der Struktur im LDIF Format | |||
gawron:~# cat struktur.ldif | gawron:~# cat struktur.ldif | ||
# cronos.int | # cronos.int | ||
| Zeile 138: | Zeile 99: | ||
objectClass: organizationalUnit | objectClass: organizationalUnit | ||
ou: rechner | ou: rechner | ||
</pre> | |||
Erstellen des Adminaccount im LDIF Format | ==Erstellen des Adminaccount im LDIF Format== | ||
<pre> | |||
gawron:~# cat admin.ldif | gawron:~# cat admin.ldif | ||
dn: cn=admin,dc=cronos,dc=int | dn: cn=admin,dc=cronos,dc=int | ||
| Zeile 156: | Zeile 117: | ||
gecos: admin user | gecos: admin user | ||
description: admin user | description: admin user | ||
</pre> | |||
==Datenbank füllen== | |||
<pre> | |||
Datenbank füllen | |||
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f struktur.ldif | gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f struktur.ldif | ||
adding new entry "dc=cronos,dc=int" | adding new entry "dc=cronos,dc=int" | ||
| Zeile 170: | Zeile 128: | ||
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f admin.ldif | gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f admin.ldif | ||
adding new entry "cn=admin,dc=cronos,dc=int" | adding new entry "cn=admin,dc=cronos,dc=int" | ||
</pre> | |||
===Erläuterung zu ldapadd=== | |||
*-x Saslauth. abschalten -D DN der gebunden wird | |||
*-w Passwort des gebundenen DN -f LDIF Datei | |||
==Gruppe Ldif erstellen== | |||
<pre> | |||
Gruppe Ldif erstellen | |||
gawron:~# cat gruppe.ldif | gawron:~# cat gruppe.ldif | ||
dn: cn=benutzer,ou=gruppen,dc=cronos,dc=int | dn: cn=benutzer,ou=gruppen,dc=cronos,dc=int | ||
| Zeile 183: | Zeile 141: | ||
cn: benutzer | cn: benutzer | ||
gidNumber: 3001 | gidNumber: 3001 | ||
</pre> | |||
User Ldif erstellen | ==User Ldif erstellen== | ||
<pre> | |||
gawron:~# cat user.ldif | gawron:~# cat user.ldif | ||
dn: uid=leroy,ou=mitarbeiter,dc=cronos,dc=int | dn: uid=leroy,ou=mitarbeiter,dc=cronos,dc=int | ||
| Zeile 197: | Zeile 156: | ||
homeDirectory: /home/leroy | homeDirectory: /home/leroy | ||
loginShell: /bin/bash | loginShell: /bin/bash | ||
</pre> | |||
==User und Gruppe in LDAP einfügen== | |||
root@gawron:~ # ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f gruppe.ldif | |||
adding new entry "cn=benutzer,ou=gruppen,dc=cronos,dc=int" | |||
root@gawron:~ # ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f user.ldif | |||
adding new entry "uid=leroy,ou=mitarbeiter,dc=cronos,dc=int" | |||
==/etc/nsswitch.conf anpassen== | |||
root@ubuntu:~ # cat /etc/nsswitch.conf | |||
passwd: files ldap | |||
root@gawron:~ # ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f user.ldif | group: files ldap | ||
adding new entry "uid=leroy,ou=mitarbeiter,dc=cronos,dc=int" | shadow: files ldap | ||
hosts: files dns | |||
/etc/nsswitch.conf anpassen | networks: files | ||
root@ubuntu:~ # cat /etc/nsswitch.conf | protocols: db files | ||
services: db files | |||
passwd: files ldap | ethers: db files | ||
group: files ldap | rpc: db files | ||
shadow: files ldap | |||
netgroup: nis | |||
hosts: files dns | ==Testen ob die nsswitch Namensauflöung funktioniert== | ||
networks: files | gawron:~# getent passwd leroy | ||
leroy:x:2001:3001:leroy:/home/leroy:/bin/bash | |||
protocols: db files | =Anpassen der Pam= | ||
services: db files | ==Die Authentifizierung== | ||
ethers: db files | gawron:/etc/pam.d# cat common-auth | ||
rpc: db files | auth sufficient pam_ldap.so | ||
auth required pam_unix.so nullok_secure use_first_pass | |||
netgroup: nis | ==Das Accounting== | ||
gawron:/etc/pam.d# cat common-account | |||
account sufficient pam_ldap.so | |||
account required pam_unix.so | |||
Testen ob die nsswitch Namensauflöung funktioniert | ==Passwort änderungen== | ||
gawron:/etc/pam.d# cat common-password | |||
gawron:~# getent passwd leroy | password sufficient pam_ldap.so | ||
leroy:x:2001:3001:leroy:/home/leroy:/bin/bash | password sufficient pam_unix.so | ||
password required pam_deny.so | |||
==Die Session== | |||
gawron:/etc/pam.d# cat common-session | |||
Anpassen der Pam | session required pam_mkhomedir.so skel=/etc/skel umask=0022 | ||
session required pam_unix.so | |||
==Passwort für den User setzen== | |||
gawron:/etc/pam.d# passwd leroy | |||
Die Authentifizierung | New password: | ||
gawron:/etc/pam.d# cat common-auth | Re-enter new password: | ||
auth sufficient pam_ldap.so | LDAP password information changed for leroy | ||
auth required pam_unix.so nullok_secure use_first_pass | passwd: password updated successfully | ||
==Testen des Accounts== | |||
Das Accounting | gawron:/etc/pam.d# su - nobody | ||
gawron:/etc/pam.d# cat common-account | nobody@gawron:~$ su – leroy | ||
account sufficient pam_ldap.so | Password: | ||
account required pam_unix.so | leroy@gawron:~$ | ||
=Apache an LDAP= | |||
Passwort änderungen | <pre> | ||
gawron:/etc/pam.d# cat common-password | |||
password sufficient pam_ldap.so | |||
password sufficient pam_unix.so | |||
password required pam_deny.so | |||
Die Session | |||
gawron:/etc/pam.d# cat common-session | |||
session required pam_mkhomedir.so skel=/etc/skel umask=0022 | |||
session required pam_unix.so | |||
Passwort für den User setzen | |||
gawron:/etc/pam.d# passwd leroy | |||
New password: | |||
Re-enter new password: | |||
LDAP password information changed for leroy | |||
passwd: password updated successfully | |||
Testen des Accounts | |||
gawron:/etc/pam.d# su - nobody | |||
nobody@gawron:~$ su – leroy | |||
Password: | |||
leroy@gawron:~$ | |||
Apache an LDAP | |||
<Directory /var/www/> | <Directory /var/www/> | ||
Options Indexes FollowSymLinks MultiViews | Options Indexes FollowSymLinks MultiViews | ||
| Zeile 296: | Zeile 226: | ||
RedirectMatch ^/$ /apache2-default/ | RedirectMatch ^/$ /apache2-default/ | ||
</Directory> | </Directory> | ||
</pre> | |||
=RECHNER Ldif erstellen= | |||
RECHNER Ldif erstellen | <pre> | ||
gawron:~# cat rechner.ldif | gawron:~# cat rechner.ldif | ||
dn: cn=pc1,ou=rechner,dc=cronos,dc=int | dn: cn=pc1,ou=rechner,dc=cronos,dc=int | ||
| Zeile 308: | Zeile 238: | ||
cn: pc1 | cn: pc1 | ||
ipHostNumber: 172.20.103.1 | ipHostNumber: 172.20.103.1 | ||
</pre> | |||
==Rechner Liste eintragen== | |||
Rechner Liste eintragen | <pre> | ||
gawron:~# cat ./rechner.sh | gawron:~# cat ./rechner.sh | ||
#!/bin/bash | #!/bin/bash | ||
| Zeile 325: | Zeile 254: | ||
MARKE | MARKE | ||
done | done | ||
</pre> | |||
./rechner.sh > rechner.ldif | ./rechner.sh > rechner.ldif | ||
==Service Container erstellen== | |||
gawron:~# cat service-container.ldif | |||
# mitarbeiter, cronos.int | |||
dn: ou=service,dc=cronos,dc=int | |||
objectClass: organizationalUnit | |||
ou: service | |||
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f service.-container.ldif | gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f service.-container.ldif | ||
==Service Einträge erstellen== | |||
<pre> | |||
gawron:~# cat service.ldif | gawron:~# cat service.ldif | ||
dn: cn=xinux,ou=service,dc=cronos,dc=int | dn: cn=xinux,ou=service,dc=cronos,dc=int | ||
| Zeile 348: | Zeile 275: | ||
ipServiceProtocol: tcp | ipServiceProtocol: tcp | ||
cn:xinux | cn:xinux | ||
</pre> | |||
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f service.ldif | gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f service.ldif | ||
Aktuelle Version vom 4. Dezember 2014, 09:28 Uhr
Benutzerauthentifizierung mit LDAP und PAM auf Debian
Installation Server
apt-get install slapd libldap2-dev db4.2-util
- slapd: OpenLDAP Standalone Server
- libldap2-dev: enthält Bibliotheken und Header
- db4.2-util: Tools zum managen der Berkley Datenbank
Installation Clients
apt-get install ldap-utils libpam-ldap libnss-ldap
- ldap-utils: Utilities zum Zugriff auf den LDAP Server
- libpam-ldap: Modules, die LDAP die Möglichkeit geben User mit Programmen die PAM benutzen zu authentifizieren
- libnss-ldap: Hiermit kann man den Name Service Switch zu konfiguriern das er einenLDAP Server nutzen kann
Die Konfigurationdatei des LDAP Servers genannt SLAPD
gawron:/etc/ldap# cat slapd.conf allow bind_v2 include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/misc.schema schemacheck on modulepath /usr/lib/ldap moduleload back_bdb pidfile /var/run/slapd.pid argsfile /var/run/slapd.args loglevel 0 database bdb suffix "dc=cronos,dc=int" directory /var/lib/ldap index objectClass eq rootdn "cn=admin,dc=cronos,dc=int" rootpw "sysadm"
Starten des slapd
gawron:/etc/ldap# /etc/init.d/slapd start Starting OpenLDAP: slapd.
Stoppen des slapd
gawron:/etc/ldap# /etc/init.d/slapd stop Stopping OpenLDAP: slapd.
Neustarten des slapd
gawron:/etc/ldap# /etc/init.d/slapd restart Stopping OpenLDAP: slapd. Starting OpenLDAP: slapd.Starten des slapd
Auf welchem Port lauscht der slapd
gawron:/etc/ldap# netstat -lntp | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 499/slapd
Welche PID hat der slapd
gawron:/etc/ldap# pgrep slapd 499 500 501
Clientkonfiguration von LDAP
gawron:/etc/ldap# cat ldap.conf base dc=cronos, dc=int uri ldap://127.0.0.1 ldap_version 3 rootbinddn cn=admin, dc=cronos, dc=int pam_password md5
Passwort für den Adminzugang eintragen
gawron:/etc# echo sysadm > /etc/ldap.secret
Wir benutzen nur eine Konfigurationdatei
gawron:/etc# ln -sf /etc/ldap/ldap.conf /etc/pam_ldap.conf gawron:/etc# ln -sf /etc/ldap/ldap.conf /etc/libnss-ldap.conf
Testen ob Client mit dem Server kommunizieren kann.
gawron:/etc# ldapsearch -x # extended LDIF # # LDAPv3 # base <> with scope sub # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1
Erstellen der Struktur im LDIF Format
gawron:~# cat struktur.ldif # cronos.int dn: dc=cronos,dc=int objectClass: dcObject objectClass: organization o: cronos dc: cronos # mitarbeiter, cronos.int dn: ou=mitarbeiter,dc=cronos,dc=int objectClass: organizationalUnit ou: mitarbeiter # gruppen, cronos.int dn: ou=gruppen,dc=cronos,dc=int objectClass: organizationalUnit ou: gruppen # rechner, cronos.int dn: ou=rechner,dc=cronos,dc=int objectClass: organizationalUnit ou: rechner
Erstellen des Adminaccount im LDIF Format
gawron:~# cat admin.ldif dn: cn=admin,dc=cronos,dc=int objectClass: top objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: admin sn: chef uid: admin uidNumber: 0 gidNumber: 0 homeDirectory: /export/home/admin loginShell: /bin/bash gecos: admin user description: admin user
Datenbank füllen
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f struktur.ldif adding new entry "dc=cronos,dc=int" adding new entry "ou=mitarbeiter,dc=cronos,dc=int" adding new entry "ou=gruppen,dc=cronos,dc=int" adding new entry "ou=rechner,dc=cronos,dc=int" gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f admin.ldif adding new entry "cn=admin,dc=cronos,dc=int"
Erläuterung zu ldapadd
- -x Saslauth. abschalten -D DN der gebunden wird
- -w Passwort des gebundenen DN -f LDIF Datei
Gruppe Ldif erstellen
gawron:~# cat gruppe.ldif dn: cn=benutzer,ou=gruppen,dc=cronos,dc=int objectClass: posixGroup objectClass: top cn: benutzer gidNumber: 3001
User Ldif erstellen
gawron:~# cat user.ldif dn: uid=leroy,ou=mitarbeiter,dc=cronos,dc=int cn: leroy objectClass: account objectClass: posixAccount objectClass: shadowAccount objectClass: top uid: leroy uidNumber: 2001 gidNumber: 3001 homeDirectory: /home/leroy loginShell: /bin/bash
User und Gruppe in LDAP einfügen
root@gawron:~ # ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f gruppe.ldif adding new entry "cn=benutzer,ou=gruppen,dc=cronos,dc=int"
root@gawron:~ # ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f user.ldif adding new entry "uid=leroy,ou=mitarbeiter,dc=cronos,dc=int"
/etc/nsswitch.conf anpassen
root@ubuntu:~ # cat /etc/nsswitch.conf passwd: files ldap group: files ldap shadow: files ldap hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
Testen ob die nsswitch Namensauflöung funktioniert
gawron:~# getent passwd leroy leroy:x:2001:3001:leroy:/home/leroy:/bin/bash
Anpassen der Pam
Die Authentifizierung
gawron:/etc/pam.d# cat common-auth auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass
Das Accounting
gawron:/etc/pam.d# cat common-account account sufficient pam_ldap.so account required pam_unix.so
Passwort änderungen
gawron:/etc/pam.d# cat common-password password sufficient pam_ldap.so password sufficient pam_unix.so password required pam_deny.so
Die Session
gawron:/etc/pam.d# cat common-session session required pam_mkhomedir.so skel=/etc/skel umask=0022 session required pam_unix.so
Passwort für den User setzen
gawron:/etc/pam.d# passwd leroy New password: Re-enter new password: LDAP password information changed for leroy passwd: password updated successfully
Testen des Accounts
gawron:/etc/pam.d# su - nobody nobody@gawron:~$ su – leroy Password: leroy@gawron:~$
Apache an LDAP
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
SetHandler ldap-status
Authtype Basic
AuthName LDAP-AUTHENTIFIKATION
AuthLDAPEnabled on
AuthLDAPURL ldap://127.0.0.1/dc=cronos,dc=int?uid?sub
AuthLDAPAuthoritative on
require valid-user
RedirectMatch ^/$ /apache2-default/
</Directory>
RECHNER Ldif erstellen
gawron:~# cat rechner.ldif dn: cn=pc1,ou=rechner,dc=cronos,dc=int objectClass: device objectClass: top objectClass: ipHost cn: pc1 ipHostNumber: 172.20.103.1
Rechner Liste eintragen
gawron:~# cat ./rechner.sh #!/bin/bash for ((n=1;n<10;n++)) do cat <<MARKE dn: cn=pc$n,ou=rechner,dc=cronos,dc=int objectClass: device objectClass: top objectClass: ipHost cn: pc$n ipHostNumber: 172.20.103.$n MARKE done
./rechner.sh > rechner.ldif
Service Container erstellen
gawron:~# cat service-container.ldif # mitarbeiter, cronos.int dn: ou=service,dc=cronos,dc=int objectClass: organizationalUnit ou: service
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f service.-container.ldif
Service Einträge erstellen
gawron:~# cat service.ldif dn: cn=xinux,ou=service,dc=cronos,dc=int objectClass: top objectClass: ipService ipServicePort: 4711 ipServiceProtocol: tcp cn:xinux
gawron:~# ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f service.ldif
gawron:~# getent services ssh
ssh 22/tcp
gawron:~# getent services xinux
gawron:~# cat /etc/nsswitch.conf passwd: files ldap group: files ldap shadow: files ldap hosts: files dns ldap networks: files protocols: db files services: db files ldap ethers: db files rpc: db files netgroup: nis
gawron:~# getent services xinux xinux 4711/tcp