Установка Samba PDC + Squid со 

сквозной ntlm авторизацией.


В предыдущей статье мы решили задачу удаленного доступа к серверу и научиличь пробрасывать порты. Это самое простое конфигурирование FreeBSD.

Чаcто, особенно в огранизациях, возникает задача настройки более серьезной сетевой инфраструктуры. При этом обычно требуется:

Настройка переносимых сетевых профилей, когда каждый сотрудник, введя свой логин и пароль на любом компьютере, подключается к своему рабочему окружению (рабочий стол, документы, сетевые настройки и общие папки). Для этого используют контроллер домена.

Настройка инфраструктуры личных и общих сетевых папок с гибкой настройкой доступа. К примеру, у каждого сотрудника есть сетевая личная папка, в которой он хранит рабочую информацию. Также, есть общие сетевые папки для обмена файлами между сотрудниками. Эту задачу решает SMB сервер.

Доступ к интернет строго фиксируется и контроллируется по логинам сотрудников. При этом у сотрудника, работающего на компьютере не должны повторно спрашиваться логин и пароль для доступа к интернет. Здесь применяют PROXY сервер.

Для настройки данного функционала мы будем использовать:

  • Samba в режиме PDC  - Primary Domain Controller (решает 1 и 2 задачу из списка выше): для организации контроллера домена, настройки инфраструктуры сетевых папок, а также в качестве хранилища авторизационных данных для доступа к интернет через proxy.
  • Squid proxy сервер с модулем ntlm-аутентификации для авторизации доступа к интернет и фиксирования сетевого траффика сотрудников организации. При этом модуль ntlm-аутентификации как раз и позволяет, при попытке доступа сотрудника к Интернет, использовать его  логин и пароль в "прозрачном" режиме, не спрашивая их повторного ввода. При этом все отчеты об использовании Интернет будут содержать не только IP адреса компьютеров, но также и имя пользователя, заходившего в интернет.

Обычно описывается раздельная настройка данного функционала, при котором 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

FullnameJustForTesting //Будет отображаться в Пуске пользователя

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 use
radd -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 обязательна!