Kerberos
Samba,Active Directory Windows и ACL рабочий конфиг
Вот решил выложить свой рабочий конфиг Samba, чтоб был под рукой, и в случаи надобности лишь его подправить, как настраивать полностью описано Samba и авторизация через Active Directory и SAMBA: аудит операций с файлами и контроль обращений.
Наших пользователей берем с Active Directory и для них настроен аудит.
[global]
admin users=administrator
interfaces = eth0
log level = 0 vfs:2
max log size = 100
syslog = 0
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
null passwords = true
encrypt passwords = yes
idmap uid = 10000-40000
idmap gid = 10000-40000
auth methods = winbind
name resolve order = hosts bcast lmhosts
case sensitive = no
dns proxy = no
server string = samba
password server = *
realm = ДОМЕН
client use spnego = yes
client signing = yes
local master = no
domain master = no
preferred master = no
workgroup = Workgroup (можно названия домена)
debug level = 2
security = ads
unix charset = UTF-8
dos charset = 866
max log size = 50
os level = 0
#wins server = IP_вашего_wins_сервера
follow symlinks = yes
winbind separator = \
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
#======================= Share Definitions =======================
[For all]
# комментарий к шаре
comment = Shares for all
# путь к шаре на диске
path = /home/for_all
# список тех, кому разрешён доступ на чтение
read list = "@DOMEN\Domain Users"
# список тех, кому разрешён доступ на запись
write list = "@DOMEN\Domain Users"
admin users = "@DOMEN\Domain Admins", DOMEN\ceval
# Доступ к шаре тока на чтение
read only = No
# маска для создаваемых файлов
create mask = 0660
# маска для создаваемых директорий
directory mask = 0770
# наследовать владельца (вышестоящей директории)
inherit owner = yes
# наследовать ACL
inherit acls = yes
# наследовать права
inherit permissions = yes
#позволяет редактору прав из винды корректно обрабатывать наследуемые права
map acl inherit = yes
# блокировки
locking = no
vfs objects = full_audit
full_audit:facility = local5
full_audit:priority = notice
full_audit:prefix = share=%S; id=%U; ip=%I -->
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:priority = INFO
[printers]
......
Настраиваем proxy-сервер SQUID c авторизацией по LDAP (AD Windows) и web-интерфейсом для администрирования SAMS (часть 2)
Вторая часть, вот здесь первая, где рассмотрим минимальную настройку Squid, web-интерфейс для администрирования SAMS и редиректор REJIK.
1. Ставим,настроиваем сам squid:
$ aptitude install squid
Так как сам конфиг squid'а заслуживает описания отдельной статьи, а может и не одной, поэтому выложу свой кофиг, правда напильником он не обработан, но нам все завелось, все заремленное удалил:
............ .....
# Параметры ntlm для аутентификации через браузер
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 50
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
.......... ...
acl _sams_default proxy_auth "/etc/squid/default.sams"
... ...
acl Localnet src 192.168.100.0/24
acl ALL src 0.0.0.0/0.0.0.0
#acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
..... .
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
....
http_access allow _sams_default
http_access allow Localnet
...
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
.... . . .
http_access allow localhost
..... ...
http_access deny ALL
...... ...
icp_access allow localnet
icp_access deny all
..... .......
http_port 3128
... . . ..
hierarchy_stoplist cgi-bin ?
............ .....
access_log /var/log/squid/access.log squid
........ ...........
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
............. .........
acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
upgrade_http0.9 deny shoutcast
...... . . .. .
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
..... ......
delay_pools 1
delay_class 1 2
delay_access 1 allow _sams_default
delay_access 1 deny all
delay_parameters 1 64000/64000 64000/64000
......... .......
hosts_file /etc/hosts
. . .......
coredump_dir /var/spool/squid
# Настраиваем директорию с кешем
# По умолчанию она закоментирована и имеет следующие параметры
# # cache_dir ufs /var/spoll/squid 100 16 256
# ufs - тип файловой системы оставляем без изменений
# /var/spool/squid - директория кеша
# 100 - размер кеша в мегабайтах, делать размер слишком большим не рекомендуется
# тк это увеличит нагрузку при поиске по кешу.
# 16 - Количество директорий 1-ого уровня
# 256 - Количество директорий 2-ого уровня
# в данном примере (2048 = 2 Гб)
cache_dir ufs /var/spool/squid 2048 16 256
# TAG: cache_effective_user
# Пользователь и группа, от которых работает squid
cache_effective_user proxy
# TAG: cache_effective_group
cache_effective_group proxy
Проверяем ntlm_auth:
$ ntlm_auth --username=USER --domain=DOMAIN --dianostics password
password:
NT_STATUS_OK: Success (0x0)
где:
USER - наш пользыватель из AD
domain - наш домен (я писал заглавными буквами)
Создаем кэш:
$ squid -z
2010/09/07 11:28:55| Creating Swap Directories
Если squid не cможет запуститься по каким либо причинам, он выводит сообщения об ошибках прямо на консоль.Детальный лог будет лежать в /var/log/squid/cache.log.
2. Установливаем SAMS, берем последнюю версию SAMS собранную в пакеты для Debian (etch/lenny) и Ubuntu (hardy/jaunty) вы можете по адресам:
http://nixdev.net/release/sams/ubuntu/
http://nixdev.net/release/sams/debian/lenny/
Выбираем свою архитектуру процессора (32х или 64х битная), и устанавливаем 3 пакета:
sams - конфигурационный файл и все исполняемые файлы демонов
sams-web - web-интерфейс для управления работой sams и squid
sams-doc - документация к sams
Рекомендуется устанавливать все 3 пакета выбранной версии: Для 32х битных систем:
$ wget -c "http://nixdev.net/release/sams/debian/lenny/sams_1.0.5_i386.deb"
$ dpkg -i sams_1.0.5_i386.deb
$ wget -c "http://nixdev.net/release/sams/debian/lenny/sams-web_1.0.5_all.deb"
$ wget -c "http://nixdev.net/release/sams/debian/lenny/sams-doc_1.0.5_all.deb"
$ dpkg -i sams-web_1.0.5_all.deb sams-doc_1.0.5_all.deb
Заходим и читаем, там все просто расписанно по шагам
$ nano /usr/share/doc/sams/README.Debian
2.1 Для работы SAMS необходимо создать пользователя sams в БД MySQL (Create SAMS user in database):
$ mysql -u root -p
mysql> GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword";
mysql> GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "yourpassword";
2.2 Создаем таблицы SAMS (tables in database):
$ mysql -u root -p < /usr/share/sams/mysql/sams_db.sql
$ mysql -u root -p < /usr/share/sams/mysql/squid_db.sql
2.3 После этого правим конфиг SAMS /etc/sams.conf, все параметры я расписал:
$ nano /etc/sams.conf
# имя базы данных SAMS
SQUID_DB=squidlog
# имя базы данных, где SAMS хранит информацию, полученную из логов SQUID
SAMS_DB=squidctrl
# адрес хоста, где стоит MySQL
MYSQLHOSTNAME=localhost
# имя пользователя MySQL, от которого будет работать SAMS
MYSQLUSER=sams
# пароль этого же пользователя в MySQL
MYSQLPASSWORD= Ваш_пароль_пользователя_sams
# наша установленная версия MySQL
MYSQLVERSION=5.0
# имя файла логов SQUID
SQUIDCACHEFILE=access.log
# директория, где лежит конфиг SQUID
SQUIDROOTDIR=/etc/squid
# директория, где лежит файл логов SQUID
SQUIDLOGDIR=/var/log/squid
# путь к кэшу SQUID
SQUIDCACHEDIR=/var/spool/squid
# путь, где лежит SAMS
SAMSPATH=/usr
# путь, где лежит SQUID
SQUIDPATH=/usr/sbin
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/etc/squid
# Если вы хотите использовать NTLM или AD авторизацию и у вас есть имена пользователей на руссокм языке, то перекодирования имен пользователей из используемой кодировки в dos-866
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
# используем авторизацию в Active Directory, редактируем эти пункты
LDAPSERVER=ip адрес или имя сервера Active Directory
# ваш домен
LDAPBASEDN=EXAMPLE.COM
# имя пользователя, входщего в группу администраторы домена
LDAPUSER=usernameadmin
# пароль
LDAPUSERPASSWD=passward
# группа, в которую входят пользователи доменаю Для AD это обычно Users
LDAPUSERSGROUP=Users
# использовать редиректор REJIK
REJIKPATH=/usr/local/rejik
# Команда, выполняемая при нажатии на кнопку (SAMS->"Shutdown proxy server").
# Данная команда добавлена для удобства удаленного выключения прокси сервера.
SHUTDOWNCOMMAND=shutdown -h now
# Номер прокси-сервера SQUID, зарегистрированного в SAMS.
# SAMS поддерживает возможность управлениями несколькими прокси серверами SQUID.
CACHENUM=0
2.4 Редактируем /etc/init.d/sams и изменяем SAMS_ENABLE="false" на "true".
$ nano /etc/init.d/sams
SAMS_ENABLE=true
Пакет sams-web уже содержит конфигурационный файл для web-сервера apache для работы SAMS по адресу http://<адрес сервера>/sams/.
Редактируем конфиг PHP /etc/php5/apache2/php.ini:
$ nano /etc/php5/apache2/php.ini:
C версии 1.0 SAMS работает в safe_mode php
Настриваем php для работы в режиме safe mode, для этого выставляем параметр safe_mode:
safe_mode = On
так же SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo.В режиме safe_mode php блокирует доступ к системным командам.Php позволяет выполнять системные команды, расположенные в каталоге,заданном параметром safe_mode_exec_dir.Изменяем этот параметр:
safe_mode_exec_dir = "/usr/share/sams/bin"
Далее разрешаем исполнение системных скриптов из кода php.Ищем в файле конфигурации параметр и убираем из него запрет вызова функций phpinfo system shell_exec exec:
disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"
2.6 Перезапускаем службы:
$ /etc/init.d/apache2 restart
$ /etc/init.d/sams start
3. Ставим Rejik (Режик)
Для начало ставим библиотеку pcre, в дистрибутивах Debian и Ubuntu библиотека разбита на две части: libpcre3 libpcre3-dev, нужны обе.
$ aptitude install libpcre3 libpcre3-dev
Берем с офсайта http://www.rejik.ru/index_ru_11_1.html последнию версию на момент написания это redirector-3.2.8
$ wget http://www.rejik.ru/download/redirector-3.2.8.tgz
$ tar -xzf redirector-3.2.8.tgz
$ cd redirector-3.2.8
Скачиваем банлисты:
$ wget http://www.rejik.ru/download/banlists-2.x.x.tgz
$ $ tar -xzf banlists-2.x.x.tgz
Смотрим под каким пользователем работает squid, и что за группа (для Debian и Ubuntu это proxy:proxy)
$ nano /etc/squid/squid.conf
cache_effective_user proxy
cache_effective_group proxy
или
$ ps aux | grep squid
Открываем для редактирования Makefile и правим значения SQUID_USER и SQUID_GROUP на нашего пользователя и группу (proxy:proxy).
Собираем и устанавливаем
$ make
$ make install
Перемещаем туда наши бан листы:
$ mv banlists /usr/local/rejik3/
Переходим в каталог куда он установился
$ cd /usr/local/rejik3/
Редактируем конфиг:
$ cp /usr/local/rejik3/redirector.conf.dist /usr/local/rejik3/redirector.conf
в конфиге путь к логам указан в ту же папку куда установлен и сам rejik (/usr/local/rejik3/),
для удобства переношу логи в папку (/var/log/squid) и создаю там лог-файлы которые прописанны в конфиге:
$ cd /var/log/squid
$ touch redirector.log redirector.err
Ставим права:
$ chown proxy:proxy redirector.log (redirector.err)
Меняем наши пути:
$ nano /usr/local/rejik3/redirector.conf
error_log /var/log/squid/redirector.err
change_log /var/log/squid/redirector.log
Так же выставляем на папку banlists права (proxy:proxy):
$ chown -R proxy:proxy banlists/*
Из папки /usr/local/rejik3/tools запускаем:
$ ./check-redirector
http://127.0.0.1/ban/porno.html 127.0.0.1/- - GET
Идем в наши логи и смотрим - для нас важна в redirector.log строчка:
2010-09-20 16:19:09 [26671] Redirector start and working (3.2.8)
если что смотрим что он хочет и исправляем.
Продолжения следует ....
Настраиваем proxy-сервер SQUID c авторизацией по LDAP (AD Windows) и web-интерфейсом для администрирования SAMS (часть 1)
Настраиваем связку SQUID SAMS+REJIK с аунтентификацией по NTLM.
Так как есть ДОМЕН под управление Win 2003 Server, и нужна авторизация пользователя под своей учетной записью и так же вести логи и предоставлять информацию начальству в случаи надобности.
Первая часть, рассмотрим как ввести наш сервер в домен.
Авторизация пользователей будет по NTLM.
Для всего нам понадобится apache, php, mysql, сам squid, sams, samba.
Все это нам предстоит установить, или обновить.
Для начало ставим скопом apache, php, mysql:
$ aptitude install apache2 apache2-doc apache2-utils ssl-cert mysql-server libmysqlclient15-dev libapache2-mod-php5 php5 php5-common php5-dev php5-mcrypt php5-imagick php5-mysql
Для того, чтобы пользователи могли проходить NTLM аутентификацию, необходимо настроить авторизация через Active Directory, и здесь вы будем использовать samba, kerberos, winbind, pam. Настраиваем и введем наш сервер в домен:
1. На всякий случай смотрим что б у нас host ’е было прописано полное имя машины:
$ nano /etc/hosts
127.0.0.1 localhost
127.0.1.1 comp
192.168.100.155 comp comp.ns.domain
2. Устанавливаем и настраиваем Kerberos
$ aptitude install krb5-doc krb5-user krb5-config
в конце процесса установки, установщик спросит у наc два параметра:
What are the Kerberos servers for your realm?
имя Kerberos cервера для realm NS.DOMAIN (имя realm определено автоматичеcки)
[ master.ns.domain ]
What is the administrative server for your Kerberos realm?
имя cервера паролей для NS.DOMAIN Kerberos realm
[ master.ns.domain ]
на оба запроса вводим наш адрес домен-контроллера(DC)
Далее правим /etc/krb5.conf и приводим его к такому виду (EXAMPLE.COM - наш master.ns.domain ):
$ nano /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
.... ........... ........
[realms]
EXAMPLE.COM = {
kdc = EXAMPLE.COM
admin_server = EXAMPLE.COM
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[login]
krb4_convert = true
krb4_get_tickets = false
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5dc.log
admin_server = FILE:/var/log/ksadmind.log
Так же можно добавить несколько записий kdc,если это необходимо, так вторым kdc вполне может быть вторичный контроллер домена Active Directory например kdc = ad1.example.com и тд.
Проверяем, берем пользывателя из AD:
$ kinit admin@EXAMPLE.COM
Password for admin@EXAMPLE.COM: *****
$ klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@EXAMPLE.COM
Valid starting Expires Service principal
08/24/10 07:51:34 08/24/10 14:31:34 krbtgt/EXAMPLE.COM@EXAMPLE.COM
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
3. Устанавливаем и настраиваем SAMBA
$ aptitude install winbind samba
Теперь настраиваем winbind, для этого правим файл /etc/samba/smb.conf.
$ nano /etc/samba/smb.conf
[global]
dos charset = cp866
unix charset = KOI8-R
workgroup = EXAMPLE (прописными)
realm = EXAMPLE.COM (прописными)
server string = SQUID-PROXY
security = ADS
auth methods = winbind
allow trusted domains = No
password server = *
log level = 1
log file = /var/log/samba/samba.%m
max log size = 50
time server = Yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
os level = 0
preferred master = No
local master = No
domain master = No
dns proxy = No
ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = Yes
strict locking = No
client NTLMv2 auth = Yes
client lanman auth = No
client plaintext auth = No
#winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind refresh tickets = Yes
encrypt passwords = yes
Проверяем конфигурацию SAMBA:
$ testparm
testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
Далее правим файл nsswitch.conf
$ nano /etc/nsswitch.conf
...... ......
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Поcле редактирования /etc/samba/smb.conf, не забываем реcтарт samba+winbind
$ /etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start
Stopping the Winbind daemon: winbind.
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
Starting the Winbind daemon: winbind.
Теперь заведем наш сервер в домен:
$ net ads join -U administrator
Enter administrator's password:
Using short domain name -- EXAMPLE
Joined 'COMP' to realm 'example.com'
или
net ads join -U USER%PASSWD
Теперь для проверки работоспособности winbind проведем ряд тестов.
$ wbinfo -p
Ping to winbindd succeeded
$ wbinfo -t
checking the trust secret via RPC calls succeeded
Проверить, видит ли Samba группы,пользователей домена можно так:
$ wbinfo -u
В ответ выдаст список пользователей в домене.
группы:
$ wbinfo -g
Так же можно проверить авторизоваться в домене:
wbinfo -a, --authenticate=user%password authenticate user
$ wbinfo -a user%password
plaintext password authentication succeeded
challenge/response password authentication succeeded
Проверим утилитой id доменного пользователя:
$ id USER
Во второй части поговорим как поставить собственно SQUID SAMS и прикрутить к нему редиректор REJIK
Samba и авторизация через Active Directory
Используеться - kerberos, winbind, pam, samba
Вводные данные:
ns.domain — dns-имя домена (example.com)
master.ns.domain - наш домен-контроллера(DC) по полному доменному имени (ad.example.com)
samba.ns.domain - dns-имя нашей машины
Administrator - логин доменного администратора
Ставим ntpdate для синхронизации времени c DC(Domain Controller), это нужно для нормальной работы Kerberos
$ aptitude install ntpdate
настраиваем:
$ nano /etc/default/ntpdate
NTPSERVERS="master.ns.domain"- наш домен-контроллера(DC) по полному доменному имени (FQDN)
Запускаем синхронизацию в ручную:
$ ntpdate -s master.ns.domain
Навсякий случай смотрим что б у нас host'е было приписанно полное имя машины
$ nano /etc/hosts
IP samba.ns.domain localhost samba
Устанавливаем и настраиваем Kerberos
$ aptitude install aptitude install krb5-doc krb5-user krb5-config
в конце процеccа уcтановки, уcтановщик cпроcит у наc два параметра:
What are the Kerberos servers for your realm?
имя Kerberos cервера для realm NS.DOMAIN (имя realm определено автоматичеcки)
[ master.ns.domain ]
What is the administrative server for your Kerberos realm?
имя cервера паролей для NS.DOMAIN Kerberos realm
[ master.ns.domain ]
на оба запроса вводим наш адрес домен-контроллера(DC)
Далее правим /etc/krb5.conf и приводим его к такому виду:
[libdefaults]
default_realm = EXAMPLE.COM (обязательно большими)
ticket_lifetime = 24000
clock_skew = 300
# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
# The following encryption type specification will be used by MIT Kerberos
# if uncommented. In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java).
# default_tgs_enctypes = des3-hmac-sha1
# default_tkt_enctypes = des3-hmac-sha1
# permitted_enctypes = des3-hmac-sha1
# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true
[realms]
EXAMPLE.COM = {
kdc = ad.example.com
admin_server = ad.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[login]
krb4_convert = true
krb4_get_tickets = false
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5dc.log
admin_server = FILE:/var/log/ksadmind.log
Так же можно добавить несколько записий kdc,если это необходимо, так вторым kdc вполне может быть вторичный контроллер домена Active Directory например kdc = ad1.example.com и тд. Ни забываем создавать файлы логов:
$ touch /var/log/krb5libs.log
$ touch /var/log/krb5dc.log
$ touch /var/log/ksadmind.log
Проверяем, берем пользывателя из AD:
$ kinit aleks@EXAMPLE.COM
Password for aleks@EXAMPLE.COM: *****
$ klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: aleks@EXAMPLE.COM
Valid starting Expires Service principal
05/14/09 09:55:29 05/14/09 16:35:29 krbtgt/EXAMPLE.COM@EXAMPLE.COM
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
Устанавливаем нужные пакеты далее:
$ aptitude install winbind samba
Теперь настраиваем winbind, для этого правим файл /etc/samba/smb.conf.
$ nano /etc/samba/smb.conf
[global]
admin users=administrator
interfaces = eth0
log file = /var/log/samba/log.%m
log level = 1
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
null passwords = true
encrypt passwords = yes
idmap uid = 10000-40000
idmap gid = 10000-40000
auth methods = winbind
name resolve order = hosts bcast lmhosts
case sensitive = no
dns proxy = no
server string = samba
password server = *
realm = EXAMPLE.COM
client use spnego = yes
client signing = yes
local master = no
domain master = no
preferred master = no
workgroup = EXEMPLE
debug level = 2
security = ads
unix charset = UTF-8
dos charset = 866
max log size = 50
os level = 0
wins server = IP_вашего_wins_сервера
follow symlinks = yes
winbind separator = \
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
#======================= Share Definitions =======================
[data]
browseable = yes
writeable = yes
write list = @"EXAMPLE\Domain Admins"
path = /home/data
create mask = 0664
comment = test share
directory mask = 0777
valid users = @"EXAMPLE\Domain Admins"
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[cdrom]
comment = Samba server's CD-ROM
read only = yes
locking = no
path = /cdrom
guest ok = yes
Проверяем конфигурацию SAMBA
$ testparm
Поcле редактирования /etc/samba/smb.conf, не забываем реcтарт samba+winbind
$ /etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start
Теперь пытаемся ввести нашу машинку в домен.
$ net ads join -U Administrator
Enter Administrator's password: *****
Using short domain name -- EXAMPLE
Joined 'SRV' to realm 'example.com'
[2009/05/14 15:50:22, 0] libads/kerberos.c:ads_kinit_password(356)
kerberos_kinit_password SAMBA@EXAMPLE.COM failed: Client not found in Kerberos database
Если у вас выдало такую ошибку значит, значит подключаемся используя параметр -S
$ net ads join -U administrator -S master.ns.domain(ad.example.com)
Enter administrator's password: *****
Using short domain name -- EXAMPLE
Joined 'SAMBA' to realm 'example.com
Делаем reload winbind, чтобы он перечитал информацию о доменных юзерах и группах, поcле чего проверяем:
$ /etc/init.d/winbind force-reload
$ wbinfo -u (-g)
-u отобразит cпиcки доменных пользователей
-g доменных групп
Настраиваем аутенфикацию, правим /etc/nsswitch.conf добавляя winbind
$ nano /etc/nsswitch.conf
passwd: compat winbind
group: compat winbind
shadow: compat winbind
Проверяем утилитой getent
$ getent passwd
показывает локальных пользывателей и так же cпиcок доменных
$ getent group
соответственно локальные группы или доменные
Модифицируем PAM. Наcтраиваем cиcтемную аутенфикацию и авторизацию контроллером домена.
$ nano /etc/pam.d/common-account
account required pam_unix.so
account sufficient pam_winbind.so
$ nano /etc/pam.d/common-auth
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass
$ nano /etc/pam.d/common-password:
password sufficient pam_winbind.so
password required pam_unix.so nullok obscure min=4 max=8 md5
$ nano /etc/pam.d/common-session:
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
Все, теперь можно перегрузить linux-машину и опробовать доменную авторизацию.
Последние комментарии
Как можно бесплатно получить ссылку 15 советов
Установка Android 2.2.2 на смартфон МТС EVO
Замена контроллера домена. Перенос контроллера домена.