# 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 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. #