Статья не моя, но очень пригодилась.
HOWTO - Печать на принтер под Windows из Linux БЕЗ каких-либо Linux-драйверов или PPD.
Автор Justin Yackoski - (my email address is my first name @ my last name dot name) перевод BuhCIA
Back to English
Для кого эта статья HOWTO?
Для тех, кто имеет хотя бы 1 компьютер под windows, и 1 или несколько компьютеров под linux, объединенные в сеть. Эта статья HOWTO предполагает, что принтер присоединен к компьютеру под windows, который всегда включен, и этот принтер правильно установлен под windows.
Почему Вам это может понадобиться?
Без описываемого метода Ваш принтер должен поддерживаться linux для возможности печатать из-под linux, даже если он присоединен к компьютеру с windows и Вы хотите печатать на нем по сети с помощью SMB. Между тем теоретически при наличии компьютера с Windows в сети, к которому присоединен Ваш принтер, Вы можете печатать на ЛЮБОМ принтере независимо от того, поддерживается ли он в linux. Я проверил этот метод для принтера HP LaserJet 5L (который обычным образом поддерживается под linux), и для принтера Canon imageCLASS MF3110 (который вообще НЕ поддерживается под linux в момент написания статьи). Обратите внимание, что единственное необходимое изменение в подключении принтеров - это назначение принтера по умолчанию на компьютере под windows.
Требования/допущения, относящиеся к компьютеру под Windows
* Принтер присоединен к компьютеру под windows PC и драйвер правильно установлен
* Разрешен общий доступ к файлам и принтерам на компьютере под windows
* Установлен AFPL Ghostscript по ссылке http://www.cs.wisc.edu/~ghost/ (это не требуется для опции использования Acrobat)
* Установлен GSview по ссылке http://www.cs.wisc.edu/~ghost/ (это не требуется для опции использования Acrobat)
* Установлен Adobe Acrobat по ссылке http://adobe.com (требуется только для опции использования Acrobat)
* Установлен Python по ссылке http://www.python.org/download/
* Установлены расширения Python Win32 Extensions по ссылке http://starship.python.net/crew/mhammond/win32/Downloads.htm
* Указанный принтер является принтером по умолчанию и желаемые его настройки (качество печати и т.д.) являются текущими настройками принтера
* Все должно работать с большинством вариантов windows, но я проверял только на win2000
Требования/допущения, относящиеся к компьютеру под Linux
* Установлен и правильно работает CUPS
* Установлен клиент SAMBA (smbclient)
Настройка компьютера под Windows
Общий доступ к принтерам
Компьютер под windows реально не дает общий доступ к принтеру через SMB. Вместо этого общий доступ дается к директории (папке), которая будет использоваться как папка для помещения туда данных для печати (spool/dropbox).
Во-первых, создайте пользователя с помощью Панели управления windows. В приводимом примере именем пользователя будет "print", а паролем также "print". Вам следует использовать более надежный пароль.
Во-вторых, создайте папку для общего доступа. В данном примере я использую c:\temp\spool , а имя Вашего компьютера под windows windows_pc
В-третьих, разрешите общий доступ к этой папке и дайте пользователю print полный доступ к ней
Проверьте, что Вы имеете доступ к общей папке с компьютера под linux с помощью smbclient. То есть выполните команду: smbclient //windows_pc/spool -U print и убедитесь, что вы можете выполнять поместить файл командой put в эту общую папку
Скрипт Dirwatch
Далее нам нужен скрипт dirwatch.py , который можно получить по ссылке dirwatch.py. Сохраните его где-нибудь, например, в c:\scripts\dirwatch.py. Убедитесь, что Вы переименовали его в dirwatch.py (я сначала назвал его dirwatch.txt и мой web-сервер не хотел его выполнять!) Скрипт dirwatch основан на Большом примере Тима Голдена (Tim Golden), доступном по ссылке http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_for_changes.html
Откройте для редактирования скрипт dirwatch.py и сделайте следующие изменения:
* Измените переменную path_to_watch (близко к началу) на Вашу общую папку. УБЕДИТЕСЬ, что обеспечили вывод всех символов \ , например, c:\temp\spool должно быть записано как "c:\\temp\\spool".
* Измените переменную cmd (близко к концу) так, чтобы путь к файлу gsprint.exe был правильным. ВНИМАНИЕ: даже если Ваш принтер черно-белый, Вы должны все же там оставить опцию -color , иначе возможны проблемы. Эта опция обеспечивает 24-битовую шкалу оттенков серого, вместо 8-битовой.
Выполните скрипт dirwatch двойным кликом мыши на нем. Откроется окно с результатом его выполнения
Проверьте скрипт dirwatch путем использования smbclient (как описано выше) для записи (PUT) и затем переименования (RENAME) файла на языке postscript (с расширением .ps) в Вашу общую папку. Если все работает правильно, этот файл .ps будет напечатан на Вашем принтере и Вы увидите результат в окне терминала python на компьютере под windows
ВНИМАНИЕ: Скрипт dirwatch только распознает файлы, когда они ПЕРЕИМЕНОВЫВАЮТСЯ, поэтому Вам обязательно нужно сначала создать файл в папке, которую Вы указали в переменной path_to_watch, а потом переименовать его.
Теперь, когда скрипт dirwatch работает, прекратите процесс выполнения этого скрипта. Переименуйте dirwatch.py в dirwatch.pyw. С расширением .pyw не будут открываться окна командной строки во время выполнения скрипта.
Выполните новый скрипт dirwatch.pyw и поместите ярлык для него в папку автозагрузки, так чтобы он выполнялся автоматически при загрузке
ВНИМАНИЕ: Если Вы когда-либо заметите, что файлы печатаются в нескольких экземплярах, возможно, что запущены 2 или более копий скрипта dirwatch.pyw . Откройте диспетчер задач и прервите выполнение лишних копий процесса pythonw.exe . Это должно решить проблему.
Теперь компьютер под Windows полностью настроен.
Настройка компьютера под Linux
Установка Distiller PPD (удалитель иусора)
Должен быть установлен Adobe distiller PPD там, где CUPS сохраняют свои PPD. Этот мусорщик distiller PPD называется ADIST5.PPD и упакован в zip-файле, доступном по ссылке http://www.adobe.com/support/downloads/273e.htm
Извлеките из архива ADIST5.PPD и поместите в папку, где CUP хранят PPD. Обычно это /usr/share/cups/model/. Вы должны также переименовать его маленькими латинскими буквами, adist5.ppd.
Скрипт winp
Скачайте скрипт winp по ссылке winp. Разрешите его выполнение и поместите его туда, где CUPS хранит свои backend скрипты, обычно это /usr/lib/cups/backend/. Скрипт winp является модификацией скрипта pdfdistiller , автор которого - Michael Goffioul
Создайте папку для очереди печати в файловой системе linux для использования скриптом winp. В приводимом примере я использую папку /var/spool/winp. Убедитесь, что есть доступ для записи в эту папку для пользователя, под которым выполняется CUPS, обычно этот пользователь входит в группу lp. Предполагая, что CUPS выполняется от имени пользователя, входящего в группу lp, этой цели можно добиться выполнением команды chgrp lp /var/spool/winp и затем chmod g+w /var/spool/winp.
ВНИМАНИЕ: Это ОТДЕЛЬНАЯ папка для очереди печати на компьютере под linux. Это не та папка общего доступа, которая находится на компьютере под windows. Это - просто некоторая локальная папка для временного размещения данных при печати
Откройте скрипт winp для редактирования и сделайте следующие изменения:
* Измените SPOOLDIR на адрес Вашей папки очереди печати, например, /var/spool/winp
* Измените SMBUSER на имя пользователя, которое Вы использовали при настройке компьютера под windows, например, print
* Измените SMBPASS на пароль вышеуказанного пользователя, использованного при настройке компьютера под windows, например, print
Перезапустите CUPS , чтобы он распознал новый скрипт winp среди скриптов backend.
Настройка принтера CUPS
Теперь создайте новый принтер CUPS, который использует этот backend-скрипт winp и сборщика мусора adobe distiller, выполнив с правами root следующую команду: lpadmin -p windows_printer -E -v winp://windows_pc/spool -m adist5.ppd Имейте в виду, что для параметра adist5.ppd малые и большие буквы различаются, так что мы предполагаем, что Вы переименовали этот файл малыми буквами. Параметр windows_printer - это имя Вашего нового принтера, и Вы должны заменить //windows_pc/spool на имя Вашего компьютера под windows и имя папки общего доступа для данных печати на этом компьютере под windows. Не забывайте winp: в начале.
Попробуйте напечатать на Ваш новый принтер CUPS. Надеюсь, он работает!. Если нет, посмотрите журнал ошибок CUPS, обычно это файл /var/log/cups/ (попробуйте изменить уровнь подробности выдачи в журнал - log level - в CUPS и перезапустить CUPS), а также посмотрите журнал winp в файле /tmp/winp.log. Одно из этих двух мест должно помочь Вам найти причину возникших проблем.
Использование вместо этого варианта adobe acrobat (необязательная опция!)
Если у Вас проблема с использованием gsprint, например, проблема с качеством печати или печать использует слишком много ресурсов процессора или памяти на Вашем компьютере с windows, то попробуйте изложенные в этом разделе инструкции.
Я обнаружил, что использование ghostscript на компьютере под windows обеспечивает несколько другое качество печати. Иногда результаты печати с использованием acrobat вызывали очень небольшие проблемы выравнивания текста, когда заполнение областей объекта печати было слегка за пределами границы печати (нужно смотреть очень внимательно, чтобы это заметить). В других случаях ghostscript был немного лучше (опять же нужно смотреть очень внимательно). Кроме того, для использования acrobat Вам нужно сначала преобразовать файл в формат PDF, что увеличит использование процессора (и увеличит шансы загрязнения текста во время преобразования). Наконец, если Вы используете acrobat в то время как кто-то печатает на принтере из-под windows, появится окно acrobat в панели задач. Оно будет свернутым и закроется само, но оно станет активным вместо того, с которым работает пользователь.
По скорости и использованию памяти Acrobat явно лучше. Я не знаю, является ли причиной обработка файлов PDF вместо бОльших по размеру файлов PS, или что-то другое. Если Ваш компьютер под windows имеет медленный процессор или малую память, то опция Acrobat может оказаться лучше для Вас.
В любом случае, если Вы предпочтете использование acrobat на Вашем компьютере под Windows, скачайте скрипт winp-pdf по ссылке winp-pdf и отредактируйте его тем же способом, как описано выше в разделе для скрипта winp. Отредактируйте также скрипт dirwatch.py и уберите знак комментария в строке с acrorc32.exe и соответственно поставьте знак комментария в строке с gsprint.exe . Также Вам нужно будет получить файл gdputil.exe по ссылке http://www.watchdirectory.net/watchDir/GdPUtil.html и поместить его в папку, входящую в системный путь path (например, в папку c:\winnt\system32).
Ограничения
* Если компьютер под windows выключен, а Вы пытаетесь печатать, то CUPS-принтер остановится самостоятельно. Вам понадобится вручную перестартовать этот принтер, когда Ваш компьютер под windows снова будет включен и доступен, с помощью интерфейса администрирования CUPS.
* Я не думаю, что исчезнет большое количество параметров настройки из компьютера под linux таких как качество печати, сортировка и т.д.
* Сетевой пользователь SMB и его пароль явно вводятся в текст скрипта winp. Было бы лучше, если они будут частью URI , использованного, когда Вы устанавливали этот принтер под CUPS. Вам придется добавить эту возможность, если Вы хотите использовать несколько принтеров с разными паролями.
Hardware, Laptop, ATI, nVIDIA, CentOS, Linux, Ubuntu, OpenSolaris, Solaris, FreeBSD, MS Windows, Vista, XP and etc...
Показаны сообщения с ярлыком cups. Показать все сообщения
Показаны сообщения с ярлыком cups. Показать все сообщения
среда, 8 июля 2009 г.
воскресенье, 22 февраля 2009 г.
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 13
Эта часть полностью скопированна из оригинального текста.
Но здесь все понятно и думаю трудностей не вызовет.
192.168.50.237 - аналогично 192.168.1.3, pdc.adsl.com = pdc.lxf.su
MMC – Знакомство с web интерфейсом.
Если всё успешно прошло, то вы можете зайти через web интерфейс к консоли управления по адресу https://192.168.50.237 (в моём случае). Позже когда мы настроим dns сервер, то сможем зайти по адресу http://pdc.adsl.com он перенаправит нас на https (для этого и делали редикет).
Вход в панель управления происходит через пользователя root. В моём случае Логин root пароль example.
Уменьшено: 87% от [ 585 на 345 ] — нажмите для просмотра полного изображения
Познакомьтесь с интерфейсом mmc. Как мы говорили чуть выше, панель разделена на плагины, которые мы настраивали. Кстати если вы входите через IE, то там есть небольшие проблемы с отображением страниц (ещё бы).
Уменьшено: 85% от [ 600 на 371 ] — нажмите для просмотра полного изображения
Вверху жмём на ссылку переключения в режим ЭКСПЕРТА! В этом режиме доступен журнал с логами (там можно быстро смотреть ошибки), а так же доступны несколько ключевых функций (такие например как указание перемещаемых профилей у юзера и т.д. )
Сейчас необходимо настроить DNS зону, службу DHCP, псевдоним blocked для squid и добавить нового пользователя.
Настраиваем DNS Zone: В mmc переходим в «Сеть => Добавить DNS зону => и заполняем»:
Теперь добавим псевдоним к нашему серверу, для редикета.
Псевдоним: В mmc переходив в «Сеть => DNS зоны =>Посмотреть записи зоны (иконка лупы) => Изменить запись (иконка блокнотика) => В Hostname alias вписываем: blocked и затем Добавить, затем Подтвердить.»
Теперь настроим DHCP подсеть. Что бы юзеры получали автоматические сетевые настройки.
Настройка DHCP: В mmc переходим в «Сеть => DHCP подсети => Изменить подсеть (иконка блокнотика) => и заполняем»:
После заполнения жмём «подтвердить». Далее идём в «Сеть => Управления службами сети» и включаем там DHCP службу. (если она включена то перезапускаем её).
Далее заходим в раздел "Почта" и создаём почтовый домен (имя домена должно быть идентично samba домену.) adsl.com
Настройка служб готова. В принципе домен теперь полностью работоспособен. Осталось несколько штрихов. Это включить почтовый ящик администратора и завести первого юзера.
Включаем почтовый ящик для админа: переходим в mmc «Пользователи => Список => на против акаунта администратора щёлкаем «Изменить (иконка блокнотика)». Откроется панель редактирования профиля. В графе "Почтовый ящик" вписываем Administrator@adsl.com, затем в самом низу нужно внести следеющие изменения: поставить галочку на «Доступность почты» и поставить на против размера квоты почтового ящика галочку «неограниченно». Далее «Подтвердить».
Добавляем первого юзера в домен:
Вообще добавить можно и в ручную. Но раз уж мы выбрали удобство управления доменом в качестве консоли mmc, то будем заводить юзеров через неё:
Идём в Пользователи=>Добавить => и заполняем - Я приведу только несколько параметры которые заполнить обязательно нужно. Остальные параметры можно и не заполнять (на ваше усмотрение):
Отмечу что я не заполнял красные поля (Путь к профилю пользователя Открытие сессии скрипта Путь основного каталога Подключить основной каталог на сетевом диске Домашний каталог Создать домашнюю папку Оболочка входа в систему Общее имя Preferred name to be used) т.к. они в принципе заполнятся сами после создания юзера.
Ну вот и всё. Домен настроен и функционирует. Первый пользователь создан. Сетевые службы работают. Теперь пришло время внести какую нибудь рабочую станцию (или потестить на виртуальной машине) в наш новый домен.
Что бы завести машину в наш домен (на примере Xp SP3 pro):
• Включить на рабочей станции DHCP и получить автоматические настройки. (или можно вбить их в ручную, первичный DNS сервер обязательно должен быть ip адрес нашего домена!!!).
• Войти в свойства «Моего компьютера» и перейти на вкладку «Имя компьютера». Затем нажать кнопку «Изменить»
• В открывшемся окошечке ввести наш новый домен adsl (в моём случае). И нажать кнопку «Ок»
• Когда предложат ввести логин и пароль. Вводим имя и пароль от пользователя Administrator (в моём случае пароль будет
example) т.к. именно этот пользователь может регистрировать машины в домене. Жмём Ок. Должна появиться надпись «Добро пожаловать в домен adsl.
Теперь перезагружаемся и входим в систему от нашего первого тестового юзера. Проверяем подключилась ли личная папка пользователя (в разделе Мой Компьютер), проверяем права юзера (он не должен иметь доступ к системным настройкам, например не сможет сменить ip адрес или отключить сеть). Далее пробуем зайти на шару сервера \\PDC-SRV-ADSL . Важно знать что профиль при первом входе в систему сохранится только после первого выхода из системы, нужно так же это проверить.
Ну вот вроде и всё. Дальше будем заниматься работой над ошибками, написанием и добавлением модулей для mmс. И самое главное это созданием групповых политик для настройки рабочих станций пользователей. А так же я продемонстрирую работу самой консоли mmc и работу домена и рабочих станций в целом. Всё это будет описываться в других сообщениях. Удачи
Но здесь все понятно и думаю трудностей не вызовет.
192.168.50.237 - аналогично 192.168.1.3, pdc.adsl.com = pdc.lxf.su
MMC – Знакомство с web интерфейсом.
Если всё успешно прошло, то вы можете зайти через web интерфейс к консоли управления по адресу https://192.168.50.237 (в моём случае). Позже когда мы настроим dns сервер, то сможем зайти по адресу http://pdc.adsl.com он перенаправит нас на https (для этого и делали редикет).
Вход в панель управления происходит через пользователя root. В моём случае Логин root пароль example.


Познакомьтесь с интерфейсом mmc. Как мы говорили чуть выше, панель разделена на плагины, которые мы настраивали. Кстати если вы входите через IE, то там есть небольшие проблемы с отображением страниц (ещё бы).


Вверху жмём на ссылку переключения в режим ЭКСПЕРТА! В этом режиме доступен журнал с логами (там можно быстро смотреть ошибки), а так же доступны несколько ключевых функций (такие например как указание перемещаемых профилей у юзера и т.д. )
Сейчас необходимо настроить DNS зону, службу DHCP, псевдоним blocked для squid и добавить нового пользователя.
Настраиваем DNS Zone: В mmc переходим в «Сеть => Добавить DNS зону => и заполняем»:
Код
FQDN DNS-зоны - adsl.com
Описание - любое.
Имя сервера имен - pdc (имя хоста вашего сервера)
IP-адрес сервера имен - 192.168.50.237 (ip адрес сервера)
Сетевой адрес - 192.168.50.0 (ваша сеть)
Маска подсети - 24 (у меня)
Also manage a reverse DNS zone - галочка
Также создать связанную DHCP-подсеть - галочка
Описание - любое.
Имя сервера имен - pdc (имя хоста вашего сервера)
IP-адрес сервера имен - 192.168.50.237 (ip адрес сервера)
Сетевой адрес - 192.168.50.0 (ваша сеть)
Маска подсети - 24 (у меня)
Also manage a reverse DNS zone - галочка
Также создать связанную DHCP-подсеть - галочка
Теперь добавим псевдоним к нашему серверу, для редикета.
Псевдоним: В mmc переходив в «Сеть => DNS зоны =>Посмотреть записи зоны (иконка лупы) => Изменить запись (иконка блокнотика) => В Hostname alias вписываем: blocked и затем Добавить, затем Подтвердить.»
Теперь настроим DHCP подсеть. Что бы юзеры получали автоматические сетевые настройки.
Настройка DHCP: В mmc переходим в «Сеть => DHCP подсети => Изменить подсеть (иконка блокнотика) => и заполняем»:
Код
#Адрес DHCP-подсети 192.168.50.0
Маска -24
Описание - adsl.com
Авторитетный галочка
#DHCP options related to clients network parameters
Broadcast address - 192.168.50.255
Имя домена - adsl.com
Маршрутизаторы - 192.168.50.235
Сервера доменных имен - 192.168.50.237 (если у вас в сети есть ещё dns сервера, можно указать ещё)
Серверы NTPNetwork - 192.168.50.237
Серверы WINS
WINS разрешения и метод - Auto
#Другие параметры DHCP
Initial boot file name
Path to the root filesystem
Следующий сервер
Имя TFTP-сервера
#DHCP client lease time (in seconds)
Minimum lease time - 3600
Default lease time - 57600
Maximum lease time - 605800
Dynamic pool for non-registered DHCP clients - галочка
Начало IP-диапазона - 192.168.50.100 (по вашему желанию)
Конец IP-диапазона - 192.168.50.199 (по вашему желанию)
Маска -24
Описание - adsl.com
Авторитетный галочка
#DHCP options related to clients network parameters
Broadcast address - 192.168.50.255
Имя домена - adsl.com
Маршрутизаторы - 192.168.50.235
Сервера доменных имен - 192.168.50.237 (если у вас в сети есть ещё dns сервера, можно указать ещё)
Серверы NTPNetwork - 192.168.50.237
Серверы WINS
WINS разрешения и метод - Auto
#Другие параметры DHCP
Initial boot file name
Path to the root filesystem
Следующий сервер
Имя TFTP-сервера
#DHCP client lease time (in seconds)
Minimum lease time - 3600
Default lease time - 57600
Maximum lease time - 605800
Dynamic pool for non-registered DHCP clients - галочка
Начало IP-диапазона - 192.168.50.100 (по вашему желанию)
Конец IP-диапазона - 192.168.50.199 (по вашему желанию)
После заполнения жмём «подтвердить». Далее идём в «Сеть => Управления службами сети» и включаем там DHCP службу. (если она включена то перезапускаем её).
Далее заходим в раздел "Почта" и создаём почтовый домен (имя домена должно быть идентично samba домену.) adsl.com
Настройка служб готова. В принципе домен теперь полностью работоспособен. Осталось несколько штрихов. Это включить почтовый ящик администратора и завести первого юзера.
Включаем почтовый ящик для админа: переходим в mmc «Пользователи => Список => на против акаунта администратора щёлкаем «Изменить (иконка блокнотика)». Откроется панель редактирования профиля. В графе "Почтовый ящик" вписываем Administrator@adsl.com, затем в самом низу нужно внести следеющие изменения: поставить галочку на «Доступность почты» и поставить на против размера квоты почтового ящика галочку «неограниченно». Далее «Подтвердить».
Добавляем первого юзера в домен:
Вообще добавить можно и в ручную. Но раз уж мы выбрали удобство управления доменом в качестве консоли mmc, то будем заводить юзеров через неё:
Идём в Пользователи=>Добавить => и заполняем - Я приведу только несколько параметры которые заполнить обязательно нужно. Остальные параметры можно и не заполнять (на ваше усмотрение):
Код
Имя пользователя - maks
Пароль - password
Подтвердите пароль - password
Имя - Maksim
Имя - HidX
Почтовый адрес - maks@adsl.com
Доступность SAMBA галочка
Доступность почты галочка
Квота почтового ящика (kB) – 10240
Сброс почты - maks
Пароль - password
Подтвердите пароль - password
Имя - Maksim
Имя - HidX
Почтовый адрес - maks@adsl.com
Доступность SAMBA галочка
Доступность почты галочка
Квота почтового ящика (kB) – 10240
Сброс почты - maks
Отмечу что я не заполнял красные поля (Путь к профилю пользователя Открытие сессии скрипта Путь основного каталога Подключить основной каталог на сетевом диске Домашний каталог Создать домашнюю папку Оболочка входа в систему Общее имя Preferred name to be used) т.к. они в принципе заполнятся сами после создания юзера.
Ну вот и всё. Домен настроен и функционирует. Первый пользователь создан. Сетевые службы работают. Теперь пришло время внести какую нибудь рабочую станцию (или потестить на виртуальной машине) в наш новый домен.
Что бы завести машину в наш домен (на примере Xp SP3 pro):
• Включить на рабочей станции DHCP и получить автоматические настройки. (или можно вбить их в ручную, первичный DNS сервер обязательно должен быть ip адрес нашего домена!!!).
• Войти в свойства «Моего компьютера» и перейти на вкладку «Имя компьютера». Затем нажать кнопку «Изменить»
• В открывшемся окошечке ввести наш новый домен adsl (в моём случае). И нажать кнопку «Ок»
• Когда предложат ввести логин и пароль. Вводим имя и пароль от пользователя Administrator (в моём случае пароль будет
example) т.к. именно этот пользователь может регистрировать машины в домене. Жмём Ок. Должна появиться надпись «Добро пожаловать в домен adsl.
Теперь перезагружаемся и входим в систему от нашего первого тестового юзера. Проверяем подключилась ли личная папка пользователя (в разделе Мой Компьютер), проверяем права юзера (он не должен иметь доступ к системным настройкам, например не сможет сменить ip адрес или отключить сеть). Далее пробуем зайти на шару сервера \\PDC-SRV-ADSL . Важно знать что профиль при первом входе в систему сохранится только после первого выхода из системы, нужно так же это проверить.
Ну вот вроде и всё. Дальше будем заниматься работой над ошибками, написанием и добавлением модулей для mmс. И самое главное это созданием групповых политик для настройки рабочих станций пользователей. А так же я продемонстрирую работу самой консоли mmc и работу домена и рабочих станций в целом. Всё это будет описываться в других сообщениях. Удачи

Эскизы прикрепленных изображений
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 12
MMC
Грубо говоря отделяет нас от нашей цели (MDS - кто уже забыл =) ) - последний шаг.
Настроим web интерфейс управления MMC. Создадим два виртуальных хоста, http и https. (http нужен для перенаправления на https).
Добавим следующие строки в:
#vim /etc/apache2/sites-available/http
ServerName pdc.lxf.su
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Теперь тоже и для https:
#vim /etc/apache2/sites-available/https
NameVirtualHost 192.168.1.3:443
ServerName pdc.lxf.su
ServerAdmin Administrator@lxf.su
DocumentRoot /usr/share/mmc/
SSLEngine on
SSLCertificateKeyFile ssl/server.key
SSLCertificateFile ssl/server.crt
SSLProtocol all
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
AllowOverride None
Order allow,deny
Allow from 192.168.1.0/24
php_flag short_open_tag on
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
ErrorLog /var/log/apache2/mmc_error.log
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn
Включаем модули апача - http, https, rewrite и ssl.
#a2ensite http
#a2ensite https
#a2enmod rewrite
#a2enmod ssl
#/etc/init.d/apache2 restart
Настраиваем плагины MMC:
Плагин BASE:
#vim /etc/mmc/plugins/base.ini
[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=lxf, dc=su
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# Computers Locations
baseComputersDN = ou=Computers, %(basedn)s
# LDAP manager
rootName = cn=admin, %(basedn)s
password = example
# If enabled, the MMC will create/move/delete the home of the users
# Else will do nothing, but only write user informations into LDAP
userHomeAction = 1
# Skeleton directory to populate a new home directory
skelDir = /etc/skel
# If set, all new users will belong to this group when created
defaultUserGroup = Domain Users
# Default home directory for users
defaultHomeDir = /home
# user uid number start
uidStart = 10000
# group gid number start
gidStart = 10000
# LDAP log file path
logfile = /var/log/ldap.log
# FDS log file path
# logfile = /opt/fedora-ds/slapd-hostname/logs/access
# you can specify here where you can authorized creation of your homedir
# default is your defaultHomeDir
# example:
# authorizedHomeDir = /home, /home2, /mnt/depot/newhome
[backup-tools]
# Path of the backup tools
path = /usr/lib/mmc/backup-tools
# Where are put the archives
destpath = /home/samba/archives
# vim /etc/mmc/plugins/mail.ini
[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 1
# If vdomain enabled, OU where the domain are stored
vDomainDN = ou=mailDomains, dc=lxf, dc=su
[userdefault]
# For Postfix delivery
mailbox = %homeDirectory%/Maildir/
# For Dovecot delivery
# mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
mailuserquota = 204800
# vim /etc/mmc/plugins/network.ini
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=lxf,dc=su
pidfile = /var/run/dhcpd.pid
init = /etc/init.d/dhcp3-server
logfile = /var/log/daemon.log
leases = /var/lib/dhcp3/dhcpd.leases
[dns]
dn = ou=DNS,dc=lxf,dc=su
pidfile = /var/run/bind/run/named.pid
init = /etc/init.d/bind9
logfile = /var/log/daemon.log
bindroot = /etc/bind/
binduser = bind
bindgroup = bind
#этой строчки нет в оригинальной конфигурации, но она нужна
# dnsreader = DNS Reader
# dnsreaderpassword = DNSReaderPasswordpdc:/etc/mmc/plugins#
#vim /etc/mmc/plugins/samba.ini
[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=lxf, dc=su
sambaConfFile = /etc/samba/smb.conf
sambaInitScript = /etc/init.d/samba
sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so
# Default SAMBA shares location
defaultSharesPath = /home/samba
# You can specify authorized paths for share creation
# Default value is the defaultSharesPath value
# authorizedSharePaths = /shares, /opt, /srv
# Default value when adding samba attributes to an user
# DELETE means the attibute is removed from the user LDAP entry
[userDefault]
sambaPwdMustChange = DELETE
# /etc/init.d/mmc-agent restart
Restarting Mandriva Management Console XML-RPC Agent: mmc-agent 2.3.2 starting...
Using Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26)
Using Python Twisted 8.1.0
Running as euid = 0, egid = 0
Importing available MMC plugins
Created OU ou=System,dc=lxf,dc=su
Registering authenticator baseldap / base.BaseLdapAuthenticator
Registering authenticator externalldap / mmc.plugins.base.externalldap.ExternalLdapAuthenticator
Registering provisioner externalldap / mmc.plugins.base.externalldap.ExternalLdapProvisioner
Plugin base loaded, API version: 7:0:3 build(743)
Created OU ou=DHCP,dc=lxf,dc=su
Created OU ou=DNS,dc=lxf,dc=su
Created DHCP config object
The server 'pdc.lxf.su' has been set as the primary DHCP server
Plugin network loaded, API version: 2:0:0 build(743)
Created OU ou=mailDomains, dc=lxf, dc=su
Plugin mail loaded, API version: 6:1:4 build(743)
/var/lib/python-support/python2.5/mmc/support/mmctools.py:353: PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
reactor.spawnProcess(shProcess, "/bin/sh", ['/bin/sh','-c',cmd],env=os.environ)
Looks like NSCD is installed on your system. You should not run NSCD on a SAMBA server.
Plugin samba loaded, API version: 5:2:4 build(748)
Plugin proxy loaded, API version: 1:0:0 build(743)
MMC plugins activation stage 2
Selecting authenticator baseldap / base.BaseLdapAuthenticator
Authenticator baseldap successfully validated
Selecting provisioners: None
Selecting computer manager: none
SSL enabled, but peer verification is disabled.
Listening to XML-RPC requests
done.
В целом система (ММС) запустилась. Но есть ошибки. Ими займусь позже.
Перезапускаем bind9
# /etc/init.d/bind9 restart
Грубо говоря отделяет нас от нашей цели (MDS - кто уже забыл =) ) - последний шаг.
Настроим web интерфейс управления MMC. Создадим два виртуальных хоста, http и https. (http нужен для перенаправления на https).
Добавим следующие строки в:
#vim /etc/apache2/sites-available/http
ServerName pdc.lxf.su
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Теперь тоже и для https:
#vim /etc/apache2/sites-available/https
NameVirtualHost 192.168.1.3:443
ServerName pdc.lxf.su
ServerAdmin Administrator@lxf.su
DocumentRoot /usr/share/mmc/
SSLEngine on
SSLCertificateKeyFile ssl/server.key
SSLCertificateFile ssl/server.crt
SSLProtocol all
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
AllowOverride None
Order allow,deny
Allow from 192.168.1.0/24
php_flag short_open_tag on
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
ErrorLog /var/log/apache2/mmc_error.log
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn
Включаем модули апача - http, https, rewrite и ssl.
#a2ensite http
#a2ensite https
#a2enmod rewrite
#a2enmod ssl
#/etc/init.d/apache2 restart
Настраиваем плагины MMC:
Плагин BASE:
#vim /etc/mmc/plugins/base.ini
[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=lxf, dc=su
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# Computers Locations
baseComputersDN = ou=Computers, %(basedn)s
# LDAP manager
rootName = cn=admin, %(basedn)s
password = example
# If enabled, the MMC will create/move/delete the home of the users
# Else will do nothing, but only write user informations into LDAP
userHomeAction = 1
# Skeleton directory to populate a new home directory
skelDir = /etc/skel
# If set, all new users will belong to this group when created
defaultUserGroup = Domain Users
# Default home directory for users
defaultHomeDir = /home
# user uid number start
uidStart = 10000
# group gid number start
gidStart = 10000
# LDAP log file path
logfile = /var/log/ldap.log
# FDS log file path
# logfile = /opt/fedora-ds/slapd-hostname/logs/access
# you can specify here where you can authorized creation of your homedir
# default is your defaultHomeDir
# example:
# authorizedHomeDir = /home, /home2, /mnt/depot/newhome
[backup-tools]
# Path of the backup tools
path = /usr/lib/mmc/backup-tools
# Where are put the archives
destpath = /home/samba/archives
# vim /etc/mmc/plugins/mail.ini
[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 1
# If vdomain enabled, OU where the domain are stored
vDomainDN = ou=mailDomains, dc=lxf, dc=su
[userdefault]
# For Postfix delivery
mailbox = %homeDirectory%/Maildir/
# For Dovecot delivery
# mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
mailuserquota = 204800
# vim /etc/mmc/plugins/network.ini
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=lxf,dc=su
pidfile = /var/run/dhcpd.pid
init = /etc/init.d/dhcp3-server
logfile = /var/log/daemon.log
leases = /var/lib/dhcp3/dhcpd.leases
[dns]
dn = ou=DNS,dc=lxf,dc=su
pidfile = /var/run/bind/run/named.pid
init = /etc/init.d/bind9
logfile = /var/log/daemon.log
bindroot = /etc/bind/
binduser = bind
bindgroup = bind
#этой строчки нет в оригинальной конфигурации, но она нужна
# dnsreader = DNS Reader
# dnsreaderpassword = DNSReaderPasswordpdc:/etc/mmc/plugins#
#vim /etc/mmc/plugins/samba.ini
[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=lxf, dc=su
sambaConfFile = /etc/samba/smb.conf
sambaInitScript = /etc/init.d/samba
sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so
# Default SAMBA shares location
defaultSharesPath = /home/samba
# You can specify authorized paths for share creation
# Default value is the defaultSharesPath value
# authorizedSharePaths = /shares, /opt, /srv
# Default value when adding samba attributes to an user
# DELETE means the attibute is removed from the user LDAP entry
[userDefault]
sambaPwdMustChange = DELETE
# /etc/init.d/mmc-agent restart
Restarting Mandriva Management Console XML-RPC Agent: mmc-agent 2.3.2 starting...
Using Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26)
Using Python Twisted 8.1.0
Running as euid = 0, egid = 0
Importing available MMC plugins
Created OU ou=System,dc=lxf,dc=su
Registering authenticator baseldap / base.BaseLdapAuthenticator
Registering authenticator externalldap / mmc.plugins.base.externalldap.ExternalLdapAuthenticator
Registering provisioner externalldap / mmc.plugins.base.externalldap.ExternalLdapProvisioner
Plugin base loaded, API version: 7:0:3 build(743)
Created OU ou=DHCP,dc=lxf,dc=su
Created OU ou=DNS,dc=lxf,dc=su
Created DHCP config object
The server 'pdc.lxf.su' has been set as the primary DHCP server
Plugin network loaded, API version: 2:0:0 build(743)
Created OU ou=mailDomains, dc=lxf, dc=su
Plugin mail loaded, API version: 6:1:4 build(743)
/var/lib/python-support/python2.5/mmc/support/mmctools.py:353: PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
reactor.spawnProcess(shProcess, "/bin/sh", ['/bin/sh','-c',cmd],env=os.environ)
Looks like NSCD is installed on your system. You should not run NSCD on a SAMBA server.
Plugin samba loaded, API version: 5:2:4 build(748)
Plugin proxy loaded, API version: 1:0:0 build(743)
MMC plugins activation stage 2
Selecting authenticator baseldap / base.BaseLdapAuthenticator
Authenticator baseldap successfully validated
Selecting provisioners: None
Selecting computer manager: none
SSL enabled, but peer verification is disabled.
Listening to XML-RPC requests
done.
В целом система (ММС) запустилась. Но есть ошибки. Ими займусь позже.
Перезапускаем bind9
# /etc/init.d/bind9 restart
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 11
CUPS
Для принтеров HP можно установить дополнительные пакеты (если что-то не поддерживается, сходить на - http://foo2zjs.rkkda.com/):
#aptitude install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core
Настраиваем Cups для нашей локалки:
#vim /etc/cups/cupsd.conf
Заменим в этом файле:
Listen localhost:631 заменим на Listen 192.168.1.3:631
Далее ищем:
#Restrict access to the server...
Order allow,deny
Allow localhost
# Restrict access to the admin pages...
Encryption Required
Order allow,deny
Allow localhost
# Restrict access to configuration files...
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
И меняем на:
# Restrict access to the server...
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
# Restrict access to the admin pages...
Encryption Required
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
# Restrict access to configuration files...
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
#/etc/init.d/cups restart
Настройка сервера печати закончена. После добавления нового принтера в Cups, необходимо добавить его в самбу, что бы юзеры тоже имели доступ к нему. Добавляем командой:
#cupsaddsmb -a
Для принтеров HP можно установить дополнительные пакеты (если что-то не поддерживается, сходить на - http://foo2zjs.rkkda.com/):
#aptitude install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core
Настраиваем Cups для нашей локалки:
#vim /etc/cups/cupsd.conf
Заменим в этом файле:
Listen localhost:631 заменим на Listen 192.168.1.3:631
Далее ищем:
#Restrict access to the server...
Order allow,deny
Allow localhost
# Restrict access to the admin pages...
Encryption Required
Order allow,deny
Allow localhost
# Restrict access to configuration files...
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
И меняем на:
# Restrict access to the server...
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
# Restrict access to the admin pages...
Encryption Required
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
# Restrict access to configuration files...
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
#/etc/init.d/cups restart
Настройка сервера печати закончена. После добавления нового принтера в Cups, необходимо добавить его в самбу, что бы юзеры тоже имели доступ к нему. Добавляем командой:
#cupsaddsmb -a
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 10
BIND
Переходим к неменее важному процессу настройки Bind – dns сервера.
И тут пока еще не рещенная проблема.
Копируем настройки по умолчанию в папку bind.
# cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/
Меняем точку старта slapd
# update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 .
Пропишем localhost в качестве dns сервера в resolv.conf
#vim /etc/resolv.conf
Переходим к неменее важному процессу настройки Bind – dns сервера.
И тут пока еще не рещенная проблема.
Копируем настройки по умолчанию в папку bind.
# cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/
Меняем точку старта slapd
# update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 .
Пропишем localhost в качестве dns сервера в resolv.conf
#vim /etc/resolv.conf
#Мой DNS
nameserver 127.0.0.1
#DNS моего провайдера
nameserver 217.25.209.2
DHCP
Настраиваем DHCP сервер. Используем mmc конфиг dhcp сервера.
#cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/
#vim /etc/dhcp3/dhcpd.conf
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=lxf, dc=su";
ldap-password "example";
ldap-base-dn "dc=lxf, dc=su";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
SQUID
Настройка немного специфическая. Авторизации тут пока нет. Интернет будет раздавать только для локальной сети.
Так же мы настроим SquidGuard, он будет резать нежелательные сайты. Начнём со SquidGuard. Перенесём файл конфигурации по умолчанию в папку squid и создадим файл базы данных.
#cp /usr/share/doc/python-mmc-base/contrib/proxy/squidGuard.conf /etc/squid/
#touch /var/lib/squidguard/db/bad.destdomainlist
Редактируем конфиг squidguard'a:
#vim /etc/squid/squidGuard.conf
Заменим значение redirect, на свое:
Настроим прокси сервер Squid.
Для начала скопируем конфиг по умолчанию и очистим его от комментариев для удобства редактирования:
#cd /etc/squid/
#mv squid.conf squid.conf.orig
#cat squid.conf.orig | egrep "^[^#]" > squid.conf
Приступим:
#vim squid.conf
acl all src all
acl manager proto cache_object
redirect_program /usr/bin/squidGuard
acl our_networks src 192.168.1.0/24
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 3128
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow our_networks
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
#/etc/init.d/squid restart
Теперь настроим редикет. Что бы когда юзер зайдёт на запрещённый сайт ему бы вылезала спец страница с ошибкой:
#mkdir /var/www/squidguard/
#zcat /usr/share/doc/squidguard/examples/squidGuard.cgi.gz > /var/www/squidguard/squidGuard.cgi
#chmod +x /var/www/squidguard/squidGuard.cgi
После этого создадим файл виртуально хоста:
#vim /etc/apache2/sites-available/http
Добавим следующее:
NameVirtualHost 192.168.1.3:80
ServerName blocked.lxf.su
ServerAdmin Administrator@lxf.com
DocumentRoot /var/www/squidguard/
AddHandler cgi-script .cgi
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from 192.168.1.0/24
ErrorLog /var/log/apache2/squidguard_error.log
CustomLog /var/log/apache2/squidguard_access.log combined
LogLevel warn
Настройка Web- интерфейсов.
Для начала создадим специальный SSL сертификат который будут использовать сервер печати Cups и консоль управления доменом MMC:
#mkdir /etc/apache2/ssl/
Система предложит заполнить сертификат. Ответим на вопросы. Можно просто жать ENTER.
#openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt -days 365 -nodes
#chmod 600 /etc/apache2/ssl/server.key
#cp /etc/apache2/ssl/* /etc/cups/ssl/
nameserver 127.0.0.1
#DNS моего провайдера
nameserver 217.25.209.2
DHCP
Настраиваем DHCP сервер. Используем mmc конфиг dhcp сервера.
#cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/
#vim /etc/dhcp3/dhcpd.conf
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=lxf, dc=su";
ldap-password "example";
ldap-base-dn "dc=lxf, dc=su";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
SQUID
Настройка немного специфическая. Авторизации тут пока нет. Интернет будет раздавать только для локальной сети.
Так же мы настроим SquidGuard, он будет резать нежелательные сайты. Начнём со SquidGuard. Перенесём файл конфигурации по умолчанию в папку squid и создадим файл базы данных.
#cp /usr/share/doc/python-mmc-base/contrib/proxy/squidGuard.conf /etc/squid/
#touch /var/lib/squidguard/db/bad.destdomainlist
Редактируем конфиг squidguard'a:
#vim /etc/squid/squidGuard.conf
Заменим значение redirect, на свое:
redirect http://blocked.lxf.su/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
Настроим прокси сервер Squid.
Для начала скопируем конфиг по умолчанию и очистим его от комментариев для удобства редактирования:
#cd /etc/squid/
#mv squid.conf squid.conf.orig
#cat squid.conf.orig | egrep "^[^#]" > squid.conf
Приступим:
#vim squid.conf
acl all src all
acl manager proto cache_object
redirect_program /usr/bin/squidGuard
acl our_networks src 192.168.1.0/24
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 3128
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow our_networks
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
#/etc/init.d/squid restart
Теперь настроим редикет. Что бы когда юзер зайдёт на запрещённый сайт ему бы вылезала спец страница с ошибкой:
#mkdir /var/www/squidguard/
#zcat /usr/share/doc/squidguard/examples/squidGuard.cgi.gz > /var/www/squidguard/squidGuard.cgi
#chmod +x /var/www/squidguard/squidGuard.cgi
После этого создадим файл виртуально хоста:
#vim /etc/apache2/sites-available/http
Добавим следующее:
NameVirtualHost 192.168.1.3:80
ServerName blocked.lxf.su
ServerAdmin Administrator@lxf.com
DocumentRoot /var/www/squidguard/
AddHandler cgi-script .cgi
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from 192.168.1.0/24
ErrorLog /var/log/apache2/squidguard_error.log
CustomLog /var/log/apache2/squidguard_access.log combined
LogLevel warn
Настройка Web- интерфейсов.
Для начала создадим специальный SSL сертификат который будут использовать сервер печати Cups и консоль управления доменом MMC:
#mkdir /etc/apache2/ssl/
Система предложит заполнить сертификат. Ответим на вопросы. Можно просто жать ENTER.
#openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt -days 365 -nodes
#chmod 600 /etc/apache2/ssl/server.key
#cp /etc/apache2/ssl/* /etc/cups/ssl/
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 9
ClamAV and SpamAssassin
Настраиваем антивирус и антиспам:
#vim etc/amavis/conf.d/15-content_filter_mode
use strict;
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1;
#vim /etc/amavis/conf.d/50-user
use strict;
$pax='pax';
1;
Добавляем clamav в группу amavis. И рестартим демоны clamav и amavis:
#vim adduser clamav amavis
#vim /etc/init.d/amavis restart
#vim /etc/init.d/clamav-daemon restart
#vim /etc/init.d/clamav-freshclam restart
Приступаем к Spamassassin.
#vim /etc/spamassassin/local.cf
добавим в самом начале строки:
# dcc
use_dcc 1
dcc_path /usr/bin/dccproc
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
#vim /etc/spamassassin/v310.pre
Здесь должны быть раскомментированы следующие строчки:
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
Настроим spamassassin, для запуска его как демон:
#vim /etc/default/spamassassin
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
PIDFILE="/var/run/spamd.pid"
#NICE="--nicelevel 15"
CRON=0
Перезапустим spamassassin и amavis:
#/etc/init.d/spamassassin start
#/etc/init.d/amavis restart
Антивирус и антиспам готов. Сейчас настроим проверку папки с профилями юзеров, антиврусом ClamAV. Для этого добавим в crontab(в конце файла):
#vim /etc/crontab
0 9,19 * * * root clamdscan /home/samba/profiles
Настраиваем антивирус и антиспам:
#vim etc/amavis/conf.d/15-content_filter_mode
use strict;
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1;
#vim /etc/amavis/conf.d/50-user
use strict;
$pax='pax';
1;
Добавляем clamav в группу amavis. И рестартим демоны clamav и amavis:
#vim adduser clamav amavis
#vim /etc/init.d/amavis restart
#vim /etc/init.d/clamav-daemon restart
#vim /etc/init.d/clamav-freshclam restart
Приступаем к Spamassassin.
#vim /etc/spamassassin/local.cf
добавим в самом начале строки:
# dcc
use_dcc 1
dcc_path /usr/bin/dccproc
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
#vim /etc/spamassassin/v310.pre
Здесь должны быть раскомментированы следующие строчки:
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
Настроим spamassassin, для запуска его как демон:
#vim /etc/default/spamassassin
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
PIDFILE="/var/run/spamd.pid"
#NICE="--nicelevel 15"
CRON=0
Перезапустим spamassassin и amavis:
#/etc/init.d/spamassassin start
#/etc/init.d/amavis restart
Антивирус и антиспам готов. Сейчас настроим проверку папки с профилями юзеров, антиврусом ClamAV. Для этого добавим в crontab(в конце файла):
#vim /etc/crontab
0 9,19 * * * root clamdscan /home/samba/profiles
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 8
Сейчас настроим дополднения к postfix - IMAP, POP3 сервер, а так же квоты. Для этого используем Devcot.
#echo "" > /etc/dovecot/dovecot.conf
#vim /etc/dovecot/dovecot.conf
protocols = imap imaps pop3 pop3s
listen = 0.0.0.0
login_greeting = lxf.su mailserver ready.
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/private/mail.key
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.log
# IMAP configuration
protocol imap {
mail_plugins = quota imap_quota
}
# POP3 configuration
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
# LDA configuration
protocol lda {
postmaster_address = postmaster
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = quota
}
# LDAP authentication
auth default {
mechanisms = plain login
passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = dovecot
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
#echo "" > /etc/dovecot/dovecot-ldap.conf
#vim /etc/dovecot/dovecot-ldap.conf
hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=lxf,dc=su
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:storage
user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
default_pass_scheme = CRYPT
user_global_gid = mail
Задаем права для dovecot и рестартим его:
#dpkg-statoverride --update --add root dovecot 4755 /usr/lib/dovecot/deliver
#/etc/init.d/dovecot restart
#echo "" > /etc/dovecot/dovecot.conf
#vim /etc/dovecot/dovecot.conf
protocols = imap imaps pop3 pop3s
listen = 0.0.0.0
login_greeting = lxf.su mailserver ready.
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/private/mail.key
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.log
# IMAP configuration
protocol imap {
mail_plugins = quota imap_quota
}
# POP3 configuration
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
# LDA configuration
protocol lda {
postmaster_address = postmaster
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = quota
}
# LDAP authentication
auth default {
mechanisms = plain login
passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = dovecot
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
#echo "" > /etc/dovecot/dovecot-ldap.conf
#vim /etc/dovecot/dovecot-ldap.conf
hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=lxf,dc=su
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:storage
user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
default_pass_scheme = CRYPT
user_global_gid = mail
Задаем права для dovecot и рестартим его:
#dpkg-statoverride --update --add root dovecot 4755 /usr/lib/dovecot/deliver
#/etc/init.d/dovecot restart
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 7
ПОЧТА продолжение
С настройками безопасности и аутентификацией закончили. Настраиваем Postfix. Настройка базовая. Добавим только поддержку виртуальных доменов. Копируем файл конфигурации предложенный MMC:
#cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domains/* /etc/postfix/
Теперь отредактируем главный файл конфигурации. Он будет выглядеть примерно так:
#vim /etc/postfix/main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_at_myorigin = yes
append_dot_mydomain = no
myhostname = pdc.lxf.su
#alias_maps = hash:/etc/aliases
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = pdc.lxf.su,lxf.su,localhost.localdomain,localhost
mail_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN"
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
luser_relay =
# Virtual Domains Control
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf
virtual_mailbox_base = /
virtual_alias_domains =
virtual_minimum_uid = 100
virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf
virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf
# Use Maildir
home_mailbox = Maildir/
# Wait until the RCPT TO command before evaluating restrictions
smtpd_delay_reject = yes
# Basics Restrictions
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
# Requirements for the connecting server
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org,
permit
# Requirements for the HELO statement
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_invalid_hostname,
permit
# Requirements for the sender address
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit
# Requirement for the recipient address
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
permit
# Enable SASL authentication for the smtpd daemon
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# Fix for outlook
broken_sasl_auth_clients = yes
# Reject anonymous connections
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
# SSL/TLS
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
# Amavis
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Затем отредактируем оставшиеся файлы. Заменяем в них строчку «search_base» на:
search_base = ou=Users,dc=lxf,dc=su
#vim /etc/postfix/ldap-accounts.cf
#vim /etc/postfix/ldap-domains.cf
#vim /etc/postfix/ldap-maildrop.cf
#vim /etc/postfix/ldap-uid.cf
#vim /etc/postfix/ldap-aliases.cf
#vim /etc/postfix/ldap-gid.cf
#vim /etc/postfix/ldap-transport.cf
Последняя настройка postfix - редактируем:
#vim /etc/postfix/master.cf
В этом файле после строчки #smtps добавим:
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient
# Mail to Amavis
amavis unix - - - - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
# Mail from Amavis
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Все, перезапускаем postfix:
# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
С настройками безопасности и аутентификацией закончили. Настраиваем Postfix. Настройка базовая. Добавим только поддержку виртуальных доменов. Копируем файл конфигурации предложенный MMC:
#cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domains/* /etc/postfix/
Теперь отредактируем главный файл конфигурации. Он будет выглядеть примерно так:
#vim /etc/postfix/main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_at_myorigin = yes
append_dot_mydomain = no
myhostname = pdc.lxf.su
#alias_maps = hash:/etc/aliases
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = pdc.lxf.su,lxf.su,localhost.localdomain,localhost
mail_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN"
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
luser_relay =
# Virtual Domains Control
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf
virtual_mailbox_base = /
virtual_alias_domains =
virtual_minimum_uid = 100
virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf
virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf
# Use Maildir
home_mailbox = Maildir/
# Wait until the RCPT TO command before evaluating restrictions
smtpd_delay_reject = yes
# Basics Restrictions
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
# Requirements for the connecting server
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org,
permit
# Requirements for the HELO statement
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_invalid_hostname,
permit
# Requirements for the sender address
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit
# Requirement for the recipient address
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
permit
# Enable SASL authentication for the smtpd daemon
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# Fix for outlook
broken_sasl_auth_clients = yes
# Reject anonymous connections
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
# SSL/TLS
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
# Amavis
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Затем отредактируем оставшиеся файлы. Заменяем в них строчку «search_base» на:
search_base = ou=Users,dc=lxf,dc=su
#vim /etc/postfix/ldap-accounts.cf
#vim /etc/postfix/ldap-domains.cf
#vim /etc/postfix/ldap-maildrop.cf
#vim /etc/postfix/ldap-uid.cf
#vim /etc/postfix/ldap-aliases.cf
#vim /etc/postfix/ldap-gid.cf
#vim /etc/postfix/ldap-transport.cf
Последняя настройка postfix - редактируем:
#vim /etc/postfix/master.cf
В этом файле после строчки #smtps добавим:
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient
# Mail to Amavis
amavis unix - - - - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
# Mail from Amavis
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Все, перезапускаем postfix:
# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
суббота, 21 февраля 2009 г.
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 6
ПОЧТА
Настроим протокол SSL. Создаем конфиг:
# vi /etc/ssl/mail.cnf
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no
string_mask = nombstr
x509_extensions = server_cert
[ req_distinguished_name ]
countryName = RU
stateOrProvinceName = Omskaya oblast
localityName = Omsk
organizationName = lxf OOO
organizationalUnitName = IT
commonName = pdc.lxf.su
emailAddress = postmaster@lxf.su
[ server_cert ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
nsCertType = server
nsComment = "mailserver"
Создадим SSL сертификат и установим на него правильные права:
# openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch
Generating a 2048 bit RSA private key
....................................................................................................................+++
....+++
writing new private key to '/etc/ssl/private/mail.key'
-----
# chmod 600 /etc/ssl/private/mail.key
Далее, настраиваем пакет SASL. Его настройка нужна для Postfix. Т.к. он использует его для аутентификации юзеров в LDAP.
# mkdir -p /var/spool/postfix/var/run/saslauthd/
Исправим следующие строчки в:
# vim /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
# vim /etc/saslauthd.conf
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=lxf,dc=su
ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))
# vim /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
Добавляем юзера postfix в группу sasl. И перезапускаем sasl:
# adduser postfix sasl
# /etc/init.d/saslauthd restart
Настроим протокол SSL. Создаем конфиг:
# vi /etc/ssl/mail.cnf
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no
string_mask = nombstr
x509_extensions = server_cert
[ req_distinguished_name ]
countryName = RU
stateOrProvinceName = Omskaya oblast
localityName = Omsk
organizationName = lxf OOO
organizationalUnitName = IT
commonName = pdc.lxf.su
emailAddress = postmaster@lxf.su
[ server_cert ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
nsCertType = server
nsComment = "mailserver"
Создадим SSL сертификат и установим на него правильные права:
# openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch
Generating a 2048 bit RSA private key
....................................................................................................................+++
....+++
writing new private key to '/etc/ssl/private/mail.key'
-----
# chmod 600 /etc/ssl/private/mail.key
Далее, настраиваем пакет SASL. Его настройка нужна для Postfix. Т.к. он использует его для аутентификации юзеров в LDAP.
# mkdir -p /var/spool/postfix/var/run/saslauthd/
Исправим следующие строчки в:
# vim /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
# vim /etc/saslauthd.conf
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=lxf,dc=su
ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))
# vim /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
Добавляем юзера postfix в группу sasl. И перезапускаем sasl:
# adduser postfix sasl
# /etc/init.d/saslauthd restart
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 5
Создаем конфигурационные файлы для smbldap-tools:
# vim /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=lxf,dc=su"
slavePw="example"
masterDN="cn=admin,dc=lxf,dc=su"
masterPw="example"
В следующий файлик надо будет вставить наши данные и SID, который получили пару шагов назад:
SID="S-1-2-51-6367416939-3848486559-4512677050"
sambaDomain="IT"
ldapTLS="0"
suffix="dc=lxf,dc=su"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=IT,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-IT\%U"
userProfile="\\PDC-IT\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="lxf.su"
smbpasswd="/usr/bin/smbpasswd"
Задаем права на файлы:
# chmod 0644 /etc/smbldap-tools/smbldap.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
Теперь заполнеям ldap базу и создаем аккаунт администратора (Administrator):
# smbldap-populate -m 512 -a Administrator
Populating LDAP directory for domain IT (S-1-2-51-6367416939-3848486559-4512677050)
(using builtin directory structure)
entry dc=lxf,dc=su already exist.
adding new entry: ou=Users,dc=lxf,dc=su
adding new entry: ou=Groups,dc=lxf,dc=su
adding new entry: ou=Computers,dc=lxf,dc=su
adding new entry: ou=Idmap,dc=lxf,dc=su
adding new entry: uid=Administrator,ou=Users,dc=lxf,dc=su
adding new entry: uid=nobody,ou=Users,dc=lxf,dc=su
adding new entry: cn=Domain Admins,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Domain Users,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Domain Guests,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Domain Computers,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Administrators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Account Operators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Print Operators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Backup Operators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Replicators,ou=Groups,dc=lxf,dc=su
entry sambaDomainName=IT,dc=lxf,dc=su already exist. Updating it...
Please provide a password for the domain Administrator:
Changing UNIX and samba passwords for Administrator
New password:
Retype new password:
В двух послених строчках думаю все понятно - задаем пароль. Я как и везде выбрал example.
Так же добавим Administrator в Domain Users:
# smbldap-usermod -u 3000 -G "Domain Users" Administrator
Заменим /etc/nsswitch.conf на предложенный MMC:
#cp /usr/share/doc/python-mmc-base/contrib/ldap/nsswitch.conf /etc/nsswitch.conf
И создадим каталоги описанные в smb.conf:
# mkdir -p /home/samba/shares/public/
# mkdir /home/samba/netlogon/
# mkdir /home/samba/profiles/
# mkdir /home/samba/partage/
# mkdir /home/samba/archives/
Поправим права доступа:
# chmod 777 /var/spool/samba/ /home/samba/shares/public/
# chmod 755 /home/samba/netlogon/
# chmod 770 /home/samba/profiles/ /home/samba/partage/
# chmod 700 /home/samba/archives/
PAM LDAP
Добавляем поддержку ldap в PAM. После редакции необходимых нам файлов, они должны выглядеть так:
# cat /etc/pam.d/common-account
account required pam_unix.so
account sufficient pam_ldap.so
# cat /etc/pam.d/common-auth
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
# cat /etc/pam.d/common-password
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password sufficient pam_ldap.so use_first_pass use_authtok
password required pam_deny.so
# cat /etc/pam.d/common-session
session required pam_unix.so
session optional pam_ldap.so
Теперь reboot
ОБЯЗАТЕЛЬНО!
Теперь можно сделать то, что в оригинальной документации написанно раньше, но без настройки взоимодействия PAM и ldap - точно не работает:
# chown -R :"Domain Users" /home/samba/
Теперь надо дать право Domain Admins добавлять машины в домен:
# net -U Administrator rpc rights grant 'IT\Domain Admins' SeMachineAccountPrivilege
Enter Administrator's password:
Successfully granted rights.
На этом настройка домена закончилась. Поздравляю!
# vim /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=lxf,dc=su"
slavePw="example"
masterDN="cn=admin,dc=lxf,dc=su"
masterPw="example"
В следующий файлик надо будет вставить наши данные и SID, который получили пару шагов назад:
SID="S-1-2-51-6367416939-3848486559-4512677050"
sambaDomain="IT"
ldapTLS="0"
suffix="dc=lxf,dc=su"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=IT,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-IT\%U"
userProfile="\\PDC-IT\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="lxf.su"
smbpasswd="/usr/bin/smbpasswd"
Задаем права на файлы:
# chmod 0644 /etc/smbldap-tools/smbldap.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
Теперь заполнеям ldap базу и создаем аккаунт администратора (Administrator):
# smbldap-populate -m 512 -a Administrator
Populating LDAP directory for domain IT (S-1-2-51-6367416939-3848486559-4512677050)
(using builtin directory structure)
entry dc=lxf,dc=su already exist.
adding new entry: ou=Users,dc=lxf,dc=su
adding new entry: ou=Groups,dc=lxf,dc=su
adding new entry: ou=Computers,dc=lxf,dc=su
adding new entry: ou=Idmap,dc=lxf,dc=su
adding new entry: uid=Administrator,ou=Users,dc=lxf,dc=su
adding new entry: uid=nobody,ou=Users,dc=lxf,dc=su
adding new entry: cn=Domain Admins,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Domain Users,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Domain Guests,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Domain Computers,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Administrators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Account Operators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Print Operators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Backup Operators,ou=Groups,dc=lxf,dc=su
adding new entry: cn=Replicators,ou=Groups,dc=lxf,dc=su
entry sambaDomainName=IT,dc=lxf,dc=su already exist. Updating it...
Please provide a password for the domain Administrator:
Changing UNIX and samba passwords for Administrator
New password:
Retype new password:
В двух послених строчках думаю все понятно - задаем пароль. Я как и везде выбрал example.
Так же добавим Administrator в Domain Users:
# smbldap-usermod -u 3000 -G "Domain Users" Administrator
Заменим /etc/nsswitch.conf на предложенный MMC:
#cp /usr/share/doc/python-mmc-base/contrib/ldap/nsswitch.conf /etc/nsswitch.conf
И создадим каталоги описанные в smb.conf:
# mkdir -p /home/samba/shares/public/
# mkdir /home/samba/netlogon/
# mkdir /home/samba/profiles/
# mkdir /home/samba/partage/
# mkdir /home/samba/archives/
Поправим права доступа:
# chmod 777 /var/spool/samba/ /home/samba/shares/public/
# chmod 755 /home/samba/netlogon/
# chmod 770 /home/samba/profiles/ /home/samba/partage/
# chmod 700 /home/samba/archives/
PAM LDAP
Добавляем поддержку ldap в PAM. После редакции необходимых нам файлов, они должны выглядеть так:
# cat /etc/pam.d/common-account
account required pam_unix.so
account sufficient pam_ldap.so
# cat /etc/pam.d/common-auth
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
# cat /etc/pam.d/common-password
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password sufficient pam_ldap.so use_first_pass use_authtok
password required pam_deny.so
# cat /etc/pam.d/common-session
session required pam_unix.so
session optional pam_ldap.so
Теперь reboot
ОБЯЗАТЕЛЬНО!
Теперь можно сделать то, что в оригинальной документации написанно раньше, но без настройки взоимодействия PAM и ldap - точно не работает:
# chown -R :"Domain Users" /home/samba/
Теперь надо дать право Domain Admins добавлять машины в домен:
# net -U Administrator rpc rights grant 'IT\Domain Admins' SeMachineAccountPrivilege
Enter Administrator's password:
Successfully granted rights.
На этом настройка домена закончилась. Поздравляю!
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 4
SAMBA
# /etc/init.d/samba stop
Stopping Samba daemons: nmbd smbd.
Копируем конфиги от MMC:
# cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/
Редактируем:
# vim /etc/samba/smb.conf
==============
[global]
workgroup = IT
netbiosname = PDC-IT
preferred master = yes
os level = 65
wins support = yes
enable privileges = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
log level = 3
null passwords = yes
security = user
# unix charset = ISO8859-1
name resolve order = bcast host
domain logons = yes
domain master = yes
printing = cups
printcap name = cups
logon path = \\%N\profiles\%U
logon script = logon.bat
logon drive = H:
map acl inherit = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = no
ldap admin dn = cn=admin,dc=lxf,dc=su
ldap suffix = dc=lxf,dc=su
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
ldap passwd sync = yes
# ldap delete dn = yes
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n
add user script = /usr/sbin/smbldap-useradd -m "%u"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add machine script = /usr/lib/mmc/add_machine_script '%u'
delete user script = /usr/sbin/smbldap-userdel "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
acl group control = yes
[homes]
comment = Home directories
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
hide files = /Maildir/
[public]
comment = Public share
path = /home/samba/shares/public
browseable = yes
public = yes
writeable = yes
[archives]
comment = Backup share
path = /home/samba/archives
browseable = yes
public = no
writeable = no
[printers]
comment = Printers
path = /tmp
browseable = no
public = yes
guest ok = yes
writeable = no
printable = yes
[print$]
comment = Drivers
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = Administrator,root,@lpadmin
[netlogon]
path = /home/samba/netlogon
public = yes
writeable = yes
browseable = no
[profiles]
path = /home/samba/profiles
writeable = yes
create mask = 0700
directory mask = 0700
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yes
[www]
path = /usr/share/mmc
writeable = yes
admin users = Administrator, ADSL\Administrator
create mask = 0777
directory mask = 0777
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
==============
Тестируем:
# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[public]"
Processing section "[archives]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[netlogon]"
Processing section "[profiles]"
Processing section "[partage]"
Processing section "[www]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
Все ок.
Даем самбе права на чтение ldap.
# smbpasswd -w example
Setting stored password for "cn=admin,dc=lxf,dc=su" in secrets.tdb
Получаем SID:
# net getlocalsid IT
SID for domain ADSL is: S-1-2-51-6367416939-3848486559-4512677050
Проверим регистрацию SID в ldap:
# slapcat | grep sambaDomainName
dn: sambaDomainName=IT,dc=lxf,dc=su
sambaDomainName: IT
# /etc/init.d/samba start
Starting Samba daemons: nmbd smbd.
C самбой - все!
# /etc/init.d/samba stop
Stopping Samba daemons: nmbd smbd.
Копируем конфиги от MMC:
# cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/
Редактируем:
# vim /etc/samba/smb.conf
==============
[global]
workgroup = IT
netbiosname = PDC-IT
preferred master = yes
os level = 65
wins support = yes
enable privileges = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
log level = 3
null passwords = yes
security = user
# unix charset = ISO8859-1
name resolve order = bcast host
domain logons = yes
domain master = yes
printing = cups
printcap name = cups
logon path = \\%N\profiles\%U
logon script = logon.bat
logon drive = H:
map acl inherit = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = no
ldap admin dn = cn=admin,dc=lxf,dc=su
ldap suffix = dc=lxf,dc=su
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
ldap passwd sync = yes
# ldap delete dn = yes
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n
add user script = /usr/sbin/smbldap-useradd -m "%u"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add machine script = /usr/lib/mmc/add_machine_script '%u'
delete user script = /usr/sbin/smbldap-userdel "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
acl group control = yes
[homes]
comment = Home directories
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
hide files = /Maildir/
[public]
comment = Public share
path = /home/samba/shares/public
browseable = yes
public = yes
writeable = yes
[archives]
comment = Backup share
path = /home/samba/archives
browseable = yes
public = no
writeable = no
[printers]
comment = Printers
path = /tmp
browseable = no
public = yes
guest ok = yes
writeable = no
printable = yes
[print$]
comment = Drivers
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = Administrator,root,@lpadmin
[netlogon]
path = /home/samba/netlogon
public = yes
writeable = yes
browseable = no
[profiles]
path = /home/samba/profiles
writeable = yes
create mask = 0700
directory mask = 0700
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yes
[www]
path = /usr/share/mmc
writeable = yes
admin users = Administrator, ADSL\Administrator
create mask = 0777
directory mask = 0777
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
==============
Тестируем:
# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[public]"
Processing section "[archives]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[netlogon]"
Processing section "[profiles]"
Processing section "[partage]"
Processing section "[www]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
Все ок.
Даем самбе права на чтение ldap.
# smbpasswd -w example
Setting stored password for "cn=admin,dc=lxf,dc=su" in secrets.tdb
Получаем SID:
# net getlocalsid IT
SID for domain ADSL is: S-1-2-51-6367416939-3848486559-4512677050
Проверим регистрацию SID в ldap:
# slapcat | grep sambaDomainName
dn: sambaDomainName=IT,dc=lxf,dc=su
sambaDomainName: IT
# /etc/init.d/samba start
Starting Samba daemons: nmbd smbd.
C самбой - все!
Mandriva Directory Server (MDS) + VMware Server 2 + Debian lenny Часть 3
Переходим к конфигурации домена:
Пререносим схемы MMC для использования в ldap:
#cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
#cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema
Прописываем схемы в конфиге ldap:
ниже уже прописанных схем (include /etc/ldap/schema/inetorgperson.schema) вставляем следующее:
# vim /etc/ldap/slapd.conf
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
А вот эта строчка указанная в оригинальной документации(для etch) у меня не за работала - писала ошибку. Поэтому мы ее НЕ прописываем:
Schemacheck on
Далее получаем админский пароль от LDAP в шифрованном виде. Шифруем с помощью SSHA.
# slappasswd -s example
{SSHA}u1wI00I0/oe5R+3I7g5WBu230jDMQNGX
Теперь заменим строку "# rootdn "cn=admin,dc=lxf,dc=su"" на:
# vim /etc/ldap/slapd.conf
rootdn "cn=admin,dc=lxf,dc=su"
rootpw {SSHA}u1wI00I0/oe5R+3I7g5WBu230jDMQNGX
В этом же файле ищем # Indexing options for database #1 нижеё строка index objectClass eq удаляем её. В место неё вставляем следующее:
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
Здесь же ищем строку access to attrs=userPassword,shadowLastChange и изменяем её на:
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
И последнее изменение в строчке "loglevel none":
loglevel 256
Добавим в сымый конец файла /etc/ldap/ldap.conf две строчки:
# vim /etc/ldap/ldap.conf
host 127.0.0.1
base dc=lxf,dc=su
C ldap - законченно! Рестартим его:
# /etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.
Выдержка из оригинальной документации:
==============
Да, кстати по поводу журналов в mmc. Мы так же должны добавить в файл /etc/syslog.conf следующее (Где то в середине, я думаю вы поймёте куда добавлять):
==============
В lenny по такой метод не сработает, делаем по другому, добавляем после строчки "user.* -/var/log/user.log" в
# vim /etc/rsyslog.conf
local4.* /var/log/ldap.log
Затем создаем этот файл:
# touch /var/log/ldap.log
# chmod 0640 /var/log/ldap.log
# chgrp openldap /var/log/ldap.log
# /etc/init.d/rsyslog restart
# /etc/init.d/slapd restart
И смотрим /var/log/ldap.log, если записи о событиях появиись - все ОК.
Пререносим схемы MMC для использования в ldap:
#cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
#cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
#zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema
Прописываем схемы в конфиге ldap:
ниже уже прописанных схем (include /etc/ldap/schema/inetorgperson.schema) вставляем следующее:
# vim /etc/ldap/slapd.conf
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
А вот эта строчка указанная в оригинальной документации(для etch) у меня не за работала - писала ошибку. Поэтому мы ее НЕ прописываем:
Schemacheck on
Далее получаем админский пароль от LDAP в шифрованном виде. Шифруем с помощью SSHA.
# slappasswd -s example
{SSHA}u1wI00I0/oe5R+3I7g5WBu230jDMQNGX
Теперь заменим строку "# rootdn "cn=admin,dc=lxf,dc=su"" на:
# vim /etc/ldap/slapd.conf
rootdn "cn=admin,dc=lxf,dc=su"
rootpw {SSHA}u1wI00I0/oe5R+3I7g5WBu230jDMQNGX
В этом же файле ищем # Indexing options for database #1 нижеё строка index objectClass eq удаляем её. В место неё вставляем следующее:
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
Здесь же ищем строку access to attrs=userPassword,shadowLastChange и изменяем её на:
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
И последнее изменение в строчке "loglevel none":
loglevel 256
Добавим в сымый конец файла /etc/ldap/ldap.conf две строчки:
# vim /etc/ldap/ldap.conf
host 127.0.0.1
base dc=lxf,dc=su
C ldap - законченно! Рестартим его:
# /etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.
Выдержка из оригинальной документации:
==============
Да, кстати по поводу журналов в mmc. Мы так же должны добавить в файл /etc/syslog.conf следующее (Где то в середине, я думаю вы поймёте куда добавлять):
Код
local4.* /var/log/ldap.log==============
В lenny по такой метод не сработает, делаем по другому, добавляем после строчки "user.* -/var/log/user.log" в
# vim /etc/rsyslog.conf
local4.* /var/log/ldap.log
Затем создаем этот файл:
# touch /var/log/ldap.log
# chmod 0640 /var/log/ldap.log
# chgrp openldap /var/log/ldap.log
# /etc/init.d/rsyslog restart
# /etc/init.d/slapd restart
И смотрим /var/log/ldap.log, если записи о событиях появиись - все ОК.
Подписаться на:
Сообщения (Atom)