Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Linux i Windows - integracja AD z usługami linuxa

Wpis ma na celu pokazanie jak można zintegrowac Active Directory z serwerem plików SAMBA oraz dostępu przez SSH do serwera linuxowego.

Zaleta tego jest iz mamy centralny katalog uzyszkodnikow. W moim przypadku mam 3 serwery samby, kilka maszyn z dostepem przez ssh, wiec zarzadzanie uzytszkodnikami, ich haslami mam na jednej maszynie windowsowej. Oczywiscie komputery w firmie mam podpiete do serwera AD wiec jest tylko jednokrotne podanie hasla przy logowaniu.

Sposob autoryzacji oparty o AD wykorzystuje tez przy autoryzacji w apache2 -> bylo to opisywane juz na blogu.

r   e   k   l   a   m   a

Nie będę opisywał instalacji AD a jedynie to co jest w linuxie.

tak wyglada ad (mniej wiecej :)):

Założenia:

nazwa domeny. FIRMA.Z
nazwa servera: DC.FIRMA.Z
nazwa netbios: FIRMA
ip dc: 192.168.2.204
system DC: windows 2008r2 std
userzy: administrator, grzenio

nazwa servera linux: SAMBA.FIRMA.Z
ip linuxa: 192.168.2.251
system linux: Debian 6

na poczatek aktualizacja system i instalacja potrzebnych i nie potrzebnych pakietow

apt-get update
apt-get upgrade
apt-get install krb5-config krb5-user krb5-doc winbind samba rdate smbldap-tools ldb-tools mc vim-nox

dorabiamy sobie wpisy w /etc/hosts

vim /etc/hosts

zawartosc:

192.168.2.251 samba.FIRMA.Z samba

teraz musimy ustawic kerberosa

vim /etc/krb5.conf

zmiany ktore musimy dokonac lub dopisac, reszty nie ruszamy. edytujemy 3 sekcje: libdefaults, realms i domain_realm

[libdefaults]
        default_realm = FIRMA.Z
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
        dns_lookup_realm = false
        dns_lookup_kdc = false
        clock_skew = 300
        ticket_lifetime = 24h

...

[realms]
FIRMA.Z = {
kdc = DC.FIRMA.Z
admin_server = DC.FIRMA.Z
default_domain = FIRMA.Z
}

...

[domain_realm]
        .kerberos.server = FIRMA.Z
        .FIRMA.Z = FIRMA.Z

Testujemy:

kinit administrator@FIRMA.Z

zostaniemy poproszeni o haslo. podanie zlego hasla wywali error, podanie hasla prawidlowego nic nie pokaze.

modyfikujemy odpowiednio ponizej pliki

# /etc/nsswitch.conf
passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

...

#samba/smb.conf
[global]
workgroup = FIRMA
realm = FIRMA.Z #domena
load printers = no
preferred master = no
local master = no
server string = fileserver
password server = 192.168.2.204 #ip dc
encrypt passwords = yes
security = ADS
netbios name = SAMBA
client signing = Yes
dns proxy = No
wins server = 192.168.2.204 #ip dc
idmap uid = 600-20000
idmap gid = 600-20000
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
template shell = /bin/bash

[homes]
   comment = Home Direcotries
   valid users = %S
   read only = No
   browseable = No

dodajemy Linuxa do domeny

net ads join -U Administrator

zostaniemy poproszeni o haslo administratora

zakładamy foldery domowe, sama nie umie sama tego zrobic, bedzie to potrafil robic sshd

cd /home
mkdir FIRMA/
mkdir FIRMA/administrator/
mkdir FIRMA/grzenio/

nadajemy odpowiednie prawa

chown administrator administrator
chown grzenio grzenio

restartujemy co trzeba:

/etc/init.d/samba restart
/etc/init.d/winbind restart

no i to wszystko jezeli chodzi o sambe. czas na ssh

wynik taki:

grzenio@samba:~$ pwd
/home/FIRMA/grzenio
grzenio@samba:~$ ls -al
total 20
drwxrwxrwx 4 grzenio root         4096 Jun 30 17:00 .
drwxr-xr-x 4 root    root         4096 Jun 30 13:11 ..
-rw------- 1 grzenio domain users  101 Jun 30 17:00 .bash_history
drwxr-xr-x 2 grzenio domain users 4096 Jun 30 13:41 New folder
drwxr-xr-x 2 grzenio domain users 4096 Jun 30 13:49 test
grzenio@samba:~$

tutaj tak naprawde tyko podam jakie wpisy dodac trzeba do jakich plikow po tym tylko restart sshd wystarczy:)

# /etc/pam.d/common-account
account sufficient      pam_winbind.so
account required                pam_unix.so


# /etc/pam.d/common-auth
auth    sufficient      pam_winbind.so
auth    required        pam_unix.so nullok_secure use_first_pass


# /etc/pam.d/common-password
password   required   pam_unix.so nullok obscure min=4 max=50 md5


# /etc/pam.d/common-session
session required        pam_mkhomedir.so umask=0022 skel=/etc/skel


apt-get install sudo

# /etc/sudoers
%UnixAdmins ALL=(ALL) ALL

 

Komentarze