Пользователи домена в Linux

Устал я следить на пользователями linux систем, что бы пароль меняли, что бы доступ был только у актуальных пользователей, а если человек уволился, то и доступ ему не нужен.
В общем вот как сделал я:
Операционные системы: Пользователи домена в Linux
Картинка для затравки

Это не пошаговое руководство, это лог моих действий, местами с учетом ошибок.

Сначала задачка: загнать linux (у меня 95% CentOS) в домен.
Все эти конфиги вам знакомы.
<code class="bash">#cat nsswitch.conf

group:      files ldap winbind
group_compat: nis
hosts:      files dns
networks: files
passwd:     files ldap winbind
passwd_compat: nis
shells: files
protocols: files
rpc: files
shadow:     files ldap winbind
netgroup:   files ldap
automount:  files ldap
services:   files
</code>

Далее инсталируем samba
yum install samba
Мой конфиг:

<code class="bash">$ cat /etc/samba/smb.conf | grep -v '^;' | grep -v '^#' | grep -v '^$'
[global]
   workgroup = DMN
   password server = KD1W8.DNM.local
   realm = DMN.LOCAL
   security = domain
   idmap uid = 20000-30000
   idmap gid = 20000-30000
   template homedir = /home/%D/%U
   template shell = /bin/sh
   winbind use default domain = true
   winbind offline logon = false
        server string = Samba Server Version %v
        netbios name = px2ls
        interfaces = lo eth0 192.168.0.0/16
        hosts allow = 127. 192.168.
        log file = /var/log/samba/log.%m
        max log size = 50
winbind enum users = yes
winbind enum groups = yes
encrypt passwords = yes
winbind cache time = 60
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes
</code>

На самом деле мне я думаю что раздел printers не нужен, но он у меня есть.

Далее конфиг /etc/krb.conf
<code class="bash">[logging] default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log

[libdefaults] default_realm = DMN.LOCAL
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d forwardable = true

[realms] DMN.LOCAL = {
  kdc = dmn.local
  admin_server = dmn.local
  kdc = kd1w8.dmn.local }

[domain_realm]
 dmn.local = DMN.LOCAL 
.dmn.local = DMN.LOCAL
</code>

как всегда следим за временем и устанавливаем самба-клиент
<code class="bash">yum install ntpdate
ntpdate 0.centos.pool.ntp.org; ntpdate 0.centos.pool.ntp.org
yum install samba-client samba-winbind
</code>
в /etc/hosts не забудь дописать свой хостнейм

ну и
<code class="bash"># net ads join -S kd1w8.dmn.local -U username%password
Using short domain name -- DMN
Joined 'PX2LS' to realm 'dmn.local'
No DNS domain configured for px2ls. Unable to perform DNS Update.
DNS update failed!
</code>

еще нам пригодится krb5-workstation

для корректного создания домашней папки дописываем
<code class="bash">vi /etc/pam.d/sshd
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
</code>

Файл /lib/libnss_ldap.so.2 нужен для нормальной работы LDAP. Установите пакет nss-pam-ldapd, предоставляющий этот файл.
yum install nss-pam-ldapd

authconfig-tui (можно и просто authconfig, но я торопился)

после выполнения видим:
Запускаются службы Winbind:
Запускается nslcd:

Для разрешения входа на сервер linux по shh
<code class="bash"># cat /etc/security/pam_winbind.conf | grep require_membership_of
require_membership_of = unix-admin (группа в AD)
</code>

Нам еще и sudo потребуется.

<code class="bash">yum install sudo
# cat /etc/sudoers | grep unix
%unix-admin ALL=(ALL) ALL
</code>
Теперь проверяем работу. Пользователь, член доменной группы unix-admin должен успешно войти в систему и успешно выполнять команды от имени root.

<code class="bash">$ ssh 192.168.0.17
The authenticity of host '192.168.0.17 (192.168.0.17)' can't be established.
RSA key fingerprint is 5f:51:29:a0:ba:f4:b3:e9:82:d4:c6:e6:07:0b:10:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.17' (RSA) to the list of known hosts.
myusername@192.168.0.17 password:
Creating directory /home/DNM/myusername.
</code>
ну и незабыть всё это засунуть в автостарт

<code class="bash">chkconfig nslcd on
chkconfig winbind on
chkconfig smb on
chkconfig ntpdate on</code>

Единственно не понял как избежать ошибки «No DNS domain configured for px2ls. Unable to perform DNS Update.
DNS update failed!».

Дебют!


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.