Pam-ldap-debian: Unterschied zwischen den Versionen

Aus Xinux Wiki
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
Header   
*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
benutzen zu authentifizieren
 
libnss-ldap: Hiermit kann man den Name Service Switch zu konfiguriern das er einen
LDAP Server nutzen kann
 
 
 
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.
Stopping 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.
Starting OpenLDAP: slapd.Starten des 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


Erläuterung zu ldapadd
==Gruppe Ldif erstellen==
 
<pre>
-x Saslauth. abschalten  -D DN der gebunden wird
-w Passwort des gebundenen DN -f LDIF Datei
 
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"


User und Gruppe in LDAP einfügen
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"
root@gawron:~ # ldapadd -xD cn=admin,dc=cronos,dc=int -w sysadm -f gruppe.ldif
==/etc/nsswitch.conf anpassen==
adding new entry "cn=benutzer,ou=gruppen,dc=cronos,dc=int"
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


==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


==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