Здравствуйте, установлен Ubuntu Server 10.04, введен в домен. Настроены kerberos, samba, squid. Этот линукс сервер находится в домене Active Directory. Squid настроен таким образом, чтобы пускать в интернет только пользователей домена из определенной группы, с использованием ntlm авторизации (без запроса пароля). Все работает до перезагрузки. После перезагрузки сервера ничего не работает. Я выяснил, что по каким-то причинам не запущена служба winbind (хотя должна).
Если провести последовательность действий:
/etc/init.d/winbind start (запуск службы)
/etc/init.d/winbind-ch.sh start (самодельный скрипт исправления прав доступа на /var/run/samba/winbindd_privileged)
squid -k reconfigure (перезапуск сквида)
То все начинает работать как и требуется. И это до следующей перезагрузки... Вопрос - из-за чего? (Добавление этих команд в /etc/rc.local не дает положительного результата, только запуск в консоли эти 3 команды помогают).
Дальше мои конфиги:
Домен: SPSDATA.LOCAL
IP контроллера домена: 192.168.1.250
IP этого линукса: 192.168.1.201
/etc/krb5.conf
[logging]
default = FILE:
kdc = FILE:
admin_server = FILE:
[libdefaults]
default_realm = SPSDATA.LOCAL
[realms]
SPSDATA.LOCAL = {
default_domain = SPSDATA.LOCAL
kdc = 192.168.1.250
admin_server = 192.168.1.250
}
[domain_realm]
.SPSDATA.LOCAL = SPSDATA.LOCAL
/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
/etc/init.d/winbind-ch.sh
#!/bin/sh
#set -x
WINBINDD_PRIVILEGED=/var/run/samba/winbindd_privileged
chmodgrp() {
chgrp proxy $WINBINDD_PRIVILEGED || return 1
chmod g+w $WINBINDD_PRIVILEGED || return 1
}
case "$1" in
start)
chmodgrp
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
/etc/samba/smb.conf
[global]
log file = /var/log/samba/samba.log
idmap gid = 10000-20000
socket options = TCP_NODELAY
domain master = no
encrypt passwords = yes
hosts allow = 192.168.1.
winbind use default domain = yes
realm = SPSDATA.LOCAL
passdb backend = tdbsam
server string = Gate Sampo.ru
idmap uid = 10000-20000
winbind enum users = yes
password server = 192.168.1.250
local master = no
workgroup = SPSDATA
client use spnego = yes
client ntlmv2 auth = yes
winbind enum groups = yes
os level = 0
security = ads
preferred master = no
max log size = 500
domain logons = no
/etc/squid/squid.conf
http_port 192.168.1.201:3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
access_log /var/log/squid/access.log
hosts_file /etc/hosts
cache_dir ufs /var/spool/squid 4096 16 256
maximum_object_size 10240 KB
dns_nameservers 192.168.1.201
acl all src 192.168.1.1-192.168.1.255
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl icq_ports port 5190
# Это хорошие сайты для всех без авторизации
acl url_for_all url_regex "/etc/squid/url_for_all.txt"
http_access allow all url_for_all
# TAG: auth_param
# Здесь мы указываем squid как следуею производить аутентификацию и настраиваем
# соответствущие схемы аутентифиуации. Внимание: порядок описания схем имеет
# значение, поэтому первой должна идти ntlm аутентификация.
# C помощью таких настроек мы разрешили доступ к прокси серверу только для
# пользователей группы InternetUsers. Если нам необходимо закрыть доступ
# определенному человеку, мы просто удалим его из группы InternetUsers.
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=S-1-5-21-926056156-4282430548-343822148-1322 --domain=SPSDATA
auth_param ntlm children 50
auth_param ntlm keep_alive on
#auth_param ntlm max_challenge_reuses 0
#auth_param ntlm max_challenge_lifetime 2 minutes
#auth_param ntlm use_ntlm_negotiate off
#Разрешим только пользователей из группы InternetUsers
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of=S-1-5-21-926056156-4282430548-343822148-1322
auth_param basic children 30
auth_param basic realm SPSDATA\username
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
refresh_pattern \.bz2$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.exe$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.gif$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.gz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ico$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.jpg$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.mid$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.mp3$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.pdf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.swf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.tar$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.tgz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.zip$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://ad\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://ads\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://adv\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://click\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://count\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://counter\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://engine\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://img\.readme\.ru 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://userpic\.livejournal\.com 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ru/bf-analyze 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ru/bf-si 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /advs/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /banners/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /cgi-bin/iframe/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
# TAG: acl
# ACL - Access Control List. Списки доступа к нашему прокси серверу.
# Здесь мы указываем кто имеет право, а кто нет, использовать наш прокси.
# ACL очень гибкое и мощное средство разграничения прав, но лично я для этих
# целей использую редиректор squidGuard.
# Разрешаем использовать наш прокси только прошедшим авторизацию.
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny icq_ports
http_access allow localhost
acl our_networks src 192.168.1.0/24
acl InternetUsers proxy_auth REQUIRED
acl deny_domains dstdomain "/etc/squid/deny_domains.txt"
external_acl_type nt_group %LOGIN /usr/lib/squid/wbinfo_group.pl
# Баннеры никому не нужны
acl url_ads url_regex "/etc/squid/denied_ads.acl"
http_access deny url_ads
# Всем админам из группы InternetAdmins можно все
acl InternetAdmins external nt_group InternetAdmins
http_access allow InternetAdmins all
# Запретим плохие сайты для простых смертных
http_access deny deny_domains
acl filetypes urlpath_regex -i "/etc/squid/denied_filetypes.acl"
http_access deny filetypes
# Пустим в инет обычных пользователей
http_access allow InternetUsers
# Больше никому не дадим инета
http_access deny all
http_reply_access allow all
icp_access allow all
# TAG: http_reply_access
# Разрешает ответы клиенту. Это дополнение к http_access.
# TAG: cache_effective_user
# Пользователь и группа, от которых работает squid
cache_effective_user proxy
# TAG: cache_effective_group
cache_effective_group proxy
# TAG: visible_hostname
# Данное имя будет указываться в различных сообщениях (об ошибках и т.п.)
# По умолчанию будет подставляться значение, возвращаемое функцией gethostname()
visible_hostname gatesampo.spsdata.local