www.lissyara.su
—> статьи
—> OpenBSD
—> Демоны
—> squid ntlm
Настройка Squid с аутентификацией ntlm
Автор: fr33man.
Нужно было настроить прокси-сервер с ntlm авторизацией. Решил описать данный процесс, так как наткнулся на некторые грабли, при установке.
Итак, первым делом необходимо установить самбу. Но по умолчанию самба компилируется без поддержки ads, что меня немного напрягало. Недолгие поиски в инете дали патчик для Makefil'а. Он оказался какой-то кривоватый, хотя может мои кривые руки. Короче пришлось самому патчить. ))) После чего все заработало. Приступим:
# cd /usr/ports/net/samba
# ftp https://www.tiifp.org/quentin/samba_winbind.patch
Trying 212.112.249.34...
Requesting https://www.tiifp.org/quentin/samba_winbind.patch
100% |**************************************************| 2208 00:00
Successfully retrieved file.
# patch -p1 < samba_winbind.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r -u -N samba/Makefile samba_winbind/Makefile
|--- samba/Makefile Tue Oct 3 16:07:10 2006
|+++ samba_winbind/Makefile Tue Sep 26 05:51:14 2006
--------------------------
Patching file Makefile using Plan A...
Hunk #1 succeeded at 63 with fuzz 1 (offset 2 lines).
Hunk #2 failed at 82.
Hunk #3 succeeded at 105 (offset -3 lines).
1 out of 3 hunks failed--saving rejects to Makefile.rej
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r -u -N samba/files/krb5-config samba_winbind/files/krb5-config
|--- samba/files/krb5-config Thu Jan 1 01:00:00 1970
|+++ samba_winbind/files/krb5-config Tue Sep 26 02:08:42 2006
--------------------------
(Creating file files/krb5-config...)
Patching file files/krb5-config using Plan A...
Empty context always matches.
Hunk #1 succeeded at 1.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r -u -N samba/files/krb5-config.orig samba_winbind/files/krb5-config.orig
|diff -r -u -N samba/pkg/PFRAG.winbind samba_winbind/pkg/PFRAG.winbind
|--- samba/pkg/PFRAG.winbind Thu Jan 1 01:00:00 1970
|+++ samba_winbind/pkg/PFRAG.winbind Tue Sep 26 06:47:56 2006
--------------------------
(Creating file pkg/PFRAG.winbind...)
Patching file pkg/PFRAG.winbind using Plan A...
Empty context always matches.
Hunk #1 succeeded at 1.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r -u -N samba/pkg/PLIST samba_winbind/pkg/PLIST
|--- samba/pkg/PLIST Tue Oct 3 16:07:10 2006
|+++ samba_winbind/pkg/PLIST Tue Sep 26 07:29:33 2006
--------------------------
File to patch: pkg/PLIST-main
Patching file pkg/PLIST-main using Plan A...
Hunk #1 succeeded at 105 (offset 1 line).
done
#
| Тут я начал компиляцию и ничего не получил в результате(не было бинарников wbinfo и winbindd). После недолгих поисков я добавил в Makefile следующие строки:
.if ${FLAVOR:L:Mwinbind}
CONFIGURE_ARGS+= --with-ldap --with-ads --with-winbind
LIB_DEPENDS+= ldap,lber::databases/openldap \
utf8::misc/libutf8
WANTLIB+= gssapi krb5
.else
CONFIGURE_ARGS+= --without-ldap --without-ads --without-winbind
.endif
| После чего все стало немного лучше, но сборка пакета вылетала с ошибкой, от которой я спасся так:
# cp /usr/ports/net/samba/pkg/PFRAG.winbind \
/usr/ports/net/samba/pkg/PFRAG.winbind-main
| После этого все почистил и запустил сборку пакета заново. Все собралось успешно. Теперь добавляем:
# pkg_add /usr/ports/packages/i386/all/samba-3.0.24-main-winbind.tgz
samba-3.0.24-main-winbind: complete
--- samba-3.0.24-main-winbind -------------------
To start the Samba server and naming service enter the following commands:
$ sudo /usr/local/libexec/smbd # Start the Samba server component
$ sudo /usr/local/libexec/nmbd # Start the Samba naming service
The configuration file, found at /etc/samba/smb.conf can be used right
away for simple configurations. Local users must be added to the Samba user
database using the smbpasswd utility in order to use the Samba server.
$ sudo smbpasswd -a <username>
To have Samba start whenever the machine boots, add the following lines to the
/etc/rc.local script:
if [ -x /usr/local/libexec/smbd ]; then
/usr/local/libexec/smbd
fi
if [ -x /usr/local/libexec/nmbd ]; then
/usr/local/libexec/nmbd
fi
For more information and complete documentation, install the samba-docs package
and check the /usr/local/share/doc/samba directory.
#
| Ну теперь проверяем, есть ли у нас в системе winbindd:
# ls -la /usr/local/libexec/winbindd
-rwxr-xr-x 1 root wheel 2038782 Nov 7 02:38 /usr/local/libexec/winbindd
#
| Отлично - все на месте. Теперь идем рихтовать /etc/samba/smb.conf:
#
# /usr/local/etc/smb.conf
#
#======================= Global Settings =======================
[global]
# netbios имя домена
workgroup = TEACHERS
# Строка комментария
server string = Teachers Proxy Server
# Режим безопасности
security = ads
# Права доступа
hosts allow = 192.168. 127.
# расположение лог файла и его размер
log file = /var/log/samba/samba.log
max log size = 500
# Указываем, откуда пароли брать. )
password server = spider.teachers.
# Контроллер домена
realm = spider.teachers.
# Храним все в файлах
passdb backend = tdbsam
# Сетевые настройки
socket options = TCP_NODELAY
# Самба не является PDC
local master = no
domain master = no
preferred master = no
domain logons = no
os level = 0
# Русский язык
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866
# Шифрованные пароли
encrypt passwords = yes
# Настройки winbind
winbind use default domain = yes
winbind uid = 1-65535
winbind gid = 1-65535
winbind enum users = yes
winbind enum groups = yes
| Добавляем компутер в домен и запускаем winbindd:
# net rpc join -U admin
Password:
Joined domain TEACHERS.
# /usr/local/libexec/winbindd -d 3
#
| Теперь тестируем:
# wbinfo -g
computers
... skipped ...
# wbinfo -u
fr33man
... skipped ...
#
| Все работает, добавляем winbindd в автозагрузку, редактируя /etc/rc.local:
# Starting winbindd
if [ -x /usr/local/libexec/winbindd ]; then
echo -n ' winbindd'
/usr/local/libexec/winbindd -d 3
fi
| Теперь устанавливаем squid... С ним возникли тоже некоторые трудности: он не поддерживал ntlm аутентификацию... Он честно писал, что не знает, что такое ntlm.. Пришлось идти в порты и править Makefile изменяя:
--enable-auth="basic digest"
| на
--enable-auth="basic ntlm"
| После этого все собралось и установилось на ура.
Рихтуем конфиг squid'а. Я туда ничего не добавлял, кроме параметров аутентификации и acl'ов:
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl USERS proxy_auth REQUIRED
http_access allow USERS
| Теперь создаем директории для кэша:
# squid -z
2007/11/07 20:07:32| Creating Swap Directories
#
| И даем сквиду право писать в сокет winbindd:
# chown :_squid /var/spool/samba/winbindd_privileged/
| Все, добавляем squid в автозагрузку и запускаем его:
# cat >> /etc/rc.local
# Starting squid
if [ -x /usr/local/sbin/squid ]; then
echo -n ' squid'
/usr/local/sbin/squid
fi
^D
# /usr/local/sbin/squid
| Проверяем запустился ли он:
# tail /var/squid/logs/cache.log
2007/11/07 20:12:47| Store logging disabled
2007/11/07 20:12:47| Rebuilding storage in /var/squid/cache (DIRTY)
2007/11/07 20:12:47| Using Least Load store dir selection
2007/11/07 20:12:47| Set Current Directory to /var/squid/cache
2007/11/07 20:12:47| Loaded Icons.
2007/11/07 20:12:47| Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 44.
2007/11/07 20:12:47| Accepting ICP messages at 0.0.0.0, port 3130, FD 46.
2007/11/07 20:12:47| Accepting SNMP messages on port 3401, FD 47.
2007/11/07 20:12:47| WCCP Disabled.
2007/11/07 20:12:47| Ready to serve requests.
#
| Вроде запустился... Пробуем пройти через него, при этом смотря в access.log. Увидели себя? Ну тогда отлично. )))
Ну на этом вроде все. )
размещено: 2008-02-23,
последнее обновление: 2008-02-23,
автор: fr33man
|
Комментарии пользователей [3 шт.]