Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
Очумелые Ручки
OpenBSD
  Демоны
  squid ntlm
  exim + cyrus-imapd
  Arpwatch
  Web
  Packet Filter
  Настройка
  Файловая система
Cisco


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

оценить статью:

Михаил, 2008-02-25 в 15:41:03

зачем собирать самбу --with-ads, устанавливать security=ads в конфигурационном файле, а потом писать net rpc join иместо net ads join?
Зачем собирать поддержку ads, если она вообще не используется в дальнейшем?

Gering, 2008-02-26 в 6:34:27

Статья для так себе. Но есть много неточностей. Например путей вроде /usr/local/etc не придусмотрено :) (разве что вручную). Добавление переменных конфигурирования порта должно осуществляться посредством env, а не редактированием Makefile. Автор пытаеться провести какие-то противо- естественные надругательства над портом :))
Ещё немного опыта, и всё будет хорошо.

Avatara, 2008-04-10 в 2:08:18

Нормальная статья, понимание того что нужно сделать дабы вопрос был решен она дает, вопрос конфигурить порт переменными или правкой мэйкфайла сугубо личный, мне например проще сделать cp port port_old и поправить мэйкфайл в порте ручками или патчем, и пару раз его еще пролистать чтобы себя перепроверить, чем выдавать разные env блабла... Любую статью прежде всего надо анализировать и применять с учеом своих реалий... Так что в качестве руководства общего пойдет отлично, спасибо автору.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 17 чел.
За последние 30 мин было: 85 человек
За сегодня было
4908 показов,
708 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1398 секунд
Из них PHP: 56%; SQL: 44%; Число SQL-запросов: 61 шт.
Исходный размер: 78950; Сжатая: 16705