Настраиваем 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
Комментариев: 5
Бывает при настройке выскакивает ошибка:
$ wbinfo -p
Ping to winbindd failed
could not ping winbindd!
$ wbinfo -t
checking the trust secret via RPC calls failed
Could not check secret
Идем и смотрим логи в чем проблема, и на ходим в /var/log/samba/samba.winbindd
такие строки:
Вот что вычитал из источников в интеренет по этому поводу:
Права доступа на каталог /var/run/samba/winbindd_privileged
Они должны быть 750(rwx-r-x---).
Группой владельца должна быть группа squid.
НЕ НАДО добавлять никаких "ЛИШНИХ" прав.
в моем случаи группы squid нету вместо ее proxy:
$ chown -R root:proxy /var/run/samba/winbindd_privileged
$ /etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start
и все порядке:
$ wbinfo -t
checking the trust secret via RPC calls succeeded
В том же логе:
Спасибо большее за качественный мануал:)
Резать урлы по АД группам в такой связке можно? АД аутентификация прозрачная(не нужно вводить данные в браузере)?
HTTPS запросы тоже будет блокировать? Проблема заключается в том, что нужно поблокировать соц сети и просматривать статистику по пользователям, эта система может такое делать?
Да может блокировать, и есть просмотр статистике по пользователю