LinuxForum.Fans
Тема

Debian Squeeze + Samba + AD + Squid

Автор: Nigelist 99 сообщений 30237 просмотров
#208660

Стоит сервер на базе Debian Squeeze 6.0.3 + Samba. Сервер необходимо ввести в AD, организовать доступ к ресурсам файлового сервера посредством аккаунтов AD, организовать раздачу и учет трафика, опять же посредством аккаунтов AD. Пытался реализовать вышеописанное по этой статье, не получилось, застрял на этапе ввода в домен. Ввожу:[console]net ads join -U samba[/console]

Ввожу пароль:[console]Enter samba's password:[/console]

Получаю:[console]Failed to join domain: failed to find DC for domain PHARMLIDER.LOCAL[/console]

Может кто из форумчан имеет опыт введения Debian-сервера в AD? И натыкался на эти грабли? Или может кто даст ссылку на хорошую, подробную статью с разъяснениями действий и описанием подводных камней?

Читал пару статей на форуме, но они немного сумбурно изложены. Понять не смог. Был бы благодарен за ссылки подробные статьи с пояснениями, по следующим темам:

  • Настройка шлюза, настройка брандмауэра, настройка маршрутизации
  • Организация системы учета и проверки трафика, блокирование ресурсов по заданному списку и по маске. Доступ должен проводиться посредством аккаунтов AD
  • Ввод сервер на базе Debian в AD Windows Server 2003,
  • Организация доступа к ресурсам файлового сервера, посредством аккаунтов AD.

Мне интересно, в каком порядке все это устанавливается/настраивается? Какую систему учета трафика выбрать исходя из вышеуказанных требований? Что лучше выбрать для проверки трафика (ClamAV, Dr.Web)?

Схема организации шлюза

Показать

Ссылки, которые нашел:
Debian Squeeze, Squid, Kerberos/LDAP аутентификация, интеграция Active Directory и Cyfin Reporter

Очень прошу давать подробные, обстоятельные ответы, с пояснениями и комментариями. Если все получиться, соберу в отдельную статью.

#208666

в вкратце

Нам дано:

Домен RA.LOCAL

Имя компьютера домена RA-DC.RA.LOCAL ип 192.168.32.1

Имя нашего прокси сервера RA-Proxy ип 192.168.32.2

Правим hosts

[console]nano /etc/hosts

192.168.32.2 RA-Proxy.RA.local
192.168.32.1 RA-DC.RA.LOCAL
[/console]

Важно!!! nslookup RA-DC.RA.LOCAL должен отрабатывать правильно.

Ставим

[console]apt-get install samba winbind krb5-admin-server krb5-clients krb5-config krb5-doc krb5-kdc krb5-user ntpd[/console]

Пока не продолжили важно синхронизировать время!

[console]nano /etc/ntp.conf[/console]

Приводим к такому виду параметр server

[console]#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
server RA-DC.RA.LOCAL[/console]

Приводим конфиги в нормальный вид. Можно брать мои ток правьте под себя.

[console]cat /etc/krb5.conf

[libdefaults]
default_realm = RA.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h

# 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

# The following encryption type specification will be used by MIT Kerberos
# if uncommented. In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn’t know about (such as
# old versions of Sun Java).

# default_tgs_enctypes = des3-hmac-sha1
# default_tkt_enctypes = des3-hmac-sha1
# permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true

[realms]
RA.LOCAL = {
kdc = RA-DC.RA.LOCAL
admin_server = RA-DC.RA.LOCAL
default_domain = RA.LOCAL
}
[domain_realm]
.RA.LOCAL = RA.LOCAL
RA.LOCAL = RA.LOCAL

[login]
krb4_convert = true
krb4_get_tickets = false
[/console]

[console]cat /etc/samba/smb.conf

# netbios имя домена
workgroup = RA
netbios name = ra-proxy

# Строка комментария сервера
server string = Squid with LDAP auth

# Режим безопасности, в нашем случае ads
security = ads

# расположение лог файла и его размер
log file = /var/log/samba/samba.log
max log size = 500

# Здесь необходимо указать dns имя или ip контроллера домена,
# если указываете dns имя необходимо убедиться, что разрешение
# имен работает правильно
password server = 192.168.32.1

# dns имя Active Directory
realm = RA.LOCAL

# Тип хранилища.
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 = UTF-8
unix charset = UTF-8
dos charset = cp866

# Использовать шифрованные пароли
encrypt passwords = yes

# Настройки winbind
winbind use default domain = no
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
[/console]

squid.conf

[console]auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param basic program /usr/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
[/console]

[console]cat /etc/nsswitch.conf | grep winbind

group: files winbind
passwd: files winbind
shadow: files winbind
[/console]

После того как всё поправили надо сразу подправить winbind

[console]nano /etc/init.d/winbind

chgrp proxy $PIDDIR/winbindd_privileged/ || return 1[/console]

Если не перезагружать демоны то какой то странный глюк.

[console]nano /etc/rc.local

/etc/init.d/samba restart
/etc/init.d/winbind restart
exit 0
[/console]

Перед тем как продолжить лучше перезагрузить демоны

[console]/etc/init.d/ntp restart

/etc/init.d/samba restart

/etc/init.d/winbind restart
[/console]

Теперь важно чтоб всё обработало как ниже:

[console]net ads join -U Admin%pass

Using short domain name — RA
Joined ‘GentooRouter’ to realm ‘RA.LOCAL’
[/console]

Тут у меня выскочило ошибка днс но я тупо пропустил

No DNS domain configured for ra-proxy. Unable to perform DNS Update.
DNS update failed!

Проведём ряд тестов

[console]wbinfo -p

Ping to winbindd succeeded on fd 4

wbinfo -t

checking the trust secret via RPC calls succeeded

wbinfo -u

YOURDOMAIN\DomainAdminAccount
YOURDOMAIN\администратор
YOURDOMAIN\гость
YOURDOMAIN\tsinternetuser
YOURDOMAIN\krbtgt
YOURDOMAIN\freebsd$
YOURDOMAIN\server$

wbinfo -g

YOURDOMAIN\компьютеры домена
YOURDOMAIN\контроллеры домена
YOURDOMAIN\администраторы схемы
YOURDOMAIN\администраторы предприятия
YOURDOMAIN\издатели сертификатов
YOURDOMAIN\администраторы домена
YOURDOMAIN\пользователи домена
YOURDOMAIN\гости домена
YOURDOMAIN\владельцы-создатели групповой политики
YOURDOMAIN\серверы ras и ias
YOURDOMAIN\dnsadmins
YOURDOMAIN\dnsupdateproxy
[/console]

Если у вас такие же результаты, то значит все нормально и winbind работает правильно. Теперь просмотрим информацию о домене и AD.

[console]wbinfo -D RA.LOCAL

Name : RA
Alt_Name : RA.LOCAL
SID : S-1-5-21-220523388-842925246-839522115
Active Directory : Yes
Native : Yes
Primary : Yes
Sequence : 3143

net ads info

LDAP server: 192.168.32.1
LDAP server name: RA-DC.RA.local
Realm: RA.LOCAL
Bind Path: dc=RA,dc=LOCAL
LDAP port: 389
Server time: Сбт, 30 Апр 2011 02:45:47 MSD
KDC server: 192.168.32.1
Server time offset: -1
[/console]

Проверим аутентификацию

[console]wbinfo –authenticate=RA\\ADMIN%PASS

plaintext password authentication succeeded
challenge/response password authentication succeeded
[/console]

Если у вас такие же результаты, то поздравляю, самбу мы настроили. Теперь осталось только указать пользователя, от имени которого будет проходить аутентификация.

[console]net setauthuser -U RA\\ADMIN[%PASS][/console]

Проверяем

[console]net help getauthuser

RA\RA\ADMIN[%PASS][/console]

Теперь настройте Squid как вам по душе. Ну на этом всё! Теперь прошедшие авторизацию AD могут спокойно пользоваться проксёй без как либо паролей.

Полезные мелочи:

Для кеширования записей можно добавить в smb.conf

winbind offline logon = true
winbind cache time = 6000

Всё проверенно на debian 6 но говорю сразу глюки есть squid + ad (я отказался от затеи)

#208672

Чуть не забыл ещё надо будет BIND

#208673
Kettler написал:
Всё проверенно на debian 6 но говорю сразу глюки есть squid + ad (я отказался от затеи)

А есть ли внятная замена Squid, которая будет нормально работать с AD?

#208674

хз если честно пока смотрю в сторону 4 samba

#208677
Kettler написал:
я не знаю если честно пока смотрю в сторону 4 samba

А traffpro не пробовали в связке с AD?

Nigelist написал:
Важно!!! nslookup RA-DC.RA.LOCAL должен отрабатывать правильно.

Так правильно?[console]nslookup 1cserver.pharmlider.local
Server: 212.154.163.162
Address: 212.154.163.162#53

** server can't find 1cserver.pharmlider.local: NXDOMAIN[/console]

#208681

а какой ип у 1cserver.pharmlider.local
traffpro нет но вроде есть не плохая интеграция

#208685
Kettler написал:
а какой ип у 1cserver.pharmlider.local
traffpro нет но вроде есть не плохая интеграция

Опа, я неправильное имя тестировал, 1cserver.pharmlider.local - имя proxy-сервера, а имя контроллера домена - zeus.pharmlider.local. Адрес IP - 192.168.29.1. Выхлоп команды nslookup:

[console]nslookup zeus.pharmlider.local
Server: 212.154.163.162
Address: 212.154.163.162#53
** server can't find 1cserver.pharmlider.local: NXDOMAIN[/console]

Еще вопрос. При установке пакетов связанных с kerberos, задают вопрос:

Введите имена хостов для серверов Kerberos в области Kerberos PHARMLIDER.LOCAL через пробел.
Какие хосты надо вводить?
#208689

Сначала Bind настрой у тя запросы не правильно

#208693
Kettler написал:
Сначала Bind настрой у тя запросы не правильно

Не подскажете как?

--------------------Upd--------------------
Не прописал в /etc/resolv.conf IP контроллера домена. Добавил, теперь выдает такое:
[console]nslookup zeus.pharmlider.local
Server: 192.168.11.1
Address: 192.168.11.1#53

** server can't find 1cserver.pharmlider.local: NXDOMAIN[/console]
Вроде бы правильно.

#208702

теперь лучше

#208706
Kettler написал:
теперь лучше
Nigelist написал:
Еще вопрос. При установке пакетов связанных с kerberos, задают вопрос:

Введите имена хостов для серверов Kerberos в области Kerberos PHARMLIDER.LOCAL через пробел.

Какие хосты и как надо вводить?Мой контроллер домена - zeus.pharmlider.local
Мой файловый сервер - 1cserver.pharmlider.local
Что вводить?

-------------------------Upd-------------------------
В предыдущем сообщении неправильный выхлоп вставил. На самом деле так:
[console]nslookup zeus.pharmlider.local
Server: 192.168.11.1
Address: 192.168.11.1#53
Name: zeus.pharmlider.local
Address: 192.168.11.1[/console]

#208710

В каком конфиге это нашол?

#208717

Что именно?

#208731

Да пофиг что потом конфиг всё равно отлаживать

#208752

Попробовал:
[console]net ads join -U samba
Enter samba's password:
Using short domain name -- PHARMLIDER
Joined '1CSERVER' to realm 'pharmlider.local'[/console]

Это значит, что получилось? И что значит строчка:
[console]Using short domain name -- PHARMLIDER[/console]

#208803

проверьте ещё службу winbind пашет ли

#208855

Перевёл сквид на групповую политику посмотрим дня 2 что выйдет

#209011

А можно в /etc/network/interfaces, в параметре gateway указывать не ip-адрес или dns-имя, а напрямую интерфейс? Например:
[console]auto eth0
iface eth0 inet static
address 192.168.11.4
netmask 255.255.255.0
gateway eth1[/console]

#209013

Наконец то получилось ввести в домен!
Тесты прошли:

Показать
[console]root@1cserver:~# wbinfo -p
Ping to winbindd succeeded
root@1cserver:~# wbinfo -t
checking the trust secret for domain PHARMLIDER via RPC calls succeeded
root@1cserver:~# wbinfo -u
администратор
гость
support_388945a0
krbtgt
smanager1
admin
smanagerboss
director
smanager2
smanager3
smanager4
smanager
zmanager2
bookerboss
booker1
booker2
booker3
booker4
cashier
samba
root@1cserver:~# wbinfo -g
helpservicesgroup
telnetclients
пользователи dhcp
администраторы dhcp
компьютеры домена
контроллеры домена
администраторы схемы
администраторы предприятия
издатели сертификатов
администраторы домена
пользователи домена
гости домена
владельцы-создатели групповой политики
серверы ras и ias
dnsadmins
dnsupdateproxy
internet users[/console]

Теперь осталось нормально настроить шлюз и организовать проверку трафика (dr.web, clamav), блокирование ресурсов маске, раздачу интернету аккаунтам AD, ограничение трафика по аккаунтам AD. А также дать доступ к ресурсам файлового сервера по аккаунтам AD.

Войдите или зарегистрируйтесь, чтобы ответить.