Установка Samba PDC + Squid со
сквозной ntlm авторизацией.
В предыдущей статье мы решили задачу удаленного доступа к серверу и научиличь пробрасывать порты. Это самое простое конфигурирование FreeBSD.
Чаcто, особенно в огранизациях, возникает задача настройки более серьезной сетевой инфраструктуры. При этом обычно требуется:
Настройка переносимых сетевых профилей, когда каждый сотрудник, введя свой логин и пароль на любом компьютере, подключается к своему рабочему окружению (рабочий стол, документы, сетевые настройки и общие папки). Для этого используют контроллер домена.
Настройка инфраструктуры личных и общих сетевых папок с гибкой настройкой доступа. К примеру, у каждого сотрудника есть сетевая личная папка, в которой он хранит рабочую информацию. Также, есть общие сетевые папки для обмена файлами между сотрудниками. Эту задачу решает SMB сервер.
Доступ к интернет строго фиксируется и контроллируется по логинам сотрудников. При этом у сотрудника, работающего на компьютере не должны повторно спрашиваться логин и пароль для доступа к интернет. Здесь применяют PROXY сервер.
Для настройки данного функционала мы будем использовать:
Обычно описывается раздельная настройка данного функционала, при котором samba работает на одной машине, а squid - на другой. Данная статья описывает нюансы настройки samba pdc squid ntlm на одной машине.
Установка samba в режиме PDC.
Итак, у нас есть сервер, работающий под ОС FreeBSD в качестве шлюза и DHCP-сервера. Теперь можно добавить функционал Primary Domain Controller’а.
1. Устанавливаем самбу портов:
#cd/usr/ports/net/samba34 (в версии 35 свозная авторизация не работает)
#make install clean
Далее пойдет компиляция, минут на 15, зависит от параметров сервера
2. В файл /etc/rc.conf, добавляем строчки для автоматического запуска samba и сопутствующих служб:
samba_enable=”YES”
nmbd_enable=”YES”
smbd_enable=”YES”
winbindd_enable=”YES”
3. Настраиваем /usr/local/etc/smb.conf
Ниже приведен конфиг домена SMBDOMAIN:
[global]
workgroup = SMBDOMAIN
netbios name = SRV
server string = SambaPDC
interfaces = Используемые интерфейсы
log level = 2
log file = /var/log/samba/log.%m
max log size = 200
logon path = %Lprofiles%U
logon home = %L%U
logon drive = H:
domain logons = Yes
os level = 255
preferred master = Yes
domain master = Yes
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
[homes]
comment = Home Directories
read only = No
browseable = No
[profiles]
path = /usr/home/samba/profiles
read only = No
create mask = 0600
directory mask = 0700
browseable = No
[netlogon]
comment = Network Logon Service
path = /usr/home/samba/netlogon
browseable = No
#Пример создания папки шары, куда имеет доступ только Admin (Папку по указанному пути, нужно создавать руками!)
[distr]
path = /usr/home/samba/distr
valid users = Admin
admin users = Admin
read only = No
Пример файла smb.conf можно скачать здесь.
4. Далее создаем необходимые самбе папки:
#mkdir –p /usr/home/samba/profiles
#mkdir –p /usr/home/samba/netlogon
#mkdir –p /usr/home/samba/distr
5. Создание юзеров и добавление машин в домен.
Создаем пользователя root для самбы, именно этим юзером будем добавлять машины в домен:
#smbpasswd -a root
Создаем необходимые группы пользователей. Каждый пользователь будет состоять в одной из групп, при этом для каждой группы можно настроить свои права.
#pw group add nt_users
#pw group add nt_admins
#pw group add nt_buhgalters
Далее нужно создать виндовые группы юзеров и скрестить их с юникс-группами:
# net groupmap add ntgroup="Domain Admins" unixgroup=nt_admins type=d
Где DomainAdmins – группа винды (именно ей будет принадлежать наш пользователь в Windows); nt_admins – юникс группа, созданная на шаг раньше.
Теперь можно регистрировать всех пользователей домена.
Для этого необходимо:
1. Создать unix пользователя:
#adduser
Username: testuser
Fullname: JustForTesting //Будет отображаться в Пуске пользователя
Uid (Leave empty for default):
Login group [testuser]: nt_admins //Указываем группу
Login group is nt_admins. Invite testuser into other groups? []:
Loginclass [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/testuser]: /dev/null //Обязательно пишем так
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: no
Username : testuser
Password : <disabled>
Full Name : Just For Testing
Uid : 1016
Class :
Groups : nt_admins
Home : /dev/null
Home Mode :
Shell : /bin/sh
Locked : no
OK? (yes/no):
2. Добавить этого пользователя в БД SAMBA:
#smbpasswd -a ИМЯ_ПОЛЬЗОВАТЕЛЯ
В последствии, если необходимо перенести пользователя из группы nt_users например в nt_buhgalters или nt_admins:
#pw usermod -n ИМЯ_ПОЛЬЗОВАТЕЛЯ -g ОСНОВНАЯ_ГРУППЫ –G ДОП_ГРУППЫ
Далее необходимо создать учетные записи компьютеров, которые мы будем подключать к домену.
Учетная запись компьютера отличается от учетной записи обычного пользователя только символом "$" в конце названия.
Допустим у нас есть 3 Windows ПК, "comp1", "comp2" и "comp3", сделаем для них соответствующие учетные записи. Совет: чтобы не мусорить и не плодить лишние группы, можно добавить все ПК в одну группу, например nt_computers.
#pw group add nt_computers
Создадим учетные записи для Windows компьютеров указав для них основной группой nt_computers
#pw useradd -n comp1$ -d /dev/null -s /usr/bin/false –g nt_computers
#pw useradd -n comp2$ -d /dev/null -s /usr/bin/false –g nt_computers
#pw useradd -n comp3$ -d /dev/null -s /usr/bin/false –g nt_computers
ВАЖНО: также нужно добавить в группу компьютеров САМ СЕРВЕР в данном случае это:
#pw useradd -n srv$ -d /dev/null -s /usr/bin/false –g nt_computers
Установка squid с ntlm авторизацией.
В нашем случае прокси-сервер squid с подключенным модулем ntlm - аутентификации будет автоматически брать данные о пользователе, который пытается выйти в интернет, сравнивать их с базой пользователей samba (для этого как раз и служит ntlm-модуль), и в случае, если пользователь в БД нашелся (а для нас так и есть - ведь все наши сотрудники занесены в БД samba как пользователи домена), будет пускать его в Интернет.
1. Устанавливаем Squid
#cd /usr/ports/www/squid31
#make install clean
2. Создаем файл конфига
#cat /usr/local/etc/squid/squid.conf.defaul > /usr/local/etc/squid/squid.conf
3. Настраиваем файл /usr/local/etc/squid/squid.conf в соответствии с нужными параметрами.
Вот пример настройки squid для сквозной авторизации (юзеру не придется вводить пароль при открытии браузера/входе на прокси-сервер)
ример файла squid.conf можно скачать здесь.
После этого обязательно проставить права на папку winbindd_privilegied:
#chown –R root:squid /var/db/samba34/winbindd_privileged
4. Создадим (SWAP) для прокси сервера Squid
#squid -z
2009/10/25 18:03:26| Creating Swap Directories
Далее добавляем в /etc/rc.conf строку для автоматического запуска squid после перезагрузки:
squid_enable="YES"
После этих действий советую перезагрузить сервер.
Итого
После загрузки у нас выйдет полноценный домен-контроллер, с поддержкой прокси со сквозной авторизацией пользователей. Для анализа логов использования Интернет, можно установить любой анализатор логов squid.
В следующей статье мы опишем установку и настройку для данных целей анализатора lightsquid.
Обсудить статью можно в соответствующем РАЗДЕЛЕ нашего ФОРУМА.
(c)shop.nativepc.ru
При цитировании любой части данной статьи ссылка на shop.nativepc.ru обязательна!