понедельник, 9 сентября 2013 г.

Smbldap-tools. Руководство пользователя

Smbldap-tools. Руководство пользователя


J.erome Tournier
Перевод Тренин Сергей, аkа greyzy
Версия : 1.7, от 22 апреля, 2008
Руководство применимо к версии smbldap-tools 0.9.3 (которое идет с пакетом версии 0.9.5, прим.перев.)
Оригинал документа является собственностью IDEALX (http://IDEALX.com), распространяется под условием лицензии GNU Free Documentation License (http://www.gnu.org/copyleft/fdl.html)
Обновление этого документа
Последняя версия этого документа может быть получена на странице проекта smbldap-tools по адресуhttp://gna.org/projects/smbldap-tools.

От переводчика: Данный документ может быть вам полезен в случае, если вы собираетесь поднять, или у вас уже есть действующий первичный контроллер домена на linux, в качестве клиентов которого будут выступать рабочие станции Windows XP. Инструменты, описываемые здесь, позволяют упростить управление учетными записями пользователей, групп и компьютеров на PDC, поднятом на связке Samba+LDAP.

Документация касается сугубо пакета smbldap-tools, поэтому перед прочтением необходимо иметь какое-то представление о терминах, понятиях и настройке серверов Samba и LDAP, в противном случае часть материала не будет вам ясна.

Содержание:

1. Ведение 
2. Установка 
3. Конфигурирование smbldap-tools 
4. Использование скриптов 
5. Samba и smbldap-tools 
6. Часто задаваемые вопросы 
7. Благодарности 
8. Приложения 

1. Введение

Smbldap-tools представляет из себя набор скриптов, обеспечивающий синхронную работу с базами данных пользователей, групп и компьютеров сервера Samba и LDAP каталога. Это инструмент как пользователей, так и администраторов систем Linux. Пользователи могут изменять их пароли так же, как и при использовании стандартной команды passwd
(к началу страницы)

1.1 Опробование

Инструмент smbldap-tools был опробован и протестирован на следующем программном обеспечении: 
- Linux CentOS4 (это будет работать на любой платформе); 
- Samba release 3.0.10; 
- OpenLDAP release 2.2.13; 
- Microsoft Windows NT 4.0, Windows 2000 and Windows XP Workstations and Servers. 
(к началу страницы)


2. Установка

2.1 Требования к программному обеспечению

Основное требование для использования smbldap-tools является наличие двух модулей Net::LDAP и Crypt::SmbHash. В большинстве случаев, вам потребуется модуль IO-Socket-SSL Perl для использования TLS.
Если вы хотите иметь возможность добавления, удаления, модификации пользователей и групп при помощи диспетчера пользователей под MS-Windows, сервер Samba и пакет smbldap-tools должны быть установлены на одном компьютере. Openldap может быть установлен на каком-либо другом компьютере. Но обязательно проверьте, чтобы ваш LDAP-клиент мог подключиться к серверу LDAP.
В этом документе не обсуждается установка Samba и OpenLDAP (но пакет Samba должен быть установлен с поддержкой LDAP, прим.перев.).
(к началу страницы)

2.2 Установка

Архив со скриптами smbldap-tools может быть загружен со страницы нашего проекта по адресуhttp://download.gna.org/smbldap-tools/packages. Так же здесь доступен архив для RadHat. Если вы получили версию, более новую, чем описана здесь, перед установкой прочитайте файл INSTALL. 
(к началу страницы)

2.2.1 Установка из rpm-пакета

Если у вас не RadHat, загрузите архив smbldap-tools-0.9.3.tar.gz. Распакуйте и скопируйте все Perl-скрипты в директорию /usr/sbin/ , также создайте директорию /etc/smbldap-tools/ и скопируйте туда два конфигурационных файла:
mkdir /etc/smbldap-tools/
cp *.conf /etc/smbldap-tools/
cp smbldap-* /usr/sbin/
Все конфигурирование smbldap-tools базируется на двух файлах:
smbldap.conf определяет общие параметры;
smbldap_bind.conf определяет административный аккаунт для связи с сервером LDAP.
Второй файл должен быть доступен для чтения только root. Установите такие права на эти файлы:
chmod 644 /etc/smbldap-tools/smbldap.conf
chmod 600 /etc/smbldap-tools/smbldap_bind.conf
(к началу страницы)

3. Конфигурирование smbldap-tools

Как было сказано выше, для конфигурирования используется всего два файла. Первый – smbldap.conf – позволяет вам установить общие параметры, и он доступен на чтение любому. Второй – smbldap_bind.conf – определяет два административных аккаунта для связи с первичным и вторичным (главным и подчиненным) LDAP-серверами, вы должны позаботиться, чтобы он был доступен на чтение только суперпользователю root. Скриптconfigure.pl, который вы можете найти в tarball или в директории с документацией (если установка была из prm-пакета) /usr/share/doc/smbldap-tools-0.9.3/, поможет вам заполнить эти файлы, выполните команду:
/usr/share/doc/smbldap-tools-0.9.3/configure.pl
Вследствие выполнения этого скрипта, будут получены параметры файла smb.conf и записаны в файлы конфигурации smbldap-tools. Исходя из предназначения этого скрипта, очевидно, что файл smb.conf уже должен быть сконфигурирован должным образом. Остановить скрипт можно командой Ctrl+C.
Проверьте перед использованием этого скрипта, что:
- два конфигурационных файла smbldap-tools находятся в директории /etc/smbldap-tools/;
- ваш Samba-сервер сконфигурирован и запущен (так скрипт сможет получить SID вашего домена).
(к началу страницы)

3.1 Файл smbldap.conf

Напоминаем, этот файл задает параметры, которые доступны для просмотра всем. Пример этого файла представлен в п. 8.1.1
Давайте рассмотрим параметры этого файла:
UID START и GID START – недействующий параметр
- этот параметр должен быть удален или закомментирован;
- доступные uid и gid сейчас по умолчанию определяются в значении sambaUnixIdPooldn="sambaDomainName=$". Позже будут рассмотрены параметры, имеющие к этому отношение ${sambaDomain} и ${suffix}.
SID – идентификатор безопасности домена
- пример: SID="S-1-5-21-3703471949-3718591838-2324585696"
- примечание: вы можете получить SID, используя команду net getlocalsid, сервер Samba при этом должен быть запущен.
slaveLDAP – вторичный (подчиненный) LDAP сервер
- пример: slaveLDAP="127.0.0.1"
- примечание: должно быть указано разрешенное DNS имя или IP адрес
slavePort – порт для связи со вторичным сервером
- пример: slavePort="389"
masterLDAP – первичный (основной) LDAP server
- пример: masterLDAP="127.0.0.1"
masterPort – порт для связи с первичный сервером
- пример: masterPort="389"
ldapTLS – определяет, желаете ли вы использовать TLS соединение для связи с LDAP сервером
– пример: ldapTLS="1"
– примечание: LDAP сервер должен быть сконфигурирован для поддержки ТLS соединения. См. п. 5.2 документа «Samba-LDAP Howto» (http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/). Если вы используете поддержку TLS, выберите порт 389 для соединения с первичным или вторичным сервером.
verify – вид проверки сертификата (нет, опционально или требовать).
– пример: verify="require"
– примечание: изучите man-страницу Net::LDAP, секция start tls section для изучения подробностей.

cafile – файл повышенной защищенности (дословно PEM-format file) включающий сертификат для CA которым будет доверять slapd.
– пример: cafile="/etc/smbldap-tools/ca.pem"

clientcert – файл, содержащий клиентский сертификат
– пример: clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.com.pem"

clientkey – файл, содержащий приватный ключ, который соответствует клиентскому сертификату.
- пример: clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.com.key"

suffix – отличительное имя поиска по базе
- пример: suffix="dc=idealx,dc=com"

usersdn – ветвь (выражаясь терминами LDAP), в которой могут быть найдены, или в которую должны добавляться записи о пользователях
– пример: usersdn="ou=Users,${suffix}"
– примечание: эта ветвь не связана со значением suffix (см. выше)

computersdn – ветвь, в которой могут быть найдены, или в которую должны добавляться записи о компьютерах
– пример: computersdn="ou=Computers,${suffix}"
– примечание: эта ветвь не связана со значением suffix (см. выше)

groupsdn – ветвь, в которой могут быть найдены, или в которую должны добавляться записи о группах
– пример: groupsdn="ou=Groups,${suffix}"
– примечание: эта ветвь не связана со значением suffix (см. выше)

idmapdn – строка указывает, где находятся значения Idmap (используется, если сервер Samba является членом домена)
– пример: idmapdn="ou=Idmap,${suffix}"
– примечание: эта ветвь не связана со значением suffix (см. выше)

sambaUnixIdPooldn – параметр, описывающий где хранятся следующие свободные uidNumber и gidNumber
– пример: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
– примечание: эта ветвь не связана со значением suffix (см. выше)

scope – поиск области.
- пример: scope="sub"

hash encrypt – способ хэширования паролей пользователей
– пример: hash encrypt="SSHA"
- примечание: параметр используется для хранения паролей unix и связан с параметром userPassword.

crypt salt format="%s" – если у предыдущего параметра установлено значение CRYPT, вы можете установить тип шифрования «salt». По умолчанию используется значение ”%s”, но большинство систем способны генерировать пароль с хэшированием MD5, если вы установите ”$1$%.8s”. Этот параметр опционален.
userLoginShell – оболочка пользователя по умолчанию
– пример: userLoginShell="/bin/bash"
– примечание: значение хранится в атрибуте loginShell (см. п. 
8.2).
userHome – по умолчанию определяет, где будет находиться домашняя директория пользователя.
– пример: userHome="/home/%U"
– примечание: значение хранится в атрибуте homeDirectory (см. п. 8.2).
userGecos – описание учетной записи пользователя (в unix)
- пример: userGecos="System User"
defaultUserGid – по умолчанию основная группа для учетных записей пользователей
– пример: defaultUserGid="513"
– примечание: значение хранится в атрибуте gidNumber (см. п. 8.2).
defaultComputerGid – по умолчанию основная группа для компьютеров
– пример: defaultComputerGid="550"
– примечание: значение хранится в атрибуте gidNumber (см. п. 8.2).
skeletonDir – место, где находится «скелетная» директория, являющаяся шаблоном для директорий пользователей
– пример: skeletonDir="/etc/skel"
– примечание: эта опция используется лишь в том случае, если вы явно укажете создать домашнюю директорию пользователя в ходе создания нового пользователя
defaultMaxPasswordAge – параметр задает, через какое время (в днях) должен быть изменен пароль пользователя
- пример: defaultMaxPassword="55"
userProfile – общий ресурс Samba для хранения профилей пользователей
– пример: userProfile="\\PDC-SMB3\profiles\%U"
– примечание: значение хранится в атрибуте sambaProfilePath (см. п. 8.2).
userHomeDrive – буква диска, использующаяся в Windows для назначения домашней директории
– пример: userHomeDrive="K:"
userScript – по умолчанию имя скрипта, использующегося при входе пользователя в систему. Если не определено, автоматически будет использоваться скрипт username.cmd
– пример: userScript="%U"
– примечание: значение хранится в атрибуте sambaProfilePath.
mailDomain – домен, добавляемый к атрибуту пользователя ”mail”.
– пример: mailDomain="idealx.org"
with smbpasswd – параметр, устанавливающий, будет ли использоваться команда smbpasswd для установки пароля пользователя Samba (вместо утилиты mkntpwd).
– пример: with smbpasswd="0"
– примечание: значение может быть 0 или 1.
smbpasswd – путь, по которому находится smbpasswd
– пример: smbpasswd="/usr/bin/smbpasswd"
with slappasswd – параметр, устанавливающий, будет ли использоваться команда slappasswd для установки пароля пользователя Unix (вместо утилиты Crypt:: librairies)
– пример: with smbpasswd="0"
– примечание: значение может быть 0 или 1.
slappasswd – путь, по которому находится slappasswd
– пример: smbpasswd="/usr/sbin/slappasswd".
(к началу страницы)

3.2 Файл smbldap_bind.conf

Напоминаем, что этот файл должен быть доступен для просмотра только суперпользователю. Файл используется при модификации базы данных LDAP каталога, он включает имя пользователя и его пароль, который имеет право подключаться к первичному и вторичному LDAP каталогу. Пример этого файла есть в п. 8.1.2.
Рассмотрим параметры этого файла.
slaveDN – отличительное имя, используемое для связи с вторичным сервером LDAP
– пример 1: slaveDN="cn=Manager,dc=idealx,dc=com"
– пример 2: slaveDN=""
– примечание: это может быть админисративная учетная запись каталога или другая учетная запись LDAP, которая имеет достаточные права для чтения всего каталога (база данных вторичного сервера используется только для чтения). Анонимные подключения подключаются, как показано в примере 2.
slavePw – пароль для доступа к вторичному серверу LDAP.
– пример 1: slavePw="secret"
– пример 2: slavePw=""
– примечание: пароль должен быть записан в незашифрованном виде. Файл должен быть доступен для чтения только суперпользователю root! Анонимные подключения конфигурируются по примеру 2.
masterDN – отличительное имя, используемое для связи с первичным сервером LDAP
– пример: masterDN="cn=Manager,dc=idealx,dc=com"
– примечание: это может быть административная учетная запись каталога или другая учетная запись LDAP, который имеет достаточные права для внесения изменений в базу данных LDAP. Анонимный доступ к первичному серверу не допускается.
masterPw – пароль пользователя с административными полномочиями
– пример: masterPw="secret"
– примечание: пароль должен быть записан в незашифрованном виде. Еще раз убедитесь, что доступ к файлу не имеют те, кто его не должен иметь.
(к началу страницы)

4. Использование скриптов

4.1 Создание структуры каталога

Вы можете сделать начальную структуру LDAP каталога, используя скрипт smbldap-populate. Чтобы сделать это, проверьте, что учетная запись, описанная в файле /etc/smbldap-tools/smbldap_bind.conf, которая имеет полномочия для связи с первичный LDAP сервером, так же является административной учетной записью вашего LDAP каталога.
Ключи, которые могут быть использованы при запуске скрипта smbldap-populate, представлены в таблице.
Таблица 1
КлючОписание действия ключаЗначение по умолчанию
-u uidNumberпервый uidNumber, который будет назначен1000
-g gidNumberпервый gidNumber, который будет назначен1000
-a userЛогин администратораAdministrator
-b userЛогин гостяnobody
-e fileЭкспорт файла инициализации 
-i fileИмпорт файла инициализации 
В большинстве случаев для построения структуры LDAP каталога достаточно выполнить команду:
#smbldap-populate
Using builtin directory structure
Using the smbldap-tools scripts Revision : 1.7
adding new entry: dc=idealx,dc=com
adding new entry: ou=Users,dc=idealx,dc=com
adding new entry: ou=Groups,dc=idealx,dc=com
adding new entry: ou=Computers,dc=idealx,dc=com
adding new entry: ou=Idmap,dc=idealx,dc=org
adding new entry: cn=NextFreeUnixId,dc=idealx,dc=org
adding new entry: uid=Administrator,ou=Users,dc=idealx,dc=com
adding new entry: uid=nobody,ou=Users,dc=idealx,dc=com
adding new entry: cn=Domain Admins,ou=Groups,dc=idealx,dc=com
adding new entry: cn=Domain Users,ou=Groups,dc=idealx,dc=com
adding new entry: cn=Domain Guests,ou=Groups,dc=idealx,dc=com
adding new entry: cn=Print Operators,ou=Groups,dc=idealx,dc=com
adding new entry: cn=Backup Operators,ou=Groups,dc=idealx,dc=com
adding new entry: cn=Replicator,ou=Groups,dc=idealx,dc=com
adding new entry: cn=Domain Computers,ou=Groups,dc=idealx,dc=com
После этого шага, если вы больше не хотите использовать учетную запись cn=Manager,dc=idealx,dc=com, вы можете создать специальную учетную запись для Samba и smbldap-tools. Для подробностей обратитесь к п. 8.2.
Строка cn=NextFreeUnixId,dc=idealx,dc=org используется только для присвоения номеров uidNumber и gidNumber при создании новых пользователей и групп. По умолчанию нумерация (см. таб. 1) начинается с номера 1000. Для изменения этого числа используются ключи –u и –g. Например, если вы хотите, чтобы нумерация начиналась с числа 1500, при создании структуры каталога используйте такую команду:
#smbldap-populate -u 1500 -g 1500
(к началу страницы)

4.2 Управление пользователями

4.2.1 Добавление пользователей

Для добавления пользователей используется скрипт smbldap-useradd. Ключи, которые могут быть использованы при его запуске, представлены в таблице 2.
Пояснение: в четвертой колонке есть строки со значениями, которые начинаются с символа $. Значения таких ключей, если не назначены специально, берутся из файла /etc/smbldap-tools/smbldap.conf (с указанием секции этого файла).
Таблица 2
КлючОписание действия ключаПримерЗначение по умолчанию
-aСоздать учетную запись Windows, без ключа будет создан Posix-аккаунт  
-wСоздать учетную запись рабочей станции Windows  
-iСоздать учетную запись пользователя домена, с которым установлено доверие, подробности см. в п. 4.4  
-uНазначить uid-u 1003Первый из доступных uid
-gНазначить gid-g 1003Первый из доступных gid
-GДобавить новую учетную запись в одну или несколько групп (несколько записываются через запятую)-G 512,550Без ключа –G все созданные аккаунты попадают в группу 513 (пользователи)
-dНазначить домашнюю директорию-d /var/user$userHomePrefix /user
-sНазначить оболочку (login shell)-s /bin/ksh$userLoginShell
-cДобавить описание пользовательской учетной записи-c “admin user”$userGecos
-mСоздать домашнюю директорию пользователя и скопировать туда информацию из папки /etc/skel/  
-kНазначить «скелетную» директорию (используется без ключа -m)-k /etc/skel2$skeletonDir
-PПо окончании обратится к скрипту smbldap-passwd для установки пароля пользователя  
-AУстановить, имеет ли право пользователь изменять пароль, 0 – нет, 1- да-А 1 
-BУстановить, должен ли пользователь изменить свой пароль после первого входа в систему, 0 – нет, 1 - да-B 0 
-CНазначить домашнюю папку Samba-С \\PDC\homes$userSmbHome
-DУстановить букву диска, монтирующегося при входе пользователя в систему-D H:$userHomeDrive
-EУстановить скрипт, который будет выполняться при входе пользователя в систему- E common.bat$userScript
-FЗадать директорию с профилем пользователя-F \\PDC\profiles\user$userProfile
-HУстановить флаг учетной записи Samba, наподобие [NDHTUMWSLKI]-H [X]Например, флаг D означает, что учетная запись отключена, прим.перев.
-NУстановить реальное имя пользователя  
-SУстановить фамилию пользователя  
-MЛокальный электронный почтовый ящик (несколько записываются через запятую)-M testuser,aliasuser 
-TНепосредственный электронный почтовый ящик (несколько записываются через запятую)-T testuser@domain.org 
Например, если вы хотите создать пользователя с именем user_admin, который:
- будет являться пользователем Windows
- должен входить в группу с gid=512 (группа в Windows «Domain Admins»);
- иметь домашнюю директорию;
- не иметь оболочки входа (login shell);
- домашняя директория которого будет находиться в папке /dev/null;
- не иметь перемещаемого профиля;
- и которому при создании мы установим пароль.
то следует ввести команду:
#smbldap-useradd -a -G 512 -m -s /bin/false -d /dev/null -F "" -P user_admin
Еще несколько примеров (из Интернет, прим.перев.):
#smbldap-useradd –a –m –M pupkin –c "vasya pupkin" pupkin
#smbldap-useradd -a –c "Serg Alex Lad" -N "Serg Alex" -S "Lad" -s /bin/bash ladserg
(к началу страницы)

4.2.2 Удаление пользователей

Для удаления учетной записи пользователя используется скрипт smbldap-userdel, в таблице 3 представлены доступные ключи запуска:
Таблица 3
КлючОписание действия ключа
-rУдалить домашнюю директорию (не спрашивая)
-RУдалить домашнюю директорию в диалоговом режиме
Например, если вы хотите удалить пользователя user1 из LDAP каталога, и если вы также хотите удалить его домашнюю директорию, выполните команду:
#smbldap-userdel -r user1
Примечание: с осторожностью используйте ключ -r, посредством его применения вы можете лишиться ценных незарезервированных данных.
(к началу страницы)

4.2.3 Внесение изменений в учетную запись пользователя

Для внесения изменений в учетную запись пользователя используется скрипт smbldap-usermod. Ключи, используемые с этим скриптом, вынесены в таблицу 4. Наряду с этим, для внесения некоторых изменений в учетные данные, используется скрипт smbldap-userinfo. Ключи, используемые с этим скриптом, вынесены в таблицу 5. Этот скрипт может быть использован самими пользователями для внесения некоторых данных в их учетную запись (ACL должен быть должным образом настроен на сервере каталогов).
Таблица 4
КлючОписание действия ключаПример
-cДобавить описание пользовательской учетной записи-c “admin user”
-dНазначить домашнюю директорию-d /var/user
-uНазначить uid-u 1003
-gНазначить gid-g 1003
-GДобавить новую учетную запись в одну или несколько групп или удалить пользователя из группы (несколько записываются через запятую)-G 512,550
-G -512,550
-G +512,550
-sНазначить оболочку (login shell)-s /bin/ksh
-NУстановить реальное имя пользователя 
-SУстановить фамилию пользователя 
-PПо окончании обратится к скрипту smbldap-passwd для установки пароля пользователя 
-aДобавить класс объекта (objectClass) sambaSAMaccount 
-eУстановить дату истечения срока действия пароля пользователя (формат ГГГГ-ММ-ДД ЧЧ:ММ:СС) 
-AУстанавливает, имеет ли право пользователь изменять пароль, 0 – нет, 1 - да 
-BУстанавливает, должен ли пользователь изменить свой пароль после первого входа в систему, 0 – нет, 1 - да 
-CНазначить домашнюю папку Samba-С \\PDC\homes
-С ""
-DУстановить букву диска, монтирующегося при входе пользователя в систему-D H:
-EУстановить скрипт, который будет выполняться при входе пользователя в систему- E common.bat
FЗадать директорию с профилем пользователя-F \\PDC\profiles\user
-HУстановить флаг учетной записи Samba, наподобие [NDHTUMWSLKI]-H [X]
-IОтключить учетную запись пользователя-I 1
-JВключить учетную запись пользователя-J 1
-wСоздать учетную запись рабочей станции Windows 
-iСоздать учетную запись пользователя домена, с которым установлено доверие, подробности см. в п. 4.4 
-MЛокальный электронный почтовый ящик (несколько записываются через запятую)-M testuser,aliasuser
-TНепосредственный электронный почтовый ящик (несколько записываются через запятую)-T testuser@domain.org
Таблица 5
КлючОписание действия ключаПример
-fЗадать полное имя пользователя-f MyName
-rЗадать номер кабинета-r 99
-wЗадать номер рабочего телефона-w 1111111
-hЗадать номер домашнего телефона-h 2222222
-oЗаписать другую информацию (в секцию gecos)-o “second stage”
-sЗадать оболочку по умолчанию-s /bin/ksh
(к началу страницы)

4.3 Управление группами

4.3.1 Создание групп

Для добавления новой группы в LDAP каталог используется скрипт smbldap-groupadd. Ключи, которые могут быть использованы при запуске этого скрипта, представлены в таблице 6.
Таблица 6
КлючОписание действия ключаПример
-aДобавить группу и автоматически установить соответствие (mapping) 
-g gidУстановить gidNimber для группы-g 1002
-ogidNimber не будет уникальным 
-r group-ridУстановить rid группы-r 1002
-s group-sidУстановить sid группы-s S-1-5-21-3703471949-3718591838-2324585696-1002
-t group-typeУстановить sambaGroupType-t 2
-pВывести gidNimber на экран 
Например, так вы можете создать группу group1 и поместить в нее ранее созданного пользователя user1
# smbldap-groupadd –a group1
# smbldap-usermod –G +group1 user1
(к началу страницы)

4.3.2 Удаление группы

Для удаления группы используется скрипт smbldap-userdel, например, для удаления группы group1 следует выполнить команду:
# smbldap-userdel group1
(к началу страницы)

4.4 Добавление пользователя доверенного домена

Для добавления учетной записи доверенного домена на контроллере домена trust-pdc, используйте ключ –iкоманды smbldap-useradd
# smbldap-useradd -i trust-pdc
New password : *******
Retype new password : *******
Работа скрипта будет окончена после запроса на ввод пароля доверенного пользователя. Учетная запись будет создан в том месте каталога, где хранятся записи обо всех компьютерах (по умолчанию это ou=Computers). Таким образом, у этой учетной записи две особенности, это установка пароля для него, и флаг [I ].
(к началу страницы)

5. Samba и smbldap-tools

5.1 Основное конфигурирование

Samba может быть сконфигурирована с использованием поддержки smbldap-tools. Это позволит администраторам добавлять, удалять или изменять группы и учетные записи пользователей операционной системы MS Windows, используя для этого, например, диспетчер пользователей. Для приведенной возможности следует добавить в файлsmb.conf следующие команды:
ldap delete dn = Yes
add user script = /usr/local/sbin/smbldap-useradd -m "%u"
add machine script = /usr/local/sbin/smbldap-useradd -w "%u"
add group script = /usr/local/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"
Примечание: также могут быть добавлены команды delete user script и delete group script. Однако в этом случае могут появляться сообщения об ошибке в диспетчере пользователей каждый раз после успешного удаления пользователя или группы. Если вы все-таки решите добавить данные команды, вам следует внести такие строки:
delete user script = /usr/local/sbin/smbldap-userdel "%u"
delete group script = /usr/local/sbin/smbldap-groupdel "%g"
(к началу страницы)

5.2 Миграция PDC c NT4 на Samba 3

Процедура переноса учетных записей по настоящему проста, если сервер Samba сконфигурирован с использованием smbldap-tools. Файл smb.conf должен включать команды для управления пользователями, группами и компьютерами (см. п. 5.1).
Процесс миграции детально описан в главе 36 Samba Howto «MIGRATION FROM NT4 PDC TO SAMBA-3 PDC».
(к началу страницы)

6. Часто задаваемые вопросы

6.1 Могу ли я использовать старые версии uidNumber и gidNumber ?

Есть два пути для решения этого вопроса:
- измените строку cn=NextFreeUnixId,dc=idealx,dc=org и измените значение uidNumber и/или gidNumber. Это должно быть сделано вручную. Например, если вы хотите использовать все значения uidNumber и gidNumber, номер которых выше, чем 1500, вы должны написать
dn: cn=NextFreeUnixId,dc=idealx,dc=org
changetype: modify
uidNumber: 1500
gidNumber: 1500
А затем выполнить команду:
ldapmodify -x -D "cn=Manager,dc=idealx,dc=org" -w secret -f update-NextFreeUnixId.ldif
- используйте ключи –u или –g скрипта smbldap-populate.
(к началу страницы)

6.2 Я получаю ошибку «Can’t locate IO/Socket/SSL.pm»

Это происходит, когда вы хотите использовать сертификат. В этом случае вам следует установить IOSocket-SSL Perl module. 
(к началу страницы)

6.3 Я не могу создать начальную структуру каталога при помощи smbldap-populate

Когда я запускаю этот скрипт, я получаю такое сообщение об ошибке:
# smbldap-populate.pl
Using builtin directory structure
adding new entry: dc=IDEALX,dc=COM
Can’t call method "code" without a package or object reference at
/usr/local/sbin/smbldap-populate.pl line 270,  line 2.
Проверьте конфигурацию TLS
- если вы не хотите иметь поддержку TLS, установите в файле /etc/smbldap-tools/smbldap.conf следующий параметр на значение «0»
ldapTLS="0"
- если вы хотите иметь поддержку TLS, установите в файле /etc/smbldap-tools/smbldap.conf этот параметр на значение «1»
ldapTLS="1"
и проверьте, что сервер LDAP каталога сконфигурирован с поддержкой TLS соединений.
(к началу страницы)

6.4 Я не могу присоединить компьютер к домену с аккаунтом суперпользователя

- проверьте, что root-аккаунт имеет класс объекта (objectClass) sambaSAMaccount;
- проверьте, что команда add machine script есть и правильно описана. 
(к началу страницы)

6.5 Класс объекта sambaSamAccount есть, но я не могу авторизоваться

Проверьте, что значение атрибута не равно нулю. 
(к началу страницы)

6.6 Я хочу создать учетную запись компьютера при вводе компьютера в домен, но это не работает, сначала приходится заводить учетную запись на сервере

- команда add machine script не должна добавлять учетной записи компьютера класс объекта sambaSamAccount, эта команда должна лишь добавить Posix аккаунт компьютера. Samba добавит класс объекта sambaSamAccount при вводе компьютера в домен;
- проверьте, что строка add machine script есть в файле smb.conf
(к началу страницы)

6.7 Я не могу управлять базой данных Oracle

Если вы видите примерно такую ошибку
Function Not Implemented at /usr/local/sbin/smbldap_tools.pm line 187.
Function Not Implemented at /usr/local/sbin/smbldap_tools.pm line 627.
в базе данных Oracle проверьте, все ли атрибуты, по которым будут выполнятся запросы, индексированы. Добавьте новый индекс для Samba и удостоверьтесь, что следующие атрибуты также индексированы: uidNumber,gidNumbermemberUidhomedirectorydescriptionuserPassword ...
(к началу страницы)

6.8 Программа установки пароля /usr/local/sbin/smbldap-passwd -u %u не работает, или я получаю сообщение об ошибке, когда меняю пароль из под Windows

Установите значение
unix password sync = Yes
Примечание: также вы должны записать строку
passwd sync = Yes
- эта команда лишь обновит атрибут userPassword. Это из-за ключа –u. Пароли samba будут обновлены самой Samba;
- команда passwd chat должна выполняться согласованно с командой smbldap-passwd.
(к началу страницы)

6.9 Новой учетной записи компьютера нет в хранилище cn=Computers

Это известный баг Samba. Смотрите здесь http://marc.theaimsgroup.com/?l=samba&m=108439612826440&w=2 (данной страницы не удалось обнаружить, надеюсь и баг устранен, прим.перев.) 
(к началу страницы)

6.10 Я подключился к домену, но я не могу авторизоваться

См. п. 6.9 
(к началу страницы)

6.11 Я не могу создать пользователя, используя команду smbldap-useradd, я получаю следующую ошибку:

/usr/local/sbin/smbldap-useradd.pl: unknown group SID not set for unix group 513
проверьте:
- корректно ли настроен nss ldap?
- присоединена (map) ли группа пользователя, в которую он входит по умолчанию, к группе NT "Domain Users"? Для этого вы можете использовать такую команду:
net groupmap add rid=513 unixgroup="Domain Users" ntgroup="Domain Users"

(к началу страницы)

6.12 Я не могу создать пользователя, используя команду smbldap-useradd, я получаю следующую ошибку:

Can’t call method ”get value” on an undefined value at /usr/local/sbin/smbldap-useradd line 154
- существует ли группа, в которую по умолчанию помещается новый пользователь (defaultUserGid="513")?
- присоединена (map) ли группа NT "Domain Users" к группе unix, имеющей rid 513? (для установки rid см. ключ –r для команд smbldap-groupadd и smbldap-groupmod).
(к началу страницы)

6.13 Типичные ошибки, возникающие при создании нового пользователя или группы

- я получаю следующую ошибку:
Could not find base dn, to get next uidNumber at /usr/local/sbin/smbldap_tools.pm
Причина:
- вы не можете создать объект, так как невозможно определить следующий по порядку uidNumber или gidNumber.
Решение:
- для версии 0.8.7: единственное, что вы можете сделать, это запустить скрипт smbldap-populate и обновить значения sambaDomain, в которых хранится эта информация;
- для версии ранее 0.8.7: вы должны обновить свой пакет smbldap-tools, затем создайте LDIF-файл примерно такого содержания:
dn: cn=NextFreeUnixId,dc=idealx,dc=org
objectClass: inetOrgPerson
objectClass: sambaUnixIdPool
uidNumber: 1000
gidNumber: 1000
cn: NextFreeUnixId
sn: NextFreeUnixId
И внесите эти сведения в LDAP каталог:
ldapadd -x -D "cn=Manager,dc=idealx,dc=org" -w secret -f add.ldif
Где 1000, это первое доступное значение uidNumber и gidNumber (разумеется, если это значение уже используется каким-либо пользователем или группой, используйте следующий за ним номер uid или gid).
- я получаю следующую ошибку:
Use of uninitialized value in string at
/usr/local/sbin//smbldap\_tools.pm line 914.
Error: No DN specified at /usr/local/sbin//smbldap\_tools.pm line 919
Решение:
конфигурационный файл с описанными объектами и с доступными номерами uidNumber и gidNumber следует исправить. В нашем примере вы должны добавить следующую строку в файл /etc/smbldap-tools/smbldap.conf:
# Where to store next uidNumber and gidNumber available
sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
- я получаю следующую ошибку:
Use of uninitialized value in concatenation (.) or string at /usr/local/sbin/smbldap-useradd Use of uninitialized value in substitution (s///) at /usr/local/sbin/smbldap-useradd line Use of uninitialized value in string at /usr/local/sbin/smbldap-useradd line 264. failed to add entry: homedirectory: value #0 invalid per syntax at /usr/local/sbin/smbldap-userHomeDirectory=User "jto" already member of the group "513". failed to add entry: No such object at /usr/local/sbin/smbldap-useradd line 382.
Решение:
вы должны изменить имя переменной userHomePrefix на userHome в файле /etc/smbldaptools/smbldap.conf.
- я получаю следующую ошибку:
failed to add entry: referral missing at /usr/local/sbin/smbldap-useradd line 279
Решение:
вы должны исправить конфигурационный файл, в котором определяются dn пользователей, групп и компьютеров. Эти параметры не должны соответствовать параметру suffix. Типичная конфигурация показана ниже:
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
- я получаю следующую ошибку:
erreur LDAP: Can’t contact master ldap server (IO::Socket::INET: Bad protocol ’tcp’)
at /usr/local/sbin//smbldap_tools.pm line 153.
Решение:
удалите запись ldap из файла /etc/nsswitch.conf, то есть у вас должна быть запись
services files
а не
services: ldap [NOTFOUND=return] files

(к началу страницы)

7. Благодарности

Люди, работавшие над этим документом:
J.erome Tournier (jerome.tournier@IDEALX.com)
David Barth (david.barth@IDEALX.com)
Nat Makarevitch (nat@IDEALX.com)
Авторы благодарят следующих людей за предоставление помощи в некоторых более запутанных вопросах, за прояснение некоторых внутренних аспектов работы пакетов Samba и OpenLDAP, за указание на ошибки или заблуждения в первичной версии этого документа, за советы и предложения:
Команда IDEALX team:
Romeo Adekambi (romeo.adekambi@IDEALX.com)
Aurelien Degremont (adegremont@IDEALX.com)
Renaud Renard (rrenard@IDEALX.com)
John H Terpstra (jht@samba.org)
(к началу страницы)

8. Приложения

8.1 Примеры конфигурационных файлов

8.1.1 Файл /etc/smbldap-tools/smbldap.conf

# $Source: $
# $Id: smbldap.conf,v 1.18 2005/05/27 14:28:47 jtournier Exp $
#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools
#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
# Copyright (C) 2001-2002 IDEALX
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

# Purpose :
# . be the configuration file for all smbldap-tools scripts

##################################################
#
# General Configuration
#
##################################################

# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-2252255531-4061614174-2474224977"

# Domain name the Samba server is in charged.
# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="DOMSMB"

###################################################
#
# LDAP Configuration
#
###################################################

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
# (typically a replication directory)

# Slave LDAP server
# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="ldap.iallanis.info"

# Slave LDAP port
# If not defined, parameter is set to "389"
slavePort="389"

# Master LDAP server: needed for write operations
# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="ldap.iallanis.info"

# Master LDAP port
# If not defined, parameter is set to "389"
#masterPort="389"
masterPort="389"

# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "0"
ldapTLS="1"

# Use SSL for LDAP
# If set to 1, this option will use SSL for connection
# (standard port for ldaps is 636)
# If not defined, parameter is set to "0"
ldapSSL="0"

# How to verify the server’s certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify="require"

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile="/etc/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.info.pem"

# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.info.key"

# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=iallanis,dc=info"

# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
# Warning: if ’suffix’ is not set here, you must set the full dn for usersdn
usersdn="ou=Users,${suffix}"

# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if ’suffix’ is not set here, you must set the full dn for computersdn
computersdn="ou=Computers,${suffix}"

# Where are stored Groups
# Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
# Warning: if ’suffix’ is not set here, you must set the full dn for groupsdn
groupsdn="ou=Groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if ’suffix’ is not set here, you must set the full dn for idmapdn
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available for new users and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"

# Default scope Used
scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"

# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

#####################################################
#
# Unix Accounts Configuration
#
#####################################################

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Default mode used for user homeDirectory
userHomeDirectoryMode="700"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID
defaultUserGid="513"

# Default Computer (Samba) GID
defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don’t want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute’s value)
defaultMaxPasswordAge="45"

#####################################################
#
# SAMBA Configuration
#
#####################################################

# The UNC path to home drives location (%U username substitution)
# Just set it to a null string if you want to use the smb.conf ’logon home’
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome="\\PDC-SRV\%U"

# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf ’logon path’
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile="\\PDC-SRV\profiles\%U"

# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"

# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="logon.bat"

# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
mailDomain="iallanis.info"

######################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
######################################################

# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

# comment out the following line to get rid of the default banner
# no_banner="1"

(к началу страницы)

8.1.2 Файл /etc/smbldap-tools/smbldap_bind.conf

############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=Manager,dc=iallanis,dc=info"
slavePw="secret"
masterDN="cn=Manager,dc=iallanis,dc=info"
masterPw="secret"

(к началу страницы)

8.1.3 Файл /etc/samba/smb.conf

# Global parameters
[global]
workgroup = DOMSMB
netbios name = PDC-SRV
security = user
enable privileges = yes
#interfaces = 192.168.5.11
#username map = /etc/samba/smbusers
server string = Samba Server %v
#security = ads
encrypt passwords = Yes
min passwd length = 3
#pam password change = no
#obey pam restrictions = No

# method 1:
#unix password sync = no
#ldap passwd sync = yes

# method 2:
unix password sync = yes
ldap passwd sync = no
passwd program = /usr/sbin/smbldap-passwd -u "%u"
passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n"

log level = 0
syslog = 0
log file = /var/log/samba/log.%U
max log size = 100000
time server = Yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
mangling method = hash2
Dos charset = 850
Unix charset = ISO8859-1

logon script = logon.bat
logon drive = H:
logon home =
logon path =

domain logons = Yes
domain master = Yes
os level = 65
preferred master = Yes
wins support = yes
# passdb backend = ldapsam:"ldap://ldap1.company.com ldap://ldap2.company.com"
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=Manager,dc=company,dc=com
#ldap admin dn = cn=samba,ou=DSA,dc=company,dc=com
ldap suffix = dc=company,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
#ldap idmap suffix = ou=Idmap
add user script = /usr/sbin/smbldap-useradd -m "%u"
#ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -t 0 -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
#delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g ’%g’ ’%u’

# printers configuration
#printer admin = @"Print Operators"
load printers = Yes
create mask = 0640
directory mask = 0750
#force create mode = 0640
#force directory mode = 0750
nt acl support = No
printing = cups
printcap name = cups
deadtime = 10
guest account = nobody
map to guest = Bad User
dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd
show add printer wizard = yes
; to maintain capital letters in shortcuts in any of the profile folders:
preserve case = yes
short preserve case = yes
case sensitive = no

[netlogon]
path = /home/netlogon/
browseable = No
read only = yes

[profiles]
path = /home/profiles
read only = no
create mask = 0600
directory mask = 0700
browseable = No
guest ok = Yes
profile acls = yes
csc policy = disable
# next line is a great way to secure the profiles
#force user = %U
# next line allows administrator to access all profiles
#valid users = %U "Domain Admins"

[printers]
comment = Network Printers
#printer admin = @"Print Operators"
guest ok = yes
printable = yes
path = /home/spool/
browseable = No
read only = Yes
printable = Yes
print command = /usr/bin/lpr -P%p -r %s
lpq command = /usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
# print command = /usr/bin/lpr -U%U@%M -P%p -r %s
# lpq command = /usr/bin/lpq -U%U@%M -P%p
# lprm command = /usr/bin/lprm -U%U@%M -P%p %j
# lppause command = /usr/sbin/lpc -U%U@%M hold %p %j
# lpresume command = /usr/sbin/lpc -U%U@%M release %p %j
# queuepause command = /usr/sbin/lpc -U%U@%M stop %p
# queueresume command = /usr/sbin/lpc -U%U@%M start %p

[print$]
path = /home/printers
guest ok = No
browseable = Yes
read only = Yes
valid users = @"Print Operators"
write list = @"Print Operators"
create mask = 0664
directory mask = 0775

[public]
path = /tmp
guest ok = yes
browseable = Yes
writable = yes

(к началу страницы)

8.1.4 Файл /etc/openldap/slapd.conf

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema

schemacheck on

# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args

# Load dynamic backend modules:
# modulepath /usr/sbin/openldap
# moduleload back_bdb.la
# moduleload back_ldap.la
# moduleload back_ldbm.la
# moduleload back_passwd.la
# moduleload back_shell.la

# The next three lines allow use of TLS for encrypting connections using a
# dummy test certificate which you can generate by changing to
# /usr/share/ssl/certs, running "make slapd.pem", and fixing permissions on
# slapd.pem so that the ldap user or group can read it. Your client software
# may balk at self-signed certificates, however.
#TLSCertificateFile /etc/openldap/ldap.company.com.pem
#TLSCertificateKeyFile /etc/openldap/ldap.company.com.key
#TLSCACertificateFile /etc/openldap/ca.pem
#TLSCipherSuite :SSLv3

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database bdb
suffix "dc=company,dc=com"
rootdn "cn=Manager,dc=company,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# rootpw {crypt}ijFYNcSNctBYg

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/lib/ldap
lastmod on

# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,sn,mail,givenname eq,pres,sub
index uidNumber,gidNumber,memberUid eq,pres
index loginShell eq,pres
## required to support pdb_getsampwnam
index uid pres,sub,eq
## required to support pdb_getsambapwrid()
index displayName pres,sub,eq
index nisMapName,nisMapEntry eq,pres,sub
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index default sub


# users can authenticate and change their password
access to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdMustChange,sambaPwdLastSet
by dn="cn=Manager,dc=company,dc=com" write
by self write
by anonymous auth
by * none

# those 2 parameters must be world readable for password aging to work correctly
# (or use a priviledge account in /etc/ldap.conf to bind to the directory)
access to attrs=shadowLastChange,shadowMax
by dn="cn=Manager,dc=company,dc=com" write
by self write
by * read

# all others attributes are readable to everybody
access to *
by * read

# Replicas of this database
#replogfile /var/lib/ldap/openldap-master-replog
#replica host=ldap-1.example.com:389 starttls=critical
# bindmethod=sasl saslmech=GSSAPI
# authcId=host/ldap-master.example.com@EXAMPLE.COM

(к началу страницы)

8.2 Изменение административной учетной записи (ldap admin dn в файле smb.conf)

Если вы больше не хотите использовать учетную запись, описанную атрибутами cn=Manager,dc=idealx,dc=com, вы можете создать специальную учетную запись для сервера Samba и набора скриптов smbldap-tools. Чтобы сделать это, заведем пользователя с именем, например samba при помощи следующей команды (для подробностей в синтаксисе данной команды обратитесь к п. 4.2.1):
# smbldap-useradd -s /bin/false -d /dev/null -P samba
После ввода этой команды вам будет предложено ввести пароль для создаваемого пользователя, в нашем примере он тоже будет samba.
После этого измените соответствующим образом файл /etc/smbldap-tools/smbldap_bind.conf:
slaveDN="uid=samba,ou=Users,dc=idealx,dc=com"
slavePw="samba"
masterDN="uid=samba,ou=Users,dc=idealx,dc=com"
masterPw="samba"
файл /etc/samba/smb.conf:
#ldap admin dn = uid=samba,ou=Users,dc=idealx,dc=com
Не забудьте после этого записать пароль в файл secrets.tdb:
#smbpasswd -w samba
в файле /etc/openldap/slapd.conf вам стоит добавить полномочий пользователю samba:
# users can authenticate and change their password
access to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdMustChange
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by self write
by anonymous auth
by * none
# some attributes need to be readable anonymously so that ’id user’ can answer cor rectly
access to attrs=objectClass,entry,gecos,homeDirectory,uid,uidNumber,gidNumber,cn,memberUid
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by * read
# somme attributes can be writable by users themselves
access to attrs=description,telephoneNumber
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by self write
by * read
# some attributes need to be writable for samba
access to attrs=cn,sambaLMPassword,sambaNTPassword,sambaPwdLastSet,sambaLogonTime,
sambaLogoffTime,sambaKickoffTime,sambaPwdCanChange,sambaPwdMustChange,sambaAcctFlags,
displayName,sambaHomePath,sambaHomeDrive,sambaLogonScript,sambaProfilePath,description,
sambaUserWorkstations,sambaPrimaryGroupSID,sambaDomainName,sambaSID,sambaGroupType,
sambaNextRid,sambaNextGroupRid,sambaNextUserRid,sambaAlgorithmicRidBase
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by self read
by * none
# samba need to be able to create the samba domain account
access to dn.base="dc=idealx,dc=com"
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by * none
# samba need to be able to create new users account
access to dn="ou=Users,dc=idealx,dc=com"
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by * none
# samba need to be able to create new groups account
access to dn="ou=Groups,dc=idealx,dc=com"
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by * none
# samba need to be able to create new computers account
access to dn="ou=Computers,dc=idealx,dc=com"
by dn="uid=samba,ou=Users,dc=idealx,dc=com" write
by * none
# this can be omitted but we leave it: there could be other branch
# in the directory
access to *
by self read
by * none
(к началу страницы)

8.3 Известные ошибки

Ключ -B (пользователь должен изменить свой пароль) команды smbldap-useradd не работает: когда вызывается команда smbldap-passwd, атрибут sambaPwdMustChange перезаписывается. 
(к началу страницы)

Пример 3. Домен Samba+dhcp на Alt Linux

 
Назад
Пример 3. Домен Samba+dhcp на Alt Linux
Samba-3 от простого к сложному
Дальше

Пример 3. Домен Samba+dhcp на Alt Linux


1. Особенности данного примера
2. Начальные условия
3. Установка Samba-3.4.8.
4. Настройка сервера dhcp
5. Заводим учетные записи пользователе и групп будущего домена
6. Второй администратор домена
7. Создание общих ресурсов
8. Конфигурирование сервера Samba
9. введение в домен клиентов Windows XP и Windows 7
10. Выводы
Директор Иван Иваныч хороший директор, и через какое-то время дела фирмы пошли в гору, штат сотрудников стал расширяться, в фирме образовалось две структуры, бухгалтерских отдел и финансовый отдел. А сотрудников стало уже почти 50 человек, а через год их может стать около сотни. Посовещавшись, вы с директором решили внедрить домен, при такой сети это позволить гораздо успешнее и проще управлять сетью. Так же будет отныне решено использовать сервер dhcp, что в такой сети будет являться хорошим решением, а также позволить пользователям ноутбуков не беспокоиться, когда их настройки были перенастроены при подключении к сетям ваших деловых партнеров.
Пример основан на Главе 2. книги Samba-3 в примерах.

1. Особенности данного примера

Особенности данного примера состоят в следующем:
  • в качестве серверной ОС используется Alt Linux 5 KDE (desktop);
  • установка на Alt Linux 5 KDE (desktop) новой Samba-3.4.8., которая позволит ввести в домен компьютеры под управлением Window 7 (идущая с Alt Linux 5 KDE (desktop) Samba-3.0.37. не позволит этого сделать);
  • масштабируемость;
  • внедрение сервера dhcp, что является хорошим решением в большой сети, плюс удобство для мобильных пользователей;
  • простота управления;
    (к началу страницы)

    2. Начальные условия

  • имя домена firma, имя сервера altserver, NetBIOS имя aserver, его ip будет статическим 192.168.1.7 и192.168.2.7;
  • будут две подсети, бухгалтерия 192.168.1. , экономисты 192.168.2.;
  • использование dhcp и wins, dns пока не трогаем;
  • всем клиентам будет назначен динамический ip-адрес, сетевой принтер будет получать ip-адрес согласно своему mac-адресу;
  • каждому пользователю будет создан и доступен персональный общий ресурс, а также будут созданы два ресурса для каждого отдела (бухгалтеры и финансисты);
  • пользователь director будет владельцем всех ресурсов.
    (к началу страницы)

    3. Установка Samba-3.4.8.

    Предварительно делаем обновление системы, для этого подключаем нужный репозиторий и выполняем команды:
    apt-get update
    apt-get dist-upgrade
    
    Без обновления пакет Samba-3.4.8. имеет шансы при установке выдавать ошибки и не установиться.
    Я не смог собрать из исходников новую Samba, поэтому я воспользовался любезно предоставленной сборкой Василия Терешко с сайта http://end.kiev.ua/linux/alt/tolmi-5.1/i586/RPMS.tolmi-5.1/. Скачиваем отсюда следующие пакеты и устанавливаем в представленном ниже порядке командой:
    apt-get install имя_пакета
    
    ctdb-1.0.113-alt2.i586.rpm
    ctdb-devel-1.0.113-alt2.i586.rpm
    libtalloc-2.0.0-alt1.i586.rpm
    libtalloc-devel-2.0.0-alt1.i586.rpm
    samba-common-3.4.8-alt1.i586.rpm
    samba-3.4.8-alt1.i586.rpm
    samba-client-3.4.8-alt1.i586.rpm
    
    Например:
    apt-get install ctdb-1.0.113-alt2.i586.rpm
    
    Если все прошло хорошо, проверьте, что пакет samba-3.4.8-alt1.i586.rpm нормально установился:
    rpm -qa samba
    samba-3.4.8-alt1
    
    Пока отложим дальнейшее конфигурирование сервера Samba, и займемся сервером dhcp.
    (к началу страницы)

    4. Настройка сервера dhcp

    Выполните команду hostname, откликом должно быть:
    # hostname
    altserver.localdomain
    
    Внесите в файл /etc/sysconfig/network запись
    HOSTNAME = altserver.firma.org
    
    Так как ваш сервер будет обслуживать два сегмента сети, пользователи могут захотеть получить доступ из одного сегмента в другой, поэтому будет лучше включить маршрутизацию, для этого в файле /etc/net/sysctl.confисправьте значение параметра
    net.ipv4.conf.lo.forwarding = 0
    
    на
    net.ipv4.conf.lo.forwarding = 1
    
    перезапустите сеть:
    service network restart
    
    Установите сервер dhcp:
    apt-get install dhcp-server
    
    Настройка сервера dhcp в альтлинукс осуществляется в файле /etc/dhcp/dhcpd.conf. После установки пакетаdhcp-server вы найдете в этой директории файл dhcpd.conf.sample. Давайте исправим этот файл под наши нужды.
    Для наших задач сервер должен:
  • выдавать адреса для двух подсетей, причем диапазон будет находиться в пределах .31-.230, практика показывает, что полезно бывает оставить место под статические адреса (сканеры, принтеры, управляемые свичи и т.п.);
  • также предположим, что у нас есть сетевой принтер со своей сетевой картой, и мы укажем серверу dhcp всегда назначать ему один и тот же адрес, делается это по привязке к mac-адресу сетевой карты. Mac-адрес вы можете узнать в документации к принтеру, либо зайдя через веб-интерфейс в настройки принтера, как правило, сетевые принтеры имеют такую функцию, в этом примере такой принтер будет называться hp1320n и ему будет назначаться адрес 192.168.1.52.
  • точно также предположим, что в подсети финансистов компьютеру Иван Иваныча будет назначаться адрес динамически, но всегда один и тот же - 192.168.2.40.Перейдите в папку /etc/dhcp/ и получите файл dhcpd.conf:
    # cd /etc/dhcp/
    # cp dhcpd.conf.sample dhcpd.conf
    
    Теперь приведем файл dhcpd.conf к такому состоянию:
    # See dhcpd.conf(5) for further configuration   
    #говорим не использовать динамический dns
    ddns-update-style none; 
     #задаем время аренды IP-адреса по умолчанию, в секундах
            default-lease-time 86400; 
     #задаем максимальное время аренды, если по истечению этого времени
     #клиент не сделал запрос на аренду, его ip считается незанятым и
     #может быть назначен другому клиенту
            max-lease-time 172800; 
      
     #задаем адрес сервера времени
            option ntp-servers              192.168.1.7;
     #если есть поддержка NIS, можно задать домен
            option nis-domain               "firma.org";
     #задаем имя домена
            option domain-name              "firma.org";
     # список dns-серверов, так windows будет спокойнее
            option domain-name-servers      192.168.1.7, 192.168.2.7;
     # список wins-серверов
            option netbios-name-servers     192.168.1.7, 192.168.2.7; 
    
    # описание первой подсети, сначала идет ее адрес и маска
    subnet 192.168.1.0 netmask 255.255.255.0 {
     # шлюз, так как клиенты из подсети 192.168.1. будут ходить в подсеть 192.168.2.
            option routers                  192.168.1.7;  
            option subnet-mask              255.255.255.0; #
            range dynamic-bootp 192.168.1.31 192.168.1.230; #
    
    # говорим назначать принтеру один и тот же ip по mac-адресу
            host hp1320n
                {
                hardware ethernet 08:09:55:56:05:58;
                fixed-address 192.168.1.52;
                }
    }
    
    subnet 192.168.2.0 netmask 255.255.255.0 {
            option routers                  192.168.2.7;
            option subnet-mask              255.255.255.0;
            range dynamic-bootp 192.168.2.31 192.168.2.230;
    
            host win7boss
                {
                hardware ethernet 09:10:55:57:58:23;
                fixed-address 192.168.1.40;
                }
    }
    

    (к началу страницы)

    5. Заводим учетные записи пользователе и групп будущего домена

    Сначала добавим пользователя root в базу данных Samba, этот пользователь администратор сервера и будет администратором домена. Перед этим, с учетом того, что мы используем в этом примере пакет от Василия Терешко с сайта http://end.kiev.ua/linux/alt/ создадим папку
    # mkdir /var/lib/samba/private
    
    именно там будет храниться база данных паролей, учтите, это нужно лишь для этого пакета, этот путь задается при сборке, и Василий Терешко задал этот путь там, как правило база данных хранится в папке /etc/samba (однако не исключено, что этот путь будет во всех новых сборках).
    Теперь уже непосредственно добавляем пользователя root, причем его пароль можно и желательно задать отличный от пароля root системы. Это пароль администратора домена Windows. Никогда не удаляйте эту учетную запись с ее паролем из бэкенда паролей после того, как будут инициализированы группы домена Windows.
    # smbpasswd -a root
    New SMB password:
    Retype new SMB password:
    tdbsam_open: Converting version 0.0 database to version 4.0.
    tdbsam_convert_backup: updated /var/lib/samba/private/passdb.tdb file.
    account_policy_get: tdb_fetch_uint32 failed for field 1
     /(min password length), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 2
     /(password history), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 3
     /(user must logon to change password), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 4
     /(maximum password age), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 5
     /(minimum password age), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 6
     /(lockout duration), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 7
     /(reset count minutes), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 8
     /(bad lockout attempt), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 9
     /(disconnect time), returning 0
    account_policy_get: tdb_fetch_uint32 failed for field 10
     /(refuse machine password change), returning 0
    Added user root.
    
    Проверьте, что в системе есть файл присоединения имен пользователей (username map file) (в моем альте он был по умолчанию), который позволяет учетной записи root быть ассоциированным с учетной записью administratorиз Windows среды, следующего содержания:
    # cat /etc/samba/smbusers
    # Unix_name = SMB_name1 SMB_name2 ...
    root = administrator admin
    nobody = guest pcguest smbguest
    
    Теперь создадим нужные нам группы UNIX и присоединим их к группам windows, тоже сделаем для общеизвестных групп домена Microsoft Windows.
    Примечание: под словом присоединим подразумевается to map, и в слэнге это звучить как "примапим", мапить группы, мапить пользователя.
    Нужные нам группы это группа пользователей бухгалтерии buhgroup и группа пользователей финансового отделаfingroup.
    Сделаем скрипт, который облегчит нам данную задачу, создадим файл:
    touch /etc/samba/mapgroup.sh
    
    Заполним его таким содержимым:
    #!/bin/sh
    #
    # файл присоединения групп windows к группам unix /etc/samba/mapgroup.sh
    #
    
    # создадим группы бугхалтерии и финансового отдела
    groupadd buhgroup
    groupadd fingroup
    
    # присоединим общеизвестные Windows Domain Groups к UNIX-группам
    net groupmap add ntgroup="Domain Admins" rid=512 unixgroup=root type=d
    net groupmap add ntgroup="Domain Users" rid=513  unixgroup=users type=d
    net groupmap add ntgroup="Domain Guests" rid=514 unixgroup=nobody type=d
    
    # присоединим группы домена
    net groupmap add ntgroup="Buhg staff"  unixgroup=buhgroup type=d
    net groupmap add ntgroup="Fin staff" unixgroup=fingroup type=d
    
    Сделаем исполняемым и запустим его:
    # cd /etc/samba/mapgroup.sh
    # chmod +x mapgroup.sh
    # ./mapgroup.sh
    
    Вывод должен быть примерно такой:
    # ./mapgroup.sh
    Successfully added group Domain Admins to the mapping db as a domain group
    Successfully added group Domain Users to the mapping db as a domain group
    Successfully added group Domain Guests to the mapping db as a domain group
    No rid or sid specified, choosing a RID
    Got RID 1001
    Successfully added group Buhg staff to the mapping db as a domain group
    No rid or sid specified, choosing a RID
    Got RID 1002
    Successfully added group Fin staff to the mapping db as a domain group
    
    Проверим, какие у нас теперь есть группы:
    # net groupmap list
    Domain Admins (S-1-5-21-1882585832-1723636817-256479379-512) -> root
    Fin staff (S-1-5-21-1882585832-1723636817-256479379-1002) -> fingroup
    Domain Users (S-1-5-21-1882585832-1723636817-256479379-513) -> users
    Domain Guests (S-1-5-21-1882585832-1723636817-256479379-514) -> nobody
    Buhg staff (S-1-5-21-1882585832-1723636817-256479379-1001) -> buhgroup
    
    Примечание: если вам что-то не понравилось, удалить все можно таким скриптом:
    #!/bin/sh
    #
    # файл отсоединения групп windows от групп unix /etc/samba/mapgroupdel.sh
    #
    
    # отсоединим общеизвестные Windows Domain Groups к UNIX-группам
    net groupmap delete ntgroup="Domain Admins"
    net groupmap delete ntgroup="Domain Users"
    net groupmap delete ntgroup="Domain Guests"
    
    # отсоединим группы домена
    net groupmap delete ntgroup="Buhg staff"
    net groupmap delete ntgroup="Fin staff"
    
    Вывод после выполнения скрипта будет такой:
    Sucessfully removed Domain Admins from the mapping db
    Sucessfully removed Domain Users from the mapping db
    Sucessfully removed Domain Guests from the mapping db
    Sucessfully removed Buhg staff from the mapping db
    Sucessfully removed Fin staff from the mapping db
    
    А команда net groupmap list не должна будет что-либо показать.
    Теперь создадим наших пользователей, как мы делали это в примере 2, соответственно сотрудников бухгалтерии помещаем в группу buhgroup, сотрудников финансового отдела в группу fingroup.
    Таблица 2.1. Список сотрудников фирмы

    Имя сотрудникаУчетная записьПарольИмя личной папкиКаталог на файл-сервереРабочая станция
    Иван ИванычdirectordirIvan1director/firmafileswin7boss
    Петр АвдеичfinansistfinPetr2finansist/firmafiles/finansistwinXPfin
    Зоя ФедоровнаbuhgalterbuhZoya3buhgalter/firmafiles/buhgalterwinXPbuh
    Василий НиколаичglfinansistglfinVas22glfinansist/firmafiles/finansistwin7glfin
    Елена ВикторовнаglbuhgalterglbuhEl33glbuhgalter/firmafiles/buhgalterwin7glbuh
    Согласно таблице добавим пользователей:

    # useradd -m -G buhgroup -c "Зоя Федоровна" buhgalter
    # passwd buhgalter
    Enter new password:
    Re-type new password:
    
    # smbpasswd -a buhgalter
    New SMB password:
    Retype new SMB password:
    Added user buhgalter.
    
    Иван Иваныча добавляем командой

    # useradd -m -c "Иван Иваныч" director
    # passwd director
    Enter new password:
    Re-type new password:
    
    # smbpasswd -a director
    New SMB password:
    Retype new SMB password:
    Added user director.
    
    Тем самым не включая его ни в какую группу, что впрочем не помешает ему просматривать все папки , так как он будет владельцем всех общих папок.
    В итоге в базе данных Samba у меня такие пользователи:

    # pdbedit -L
    root:0:System Administrator
    buhgalter:501:Зоя Федоровна
    director:502:иван Иваныч
    finansist:503:Петр Авдеич
    glfinansist:504:Василий Николаич
    glbuhgalter:505:Елена Викторовна
    

    6. Второй администратор домена

    Чтобы еще какой-то сотрудник мог добавлять компьютеры в домен, он должен входить в группу root. Создадим учетную запись такого пользователя (odmin) обычным путем, а затем поместим его в группу root.
    # usermod -g 0 odmin
    
    Характеристики этого пользователя:
    # id odmin
    uid=506(odmin) gid=0(root) groups=0(root)
    
    # pdbedit odmin -v
    Unix username:        odmin
    NT username:
    Account Flags:        [U          ]
    User SID:             S-1-5-21-1882585832-1723636817-256479379-1012
    Primary Group SID:    S-1-5-21-1882585832-1723636817-256479379-512
    Full Name:            Администратор домена
    Home Directory:       \\altserver\odmin
    
    Данный пользователь будет являться администратором домена, но не администратором вашего сервера.
    (к началу страницы)

    7. Создание общих ресурсов

    Создадим общие ресурсы для групп, для этого создадим скрипт /etc/samba/addfolder.sh такого содержания:
    #!/bin/sh
    #
    #создадим структуру общих папок
    #
    mkdir -p /firmafiles/{buhfiles,finfiles}
    chown -R root:root /firmafiles
    chown -R director:buhgroup /firmafiles/buhfiles
    chown -R director:fingroup /firmafiles/finfiles
    chmod -R -R ug+rwx,o-rxw /firmafiles
    
    Сделаем его исполняемым и выполним:
    # chmod +x /etc/samba/addfolder.sh
    # cd /etc/samba/
    # ./addfolder.sh
    
    В результате получили будущие общие папки, выставили на них владельцев и разрешения:
    # ls -l / | grep firmafiles
    drwxrwxr-x   4 root root  4096 Jul  8 15:31 firmafiles
    
    # ls -l /firmafiles
    total 8
    drwxrwxr-x 2 director buhgroup 4096 Jul  8 15:31 buhfiles
    drwxrwxr-x 2 director fingroup 4096 Jul  8 15:31 finfiles
    

    (к началу страницы)

    8. Конфигурирование сервера Samba

    Создайте файл smb.conf такого содержания:
    [global]
    workgroup = FIRMA
    netbios name = ASERVER
    server string = Server of FIRMA
    passwd chat = *New*Password* %n\n*Re-enter*new*password* %n\n *Password*changed*
    username map = /etc/samba/smbusers                                              
    syslog = 0                                                                      
    log file = /var/log/samba/log.%U.%m.%G.%I                                             
    max log size = 50                                                               
    name resolve order = wins bcast hosts     
    interfaces = 192.168.1.7/24, 192.168.2.7/24, 127.0.0.1/24
    bind interfaces only = Yes
    time server = yes
    
    # так как не касаюсь принтеров, у меня это закомментировано                                   
    #        printcap name = CUPS                                                            
    #        show add printer wizard = No                                                    
    add user script = /usr/sbin/useradd -m -G users '%u'                            
    delete user script = /usr/sbin/userdel -r '%u'                                  
    add group script = /usr/sbin/groupadd '%g'                                      
    delete group script = /usr/sbin/groupdel '%g'                                   
    add user to group script = /usr/sbin/usermod -A '%g' '%u'                       
    add machine script = /usr/sbin/useradd -s /bin/false -d /var/lib/nobody '%u'    
    logon script = scripts\login.bat                                                
    logon path =                                                                    
    logon drive = X:                                                                
                                             
    domain logons = Yes
    os level = 64
    preferred master = Yes
    domain master = Yes
    wins support = Yes
                            
    [homes]
    comment = Домашняя директория
    valid users = %S
    read only = No
    browseable = No
    browsable = No
    
    #[printers]
    #        comment = SMB Print Spool
    #        path = /var/spool/samba
    #        guest ok = Yes
    #        printable = Yes
    #        use client driver = Yes
    #        browseable = No
    #        browsable = No
    
    [netlogon]
    comment = Network Logon Service
    path = /firmafiles/%U
    valid users = %S
    read only = No
    
    [buhgroup]
    comment = Файлы бухгалтерии
    path = /firmafiles/buhfiles
    valid users = %G
    read only = No
    
    [fingroup]
    comment = Файлы фин.отдела
    path = /firmafiles/finfiles
    valid users = %G
    read only = No
    
    Cонфигурируйте NSS (диспетчер разрешения имен, name service switch), чтобы обрабатывать разрешение имен, основанное на WINS. До тех пор, пока не используется DNS-сервер, безопасно удалить эту опцию из конфигурации NSS. Отредактируйте файл /etc/nsswitch.conf, (закомментировав верхнюю строку (#) и добавив нижнюю:
    # hosts:      files nisplus nis mdns4_minimal [NOTFOUND=return] dns mdns4 fallback
    hosts: files wins
    
    Проверьте конфигурационный файл smb.conf утилитой testparm на вопрос возможных ошибок, если они обнаружаться, исправьте.
    Теперь назначим серверам dhcp и samba запускаться при запуске/перезагрузке системы и запустим их:
    # chkconfig --level 35 dhcpd on
    # chkconfig --level 35 smb on
    # chkconfig --level 35 nmb on
    # service dhcpd start
    Starting dhcpd service:    [ DONE ]
    # service smb start
    Starting SMB services: Starting smbd service: [ DONE ]
    # service nmb start
    Starting NMB services: Starting nmbd service: [ DONE ]
    
    Проверьте работоспособность сервера Samba теми же способами, которые были представлены в примере 2. Если вы допустили ошибку в файле /etc/dhcp/dhcpd.conf, сервер dhcp не запустится, и также сообщит о строке, в которой что-то не так.
    (к началу страницы)

    9. введение в домен клиентов Windows XP и Windows 7

    Введение в домен клиентов с Windows XP происходит как обычно, подробнее можно почитать здесь. Проверьте, что демон nmb запущен, этот демон обрабатывает процессы регистрации имен и требования по разрешению (имен). Перед введением в домен компьютера с установленной Windows 7 следует немного модифицировать реестр. Создайте файл win7toSamba.reg следующего содержания:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servic es\LanmanWorkstation\Parameters]
    "DomainCompatibilityMode"=dword:00000001
    "DNSNameResolutionRequired"=dword:00000000
    
    И запустите (не забываем про администраторские права), нужные сведения будут добавлены.
    После стандартной процедуры (я ввожу в домен от имени второго администратора odmin) появиться сообщение об ошибке, показанное на рисунке 3.1.
    Рисунок 3.1. Сообщение о несуществующем домене
    Сообщение о несуществующем домене
    Не обращаем внимание, жмем Ок, после чего нам предлагается перезагрузиться, чтобы изменения вступили в силу. Перезагружаемся, после этого компьютер с WINDOWS7 также благополучно входит в домен.
    Примечание: соответствие имен компьютеров и выданных им IP адресов можно увидеть в файле/var/lib/dhcp/dhcpd.leases
    (к началу страницы)

    10. Выводы

    Основные достигнутые результаты:
  • При входе пользователя подключается диск X, который ведет в домашнюю папку этого пользователя на сервере ( заметьте, тут самое время внедрять квотирование), также на сервере доступны общие папки, но в зависимости от принадлежности пользователя к бухгалтерам или финансистам (что и правильно);
  • Пинг по имени идет в пределах одной подсети (что также правильно, так как сервер WINS не должен заниматься разрешением в других подсетях);
  • Пинг по IP идет как в пределах одной подсети, так и из одной в другую, на общие ресурсы в другой подсети заходим по IP (то есть маршрутизация работает);
  • пароли Samba и linux разные вещи, пользователи могут менять их как вздумается, на сервере у линукс-пользователей они остаются какие были;
  • Принтеры шарятся.Из нерешенного:
  • Общие папки на Windows-компьютерах сети расшариваются, но доступ назначается либо индивидуально, по имени пользователя, либо всей группе Domain USERS, при назначении прав группам buhgroup и fingroupпользователи, входящие в эти группы, доступ в общие папки не имели. Причину этого не выяснил. А в остальном прекрасный вариант для небольшой сети, в которой нужно централизованное управление и не нужен LDAP.
    (к началу страницы)
    Назад
    Пример 2. Одноранговая сеть. Персональные общие папки
    Содержание
    Дальше
    Пример 3. Домен Samba+dhcp на Alt Linux
  •  

    Создание пользователей в Samba

    Если вы используете Samba Server в вашей сети вам потребуется создать пользователе которые будут иметь доступ к шарам. Это делается довольно просто, при помощи нескольких команд.
    Если вы используете Samba Server в вашей сети вам потребуется создать пользователе которые будут иметь доступ к шарам.
    Это делается довольно просто, при помощи нескольких команд.
    Если Samba у вас не установлена, вы можете установить Samba на данном этапе.
    Пользователь создается в два этапа. Сначала, используя команду smbpasswd создаем пароль для пользователя который будет позже добавлен в файл списка пользователей Samba (/etc/samba/smbusers).
    sudo smbpasswd -a <username>
    Следующим шагом мы добавляем этого пользователя в файл /etc/samba/smbusers.
    sudo gedit /etc/samba/smbusers
    Добавте следущую строку вместо username подставив собственно юзернейм пользователя который будет иметь доступ к шарам.
    Формат такой: <ubuntuusername> = "<samba username>".
    А выглядеть должно так:
    <username> = "<username>"
    Теперь вы можете создавать шары которые будут доступны пользователям которых вы перечислили в /etc/samba/smbusers

    Пример 1. Простой Samba-сервер. Доступ всем на все Samba-3 от простого к сложному

    Пример 1. Простой Samba-сервер. Доступ всем на все


    1. Требования и удаленное подключение к будущему файл-серверу
    2. Подготовка раздела для общих ресурсов
    3. Планирование общих ресуров
    4. Создаем владельца общих ресурсов и сами общие папки
    5. Конфигурирование сервера Samba
    6. Запуск сервера Samba и проверка работы
    7. Монтирование общих ресурсов в windows- и linux-клиентах 
    В данном примере рассказано, как организовать простой файловый сервер с беcпарольным доступом к общим ресурсам. То есть можно будет "всем все", помните об этом, когда решили перебросить через такую общую папку файл с паролями от вашей кредитки.
    Пример основан на разделе 1.2.2. книги Samba-3 в примерах, а также добавлено, как смонтировать общие ресурсы в win- и linux- клиентах (ответы на мои же вопросы на форуме ALT Linux)
    Ваша основная задача запустить в эксплуатацию файл-сервер без использования решений на windows, через который сотрудники легко бы могли обмениваться информацией без всяких паролей, ну и музыкой. Такая вот анархия.

    1. Требования и удаленное подключение к будущему файл-серверу

    На будущем файл-сервере устновлен ALD 5.0 KDE, имя компьютера altsf, ip/маска 192.168.0.1/24. Делаем все от пользователя root. Если ваш файл-сервер нормально видит сеть, можете в общем-то всю работу выполнять не сидя локально, а сразу подключиться удаленно к файл-серверу:
    - из линукс (sergo555 это мой рабочий компьютер, sergo пользователь на нашем удаленном сервере altsf(которого я завел при установке системы)):
    [sergo@sergo555 ~]$ ssh -l sergo 192.168.0.1
    sergo@192.168.0.1's password: пароль_пользователя_sergo            
    Last login: Wed May 26 13:55:31 2010 from sergo555.local
    [sergo@altsf ~]
    
    Все, мы в терминале на удаленном сервере altsf, теперь заходим от пользователя root (в альт линукс по-умолчанию запрещено удаленное подключение по ssl непосредственно от пользователя root): Все, мы в терминале на удаленном сервере altsf, теперь заходим от пользователя root (в альт линукс по-умолчанию запрещено удаленное подключение по ssl непосредственно от пользователя root):
    [sergo@altsf ~]$ su -l                                  
    Password: пароль_пользователя_root_удаленного_компьютера_altsf
    [root@altsf ~]#
    
    - из windows: воспользуйтесь утилитой putty.exe, в разделе Session в строке Host Name (or IP adress) введите имя вашего файл-сервера или его IP-адрес (рисунки показаны для сервера с другим именем и IP адресом), см. рис. 1.1.
    Рисунок 1.1. Базовые опции для сессии PuTTY
    Базовые опции для сессии PuTTY
    в разделе Window->Translation в кодировках поставьте UTF-8, чтобы не было проблем с отображением кириллицы, см. рис. 1.2.
    Рисунок 1.2. Настройка кодировки сессии PuTTY
    Настройка кодировки сессии PuTTY
    жмем OPEN, в первых раз будет сделан запрос на обмен ключами, как на рис. 1.3.
    Рисунок 1.3. Регистрация ключей сессии PuTTY
    Регистрация ключей сессии PuTTY
    Жмем Да. На надпись в терминале login as: говорим sergo, вводим пароль, зашли, набираем su -l, вводим пароль root. Можно работать (рис. 1.4.)
    Рисунок 1.4. Удаленный вход через терминал PuTTY
    Удаленный вход через терминал PuTTY
    (к началу страницы)

    2. Подготовка раздела для общих ресурсов

    Раздел с будущими общими ресурсами представляет из себя:
    # mount -l
    /dev/sda8 on /mnt/disk type ext3 (rw,noexec,nosuid,nodev)
    
    То есть мой раздел, который определился в системе как sda8, примонтировался системой в папку /mnt/disk.
    Далее идут необязательные действия, но так удобнее, если хотите, хороший тон, мы переименуем папку /mnt/diskв что-то более информативное, особенно это актуально, если у вас несколько жестких дисков и они примонтировались соответственно в папки, например, /mnt/sda2/mnt/sdb3 и тому подобное, лично мне неудобно ориентироваться в таких названиях. К тому же, если вы недавно в линукс, вы узнаете кое-что новое о простых операциях и работе с файлами.
    Отмонтируем раздел (учтите, что ни одна программа не должна обращаться к вашему разделу перед тем, как он будет отмонтирован):
    # umount /mnt/disk
    
    Переименуем /mnt/disk в /mnt/allfiles (возможно это не более информативное название, чем прежде, однако мне оно говорит больше, чем предыдущее.
    # mv /mnt/disk /mnt/allfiles
    
    Теперь нужно подправить файл /etc/fstab (файл, отвечающий за то, как и куда будут смонтированы разделы в вашей системе), чтобы раздел /dev/sda8 монтировался при загрузке в новое место (папку /mnt/allfiles), открываем файл в редакторе (у меня это mc):
    # mcedit /etc/fstab
    
    и исправляем строку
    UUID=fa40a5d4-ca38-4867-bace-5a63ebd29639 /mnt/disk ext3 nosuid,nodev,noexec  
    
    на
    UUID=fa40a5d4-ca38-4867-bace-5a63ebd29639 /mnt/allfiles ext3 nosuid,nodev,noexec
    
    Примечание: разумеется, ваш UUID будет другим.
    Жмем F2 (сохранить) и F10 (выход из mc). Монтируем все обратно:
    # mount -
    

    (к началу страницы)

    3. Планирование общих ресуров

    Теперь определимся с общими ресурсами, для примера у нас будет два общих ресурса, music (тут вся музыка предприятия например), и обмен файлами, где ваши сотрудники могут централизованно обмениваться какой-либо информацией. Последнее название выбрано специально, оно написано по-русски и имеет в названии пробел, такое имя общего ресурса может вызвать затруднения при "расшаривании" и монтировании, ниже будет показано, что на самом деле никаких сложностей нет.
    Данное решение использует параметр force user. Использование параметра force user гарантирует вам, что все файлы будут принадлежать одному и тому же идентификатору пользователя (user identifier UID) и здесь никогда не будет проблем с доступом к файлам.
    Пояснение: это значит, что мы заведем на файл-сервере одного пользователя, который автоматически будет становиться владельцем всех файлов и папок в ваших общих ресурсах.
    (к началу страницы)

    4. Создаем владельца общих ресурсов и сами общие папки

    Создадим в системе такого пользователя sambauser, его пароль samba1USER, при создании сделаем каталог пользователя (ключ -m) и зададим пароль (ключ -p:
    # useradd -m sambauser -p samba1USER
    
    Убедитесь, что пользователь добавился в систему:
    # cat /etc/passwd | grep sambauser
    sambauser:x:501:501::/home/sambauser:/bin/bash
    
    Также убедитесь, что создан домашний каталог пользователя sambauser:
    # ls -l /home | grep sambauser
    drwx------ 11 sambauser sambauser  4096 May 26 16:02 sambauser
    
    Теперь создадим папку sharefolder, в которой будут находиться наши будущие общие ресурсы, можно и без нее, но имхо удобнее, если все общие папки будут лежать в отдельном каталоге, а не просто в корне точки монтирования:
    # mkdir /mnt/allfiles/sharefolder
    
    Теперь создадим будущие общие папки:
    # mkdir /mnt/allfiles/sharefolder/{music,"обмен файлами"}
    
    И назначим нового владельца, нашего товарища sambauser, а также несколько изменим разрешения:
    # chown -R sambauser:users /mnt/allfiles/sharefolder
    # chmod -R ugo+rwx /mnt/allfiles/sharefolder
    
    В итоге разрешения на наши общие ресурсы выглядят вот так:
    # ls -l /mnt/allfiles/sharefolder
    drwxrwxrwx 2 sambauser users 4096 May 26 16:27 music
    drwxrwxrwx 2 sambauser users 4096 May 26 16:27 обмен файлами
    

    (к началу страницы)

    5. Конфигурирование сервера Samba

    Теперь займемся сервером Samba. Конфигурационный файл для сервера Samba-3 находится в папке /etc/samba и называется smb.conf. После установки в нем написано много чего интересного, но мы не будем его править, а создадим свой. Для этого сохраняем файл /etc/samba/smb.conf на память (и на всякий случай, там много чего есть интересного почитать, и вообще перед любым изменением любого конфигурационного файла желательно делать его резервную копию):
    # mv /etc/samba/smb.conf /etc/samba/smb.conf.default
    
    Примечание: разработчики Samba настоятельно рекомендуют иметь файл smb.conf как можно более меньшего размера, а также не иметь внутри файла комментариев. Также они рекомендуют как можно более тщательно комментировать все изменения, какие вы делаете. Данные противоречивые рекомендации исполняются следующим образом: мы сделаем файл smb.conf.comment, в котором опишем все, что мы делаем, а потом из него получим рабочий файл smb.conf:
    # touch /etc/samba/smb.conf.comment
    

    #Глобальные параметры
    [global]
    #название рабочей группы, заметьте, по умолчанию значение параметра
    #workgroup = WORKGROUP, таким образом, если ваша рабочая группа называется
    #WORKGROUP, этот параметр можно не указывать
    workgroup = MYNET
    #NetBIOS-имя компьютера в вашей сети, имя, под которым файл-сервер будет
    #отображаться в сетевом окружении, заметьте, тут вы можете задать имя, отличное
    #от реального названия вашего сервера (у нас altsf)
    netbios name = ALTSERVER
    #режим безопасности
    security = SHARE
    #то, как будет описываться в сетевом окружении
    server string = files and music
    
    #описание наших общих папок
    #секция music
    [music]
    #комментарий, то, как будет подписан наш общий ресурс в сетевом окружении
    comment=Наша музыка
    #путь к общей папке
    path=/mnt/allfiles/sharefolder/music
    #данные параметры необязательны, но для чего они потребовались тут, скажу ниже
    create mask = 0777
    directory mask = 0777
    #принуждаем быть владельцем общего ресурса пользователя sambauser
    force user=sambauser
    #принуждаем быть владельцем общего ресурса группу users
    force group=users
    #указываем, что можно не только читать, но и записывать
    read only=No
    #открываем гостевой доступ, по сути всем
    guest ok=Yes
    
    [обмен файлами]
    comment=файлообмен
    path="/mnt/allfiles/sharefolder/обмен файлами"
    create mask = 0777
    directory mask = 0777
    force user=sambauser
    force group=users
    read only=No
    
    Получим рабочий файл smb.conf, а заодно проверим, нигде ли мы не ошиблись при помощи команды testparm:
    # testparm -s smb.conf.comment>smb.conf
    Load smb config files from smb.conf.comment              
    Processing section "[music]"                             
    Processing section "[обмен файлами]"                     
    Loaded services file OK.                                 
    WARNING: You have some share names that are longer than 12 characters.
    These may not be accessible to some older clients.                    
    (Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)         
    Server role: ROLE_STANDALONE
    
    Теперь у вас появился файл smb.conf, причем в нем нет ни одной строки с комментариями. Добейтесь, чтобы не было никаких ошибок, опечаток и т.п. Утилита testparm проверяет в основном опечатки, правильность заданных параметров она почти не контролирует. Например, если вы опечатались, сообщение об ошибке может выглядеть так:
    # testparm -s smb.conf.comment>smb.conf
    Load smb config files from smb.conf.comment
    Unknown parameter encountered: "metbios name"
    Ignoring unknown parameter "metbios name"
    Processing section "[music]"
    ERROR: Badly formed boolean in configuration file: "Yes/t".
    lp_bool(Yes/t): value is not boolean!       
    Processing section "[обмен файлами]"
    Loaded services file OK.
    WARNING: You have some share names that are longer than 12 characters.
    These may not be accessible to some older clients.
    (Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
    Server role: ROLE_STANDALONE
    
    В данном случае опечатка metbios name вместо netbios name, а также ошибочное значение параметра в секции[music].
    Если вы игнорируете рекомендации разработчиков и нещадно редактируете непосредственно файл smb.conf, то для проверки можно запускать testparm без параметров (в этом случае утилита ищет файл smb.conf в папке/etc/samba/).
    Итоговый файл smb.conf получился таким:
    [global]
      workgroup = MYNET
            netbios name = ALTSERVER
            server string = files and music 
            security = SHARE
    
    [music]
            comment = Наша музыка
            path = /mnt/allfiles/sharefolder/music
            force user = sambauser
            force group = users
            read only = No
            create mask = 0777
            directory mask = 0777
            guest ok = Yes
    
    [обмен файлами]
            comment = файлообмен
            path = "/mnt/allfiles/sharefolder/обмен файлами"
            force user = sambauser
            force group = users
            read only = No
            create mask = 0777
            directory mask = 0777
            guest ok = Yes
    

    (к началу страницы)

    6. Запуск сервера Samba и проверка работы

    Теперь говорим Samba быть всегда включенной при загрузке/перезагрузке и запускаем ее:
    # chkconfig smb --level 35 on
    [root@altsf samba]# service smb start
    Starting CIFS services:  NetBIOS over TCP/IP server, Samba server [DONE] 
    
    Проверяем, что все нормально, подключимся анонимно сами к себе:
    # smbclient -L altserver -U%
    Domain=[MYNET] OS=[Unix] Server=[Samba 3.0.37]
    
            Sharename       Type      Comment
            ---------       ----      -------
            music           Disk      Наша музыка
            обмен файлами Disk      файлообмен
            IPC$            IPC       IPC Service (файл-сервер)
    Domain=[MYNET] OS=[Unix] Server=[Samba 3.0.37]
    
            Server               Comment
            ---------            -------
            ALTSERVER
    
            Workgroup            Master
            ---------            -------
            MYNET
    
    Так же вы можете подключиться командой:
    # smbclient -L altserver -Usambauser
    password:
    
    И получить аналогичный вывод.
    (к началу страницы)

    7. Монтирование общих ресурсов в windows- и linux-клиентах

    Все, через 1-2 минуты идем, если в windows, в сетевое окружение, если linux, то Dolphin (или что там у вас) Сеть->Samba_Shares->MYNET->Altserver. Там видим наши папки music и обмен файлами, убеждаемся, что везде есть доступ, как на чтение, так и на запись.
    Временно смонтировать можно такой командой, например нашу музыку в папку /mnt/music:
    # mkdir /mnt/music
    # mount -t cifs //192.168.0.1/music /mnt/music -o users,username=guest,password="" 
    
    Но так ходить долго, особенно если пользуешься часто, поэтому организуем автоматическое монтирование.
    На клиенте linux:
    Вот как раз для этого случая потребовались параметры:
    create mask = 0777
    directory mask = 0777
    
    Без них у меня менялись права на локальной папке так, что я мог создавать файлы, но не мог их править, так как владельцем всего становился пользователь sambauser, а остальные могли только читать эти файлы. Кто знает, в чем загвоздка, поделитесь.
    Создадим папки, куда будем монтировать (все делаем уже не на файл-сервере, а на рабочей станцией с линукс):
    # mkdir /mnt/{music,obmen}
    
    Допишем в файл /etc/fstab такие строки (лучше в конец файла):
    //192.168.0.1/music /mnt/music cifs users,username=guest,password="",utf8 0 0
    //192.168.0.1/обмен\040файлами /mnt/obmen cifs users,username=guest,password="",utf8 0 0
    
    Ну, и сделаем ссылки на рабочем столе (их можно сделать уже от обычного пользователя):
    ln -s /mnt/music /home/sergo/Desktop/музыка
    ln -s /mnt/obmen /home/sergo/Desktop/"обмен файлами"
    
    Затем в Dolphin слева на панели Точки входа можно щелкнуть правой клавишей, выбрать Добавить, указать описание Mузыка и в пути прописать /mnt/music, ну и тоже самое для ресурса обмен файлами. Так вы упростите навигацию к вашим общим ресурсам в файловом менеджере.
    На клиенте windows:
    В windows мы щелкаем правой клавишей на Мой компьютер, выбираем Подключить сетевой диск, назначаем букву диска и указываем путь, либо делаем Пуск->Выполнить->cmd, и в командной строке набираем (диск m: будет музыка, o: обмен файлами):
    c:>net use m: \\altserver\music /persistent:Yes
    c:>net use o: "\\altserver\обмен файлами" /persistent:Yes
    

    (к началу страницы)
    Назад
    Samba-3 от простого к сложному. Содержание
    Содержание
    Дальше
    Пример 2. Одноранговая сеть. Персональные общие папки

    Общий доступ в KDE 4.4 (Kubuntu 10.04)

    Общий доступ в KDE 4.4 (Kubuntu 10.04)

    Posted on Август 12th, 2010 by andry and tagged .
    Настраиваем общий доступ к ресурсам сети в Kubuntu 10.04. Имеется ПК с 2-мя HDD (реальная ситуация)- на одном диске в разделе стоит Win XP..., на другом диске в разделе установлена Kubuntu 10.04 LTS (KDE 4.4.2). Нужно под Kubuntu расшарить папки на разделах NTFS. Все вроде просто, но в дистрибутив по-умолчанию кое что не включено. 1. Устанавливаем Samba (установлен только клиент) - открываем терминал и в командной строке: sudo apt-get install samba Или используя "Управление программами" (KPackadeKit) - набираем в строке поиска samba и помечаем для установки, потом устанавливаем. 2. Устанавливаем пакет kdenetwork-filesharing для удобного управления "расшаривания" ресурсов по сети: sudo apt-get install kdenetwork-filesharing 3. И для расшаривания NFS по сети: sudo apt-get install nfs-kernel-server Далее, в свойствах нужной папки, в закладке "Сделать общими" всего одна кнопка "настроить общее использование файлов". Нажимаем, вводим пароль, и открывается окно "Общий доступ к файлам - Модуль настройки KDE". Добавляем нужную папку в список. Остальные настройки на странице интуитивно понятны :) И для удобства, чтобы при каждой загрузке не подключать диски или разделы NTFS вручную, автоматическое монтирование разделов с NTFS теперь можно настроить в KDE через графический интерфейс: "Параметры системы" - вкладка "Дополнительно", "Внешние носители". Включаем "Автоматическое подключение внешних носителей" , выбираем нужный раздел или диск и настаиваем параметры подключения.

    понедельник, 2 сентября 2013 г.

    Делаем Chrome анонимным: Chrome + Tor

    У многих людей иногда возникают ситуации когда необходимо зайти на какие-либо сайты не сотавляя после этого следов в виде истории посещений, введённых данных и т.п. Например может понадобится зайти на свой почтовый ящик или в web-интерфейс вашего банка на чужом компьютере. И совсем не хочется, чтобы после этого кто-то, зайдя на сайт вашего банка, увидел ваш заботливо введённый браузером пароль. Для таких случаев в Chrome и других браузерах есть режим Инкогнито или его аналоги.
    Но, по правде говоря, этот режим не такой уж и инкогнито. На сайтах которые вы посетили вполне мог остаться ваш IP-адрес, название браузера и его версия, название операционной системы и некоторая другая интересная информация. Или, если вы использовали публичную сеть, например WiFi в кафе, оператор этой сети имеет все возможности слежки за вами и перехвата личных данных, в том числе паролей, номеров кредитных карт и т.п. Чтобы бродить по закоулкам интернета с достаточной степенью анонимности можео использовать технологию Tor.

    Что такое Tor?

    Tor — это система виртуальных «тоннелей», созданная для обеспечения анонимности в сети. Звучит странновато, но мы всё равно продолжим. На компьютер пользователя устанавливается небольшое приложение, которое соединяется с серверами (узлами), скрывающими местоположение компьютера и другую информацию, с помощью которой можно идентифицировать компьютер. Таким образом использование Tor очень сильно усложняет задачу отслеживания любых действий пользователя в сети, будь то простое ползанье по сети, проведение банковских операций или чат.

    Причём тут лук?..

    Да, как и было написано выше, Tor расшифровывается как The Onion Router, т.е. Луковая маршрутизация. Эту сеть так назвали потому что она состоит из многих слоёв, которые не видят ничего кроме соседнего слоя. Клиентское приложение, которое установлено на компьютере пользователя, перед тем как отправить данные получателю находит в сети Tor 3 случайных узла, согласоввывает с ними индивидуальныеключи и последовательно шифрует данные этими при помощи этих ключей. Далее получившаяся луковица из многократно зашифрованных данных отправляется через все эти узлы. Каждый узел знает только свой ключ, и, расшифровав им данные, он снимает слой луковицы и получает адрес следующего узла. И так далее, пока пакет данных не дойдёт до последнего узла — узла выхода, который уже полностью расшифрованные данные посылает адресату, получает ответ и запускает обратную цепочку.
    Давайте разберёмся на примере. Предположим вы хотите посетить мой блог, но не хотите чтобы это вычислили. Если использовать сеть Tor, то этот процесс будет выглядеть следующим образом:
    1. Вы водите в браузер адрес http://cheloblog.ru
    2. Клиент Tor на вашем компьютере запрашивает адреса узлов на сервере-каталоге
    3. Получив список адресов, клиент случайным образом выбирает несколько адресов и шифрует данные всеми ключами последовательно
    4. Далее он посылает этот пакет первому узлу, который может расшифровать только адрес следующего узла. Т.е. он снимает первый «слой» и посылает пакет дальше
    5. Следующий узел, получая пакет, знает только адрес предыдущего и ключ от адреса следующего, но не знает откуда изначально пришёл пакет, и сколько узлов он уже прошёл
    6. После того как пакет дошёл до моего блога, ответ посылается обратно по той же цепочке
    Таким образом обеспечивается максимальная анонимность минимальными средствами. Если добавить к этому ещё и принудительное использование шифрованного соединения на сайтах, которые это поддерживают, то получится достаточно надёжная система анонимного web-сёерфинга.

    Как начать им пользоваться?

    Для Firefox существует плагин, который позволяет одной кнопкой включать и выключать использование Tor. Называется он Torbutton. ДляChrome такого плагина пока нет. Но для тех, кто всё же хочет пользоваться этой технологией именно в Chrome, есть давольно простой и удобный выход.
    1. Установить собственно Tor. По этой ссылке нам нужен Stable Vidalia Bundle
    2. Установить плагин для Хрома — «Proxy Switchy!»
    3. В настройках плагина создать новый профиль с именем, например, «Перекати-поле», чтоб никто не догадался. Выбрать Manual Configuration, в поле HTTP Proxy ввести адрес 127.0.0.1 и порт 8118, тот же адрес и порт ввести в полях HTTPS и FTP proxy, а для SOCKShost вести порт 9050
    4. Proxy Switchy Options
    5. Там же, во вкладке General выберите Quick Switch (это для того, чтобы включать и выключать использование Tor одним тыком). Первым профилем оставьте Direct connection, а вторым поставьте наше «Перекати-поле»
    6. Теперь вы можете одним нажатием на глобус включить или выключить использование Tor в Хроме
    Не забудьте, чтобы не оставлять следов у себя на компьютере, вам нужно пользоваться режимом Инкогнито. Для этого нужно разрешить Proxy Switchy работать в режиме инкогнито. Перейдя на эту страницу, поставьте соответствующую галочку.