четверг, 10 июня 2010 г.

MDS Debian lenny Часть 9

MMC

Грубо говоря отделяет нас от нашей цели (MDS - кто уже забыл =) ) - последний шаг.

Настроим web интерфейс управления MMC. Создадим два виртуальных хоста, http и https. (http нужен для перенаправления на https).

Добавим следующие строки в:
#nano /etc/apache2/sites-available/http
NameVirtualHost 192.168.1.3:80
ServerName mds.kontora.lan
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


Теперь тоже и для https:
#nano /etc/apache2/sites-available/https
NameVirtualHost 192.168.0.2:443
ServerName mds.kontora.lan
ServerAdmin Administrator@kontora.lan
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.0.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:
#nano/etc/mmc/plugins/base.ini
[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=kontora, dc=lan
# 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

#nano /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=kontora, dc=lan

[userdefault]
# For Postfix delivery
mailbox = %homeDirectory%/Maildir/
# For Dovecot delivery
# mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
mailuserquota = 204800


#nano /etc/mmc/plugins/network.ini
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=kontora,dc=lan
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=kontora,dc=lan
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#

#nano /etc/mmc/plugins/samba.ini
[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=kontora, dc=lan
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.4 starting...
Using Python 2.5.2 (r252:60911, May 4 2010, 17:40:26)
Using Python Twisted 8.1.0
Running as euid = 0, egid = 0
Importing available MMC plugins
Created OU ou=System,dc=kontora,dc=lan
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=kontora,dc=lan
Created OU ou=DNS,dc=kontora,dc=lan
Created DHCP config object
The server 'mds.kontora.lan' has been set as the primary DHCP server
Plugin network loaded, API version: 2:0:0 build(743)
Created OU ou=mailDomains, dc=kontora, dc=lan
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

MMC – Знакомство с web интерфейсом.

Если всё успешно прошло, то вы можете зайти через web интерфейс к консоли управления по адресуhttps://192.168.0.2 (в моём случае). Позже когда мы настроим dns сервер, то сможем зайти по адресу http://mds.kontora.lan он перенаправит нас на https (для этого и делали редикет).
Вход в панель управления происходит через пользователя root. В моём случае Логин root пароль example.

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

Вверху жмём на ссылку переключения в режим ЭКСПЕРТА! В этом режиме доступен журнал с логами (там можно быстро смотреть ошибки), а так же доступны несколько ключевых функций (такие например как указание перемещаемых профилей у юзера и т.д. )

Сейчас необходимо настроить DNS зону, службу DHCP и добавить нового пользователя.

Настраиваем DNS Zone: В mmc переходим в «Сеть => Добавить DNS зону => и заполняем»:

FQDN DNS-зоны - kontora.lan
Описание - любое.
Имя сервера имен - mds (имя хоста вашего сервера)
IP-адрес сервера имен - 192.168.0.2 (ip адрес сервера)

Сетевой адрес - 192.168.0.0 (ваша сеть)
Маска подсети - 24 (у меня)
Also manage a reverse DNS zone - галочка
Также создать связанную DHCP-подсеть - галочка

Теперь добавим псевдоним к нашему серверу, для редикета.
Псевдоним: В mmc переходив в «Сеть => DNS зоны =>Посмотреть записи зоны (иконка лупы) => Изменить запись (иконка блокнотика) => В Hostname alias вписываем: blocked и затем Добавить, затем Подтвердить.»

Теперь настроим DHCP подсеть. Что бы юзеры получали автоматические сетевые настройки.
Настройка DHCP: В mmc переходим в «Сеть => DHCP подсети => Изменить подсеть (иконка блокнотика) => и заполняем»:

#Адрес DHCP-подсети 192.168.0.0
Маска - 24
Описание - kontora.lan
Авторитетный галочка
#DHCP options related to clients network parameters
Broadcast address - 192.168.0.255
Имя домена - kontora.lan

Маршрутизаторы - 192.168.0.1
Сервера доменных имен - 192.168.0.2 (если у вас в сети есть ещё dns сервера, можно указать ещё)
Серверы NTPNetwork - 192.168.0.2
Серверы 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.0.30 (по вашему желанию)
Конец IP-диапазона - 192.168.0.254 (по вашему желанию)


После заполнения жмём «подтвердить». Далее идём в «Сеть => Управления службами сети» и включаем там DHCP службу. (если она включена то перезапускаем её).

Далее заходим в раздел "Почта" и создаём почтовый домен (имя домена должно быть идентично samba домену.) kontora.lan

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

Включаем почтовый ящик для админа: переходим в mmc «Пользователи => Список => на против акаунта администратора щёлкаем «Изменить (иконка блокнотика)». Откроется панель редактирования профиля. В графе "Почтовый ящик" вписываем Administrator@kontora.lan, затем в самом низу нужно внести следеющие изменения: поставить галочку на «Доступность почты» и поставить на против размера квоты почтового ящика галочку «неограниченно». Далее «Подтвердить».

Добавляем первого юзера в домен:

Вообще добавить можно и в ручную. Но раз уж мы выбрали удобство управления доменом в качестве консоли mmc, то будем заводить юзеров через неё:

Идём в Пользователи=>Добавить => и заполняем - Я приведу только несколько параметры которые заполнить обязательно нужно. Остальные параметры можно и не заполнять (на ваше усмотрение):

Имя пользователя - user
Пароль - password
Подтвердите пароль - password
Имя - User
Фамилия - User
Почтовый адрес - user@kontora.lan
Доступность SAMBA галочка
Доступность почты галочка
Квота почтового ящика (kB) – 10240
Сброс почты - user

Отмечу что я не заполнял красные поля (Путь к профилю пользователя Открытие сессии скрипта Путь основного каталога Подключить основной каталог на сетевом диске Домашний каталог Создать домашнюю папку Оболочка входа в систему Общее имя Preferred name to be used) т.к. они в принципе заполнятся сами после создания юзера.

Ну вот и всё. Домен настроен и функционирует. Первый пользователь создан. Сетевые службы работают. Теперь пришло время внести какую нибудь рабочую станцию (или потестить на виртуальной машине) в наш новый домен.

Что бы завести машину в наш домен (на примере Xp SP3 pro):
• Включить на рабочей станции DHCP и получить автоматические настройки. (или можно вбить их в ручную, первичный DNS сервер обязательно должен быть ip адрес нашего домена!!!).
• Войти в свойства «Моего компьютера» и перейти на вкладку «Имя компьютера». Затем нажать кнопку «Изменить»
• В открывшемся окошечке ввести наш новый домен KONTORA (в моём случае). И нажать кнопку «Ок»
• Когда предложат ввести логин и пароль. Вводим имя и пароль от пользователя Administrator (в моём случае пароль будет
example) т.к. именно этот пользователь может регистрировать машины в домене. Жмём Ок. Должна появиться надпись «Добро пожаловать в домен KONTORA.

Теперь перезагружаемся и входим в систему от нашего первого тестового юзера. Проверяем подключилась ли личная папка пользователя (в разделе Мой Компьютер), проверяем права юзера (он не должен иметь доступ к системным настройкам, например не сможет сменить ip адрес или отключить сеть). Далее пробуем зайти на шару сервера \\PDC-KONTORA . Важно знать что профиль при первом входе в систему сохранится только после первого выхода из системы, нужно так же это проверить.

Ну вот вроде и всё.

p.s. Мануал писался по статьям http://stragaw.blogspot.com/2009/02/mandriva-directory-server-mds-vmware.html и  http://unixforum.org/index.php?s=ee4784cd1dc022f6457145d39b791e14&showtopic=84474&st=0

Удалено описане настройки прокси так как он не ставится !
Исправлены мелкие ошибки и добавлено описание правельной установки bind9

MDS Debian lenny Часть 8

BIND

Переходим к неменее важному процессу настройки Bind – dns сервера.
И тут пока еще не рещенная проблема.

Меняем точку старта 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

#nano /etc/resolv.conf
nameserver 127.0.0.1
nameserver 192.168.0.1


DHCP

Настраиваем DHCP сервер. Используем mmc конфиг dhcp сервера.

#nano /etc/dhcp3/dhcpd.conf
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=kontora, dc=lan";
ldap-password "example";
ldap-base-dn "dc=kontora, dc=lan";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";


Настройка 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/

Для принтеров HP можно установить дополнительные пакеты (если что-то не поддерживается, сходить на - http://foo2zjs.rkkda.com/):

#aptitude install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core
Настраиваем Cups для нашей локалки:

#nano /etc/cups/cupsd.conf
Заменим в этом файле:
Listen localhost:631
заменим на Listen 192.168.0.2: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.0.0/24

# Restrict access to the admin pages...

Encryption Required
Order allow,deny
Allow localhost
Allow 192.168.0.0/24

# Restrict access to configuration files...

AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Allow 192.168.0.0/24


#/etc/init.d/cups restart
Настройка сервера печати закончена. После добавления нового принтера в Cups, необходимо добавить его в самбу, что бы юзеры тоже имели доступ к нему. Добавляем командой:
#cupsaddsmb -a

Продолжение следует...

MDS Debian lenny Часть 7

Сейчас настроим дополднения к postfix - IMAP, POP3 сервер, а так же квоты. Для этого используем Devcot.

#echo "" > /etc/dovecot/dovecot.conf
#nano /etc/dovecot/dovecot.conf

protocols = imap imaps pop3 pop3s
listen = 0.0.0.0
login_greeting = kontora.lan mailserver ready.
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/certs/dovecot.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

#nano /etc/dovecot/dovecot-ldap.conf

hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=kontora,dc=lan
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



ClamAV and SpamAssassin

Настраиваем антивирус и антиспам:

#nano /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;


#nano /etc/amavis/conf.d/50-user
use strict;
$pax='pax';
1;


Добавляем clamav в группу amavis. И рестартим демоны clamav и amavis:

#adduser clamav amavis
#/etc/init.d/amavis restart
#/etc/init.d/clamav-daemon restart
#/etc/init.d/clamav-freshclam restart


Приступаем к Spamassassin.

#nano /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

#nano /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, для запуска его как демон:

#nano /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(в конце файла):

#nano /etc/crontab
0 9,19 * * * root clamdscan /home/samba/profiles
Продолжение следует...

MDS Debian lenny Часть 6

ПОЧТА

Настроим протокол SSL. Создаем конфиг:
#nano /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 = YANAO
localityName = New Urengoy
organizationName = OOO KONTORA
organizationalUnitName = IT
commonName = mds.kontora.lan
emailAddress = postmaster@kontora.lan
[ 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/

Исправим следующие строчки в:
#nano /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"


#nano /etc/saslauthd.conf
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=kontora,dc=lan
ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))

#nano /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login


Добавляем юзера postfix в группу sasl. И перезапускаем sasl:

#adduser postfix sasl
#/etc/init.d/saslauthd restart


С настройками безопасности и аутентификацией закончили. Настраиваем Postfix. Настройка базовая. Добавим только поддержку виртуальных доменов.:

Теперь отредактируем главный файл конфигурации. Он будет выглядеть примерно так:

#nano /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 = mds.kontora.lan
#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 = mds.kontora.lan,kontora.lan,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=kontora,dc=lan

#nano /etc/postfix/ldap-accounts.cf
#nano /etc/postfix/ldap-domains.cf
#nano /etc/postfix/ldap-maildrop.cf
#nano /etc/postfix/ldap-uid.cf
#nano /etc/postfix/ldap-aliases.cf
#nano /etc/postfix/ldap-gid.cf
#nano /etc/postfix/ldap-transport.cf


Последняя настройка postfix - редактируем:
#nano /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.
Продолжение следует...

MDS Debian lenny Часть 5

Создаем конфигурационные файлы для smbldap-tools:
#nano /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=kontora,dc=lan"
slavePw="example"
masterDN="cn=admin,dc=kontora,dc=lan"
masterPw="example"


В следующий файлик надо будет вставить наши данные и SID, который получили пару шагов назад:
#nano /etc/smbldap-tools/smbldap.conf
SID="S-1-2-51-6367416939-3848486559-4512677050"
sambaDomain="KONTORA"
ldapTLS="0"
suffix="dc=kontora,dc=lan"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=KONTORA,${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-KONTORA\%U"
userProfile="\\PDC-KONTORA\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="kontora.lan"
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 KONTORA (S-1-2-51-6367416939-3848486559-4512677050)
(using builtin directory structure)

entry dc=kontora,dc=lan already exist.
adding new entry: ou=Users,dc=kontora,dc=lan
adding new entry: ou=Groups,dc=kontora,dc=lan
adding new entry: ou=Computers,dc=kontora,dc=lan
adding new entry: ou=Idmap,dc=kontora,dc=lan
adding new entry: uid=Administrator,ou=Users,dc=kontora,dc=lan
adding new entry: uid=nobody,ou=Users,dc=kontora,dc=lan
adding new entry: cn=Domain Admins,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Domain Users,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Domain Guests,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Domain Computers,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Administrators,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Account Operators,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Print Operators,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Backup Operators,ou=Groups,dc=kontora,dc=lan
adding new entry: cn=Replicators,ou=Groups,dc=kontora,dc=lan
entry sambaDomainName=KONTORA,dc=kontora,dc=lan 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. После редакции необходимых нам файлов, они должны выглядеть так:
#nano /etc/pam.d/common-account
account required pam_unix.so
account sufficient pam_ldap.so


#nano /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


#nano /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

#nano /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 'KONTORA\Domain Admins' SeMachineAccountPrivilege
Enter Administrator's password:
Successfully granted rights.

На этом настройка домена закончилась. Поздравляю!
Продолжение следует...

MDS Debian lenny Часть 4

SAMBA

#/etc/init.d/samba stop
Stopping Samba daemons: nmbd smbd.

Редактируем:
#nano /etc/samba/smb.conf

[global]
workgroup = KONTORA
netbiosname = PDC-KONTORA
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=kontora,dc=lan
ldap suffix = dc=kontora,dc=lan
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, KONTORA\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=kontora,dc=lan" in secrets.tdb

Получаем SID:
#net getlocalsid KONTORA
SID for domain KONTORA is: S-1-2-51-6367416939-3848486559-4512677050

Проверим регистрацию SID в ldap:
#slapcat | grep sambaDomainName
dn: sambaDomainName=KONTORA,dc=kontora,dc=lan
sambaDomainName: KONTORA

#/etc/init.d/samba start
Starting Samba daemons: nmbd smbd.

C самбой - все!
Продолжение следует...

MDS 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) вставляем следующее:

#nano /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


Далее получаем админский пароль от LDAP в шифрованном виде. Шифруем с помощью SSHA.
#slappasswd -s example
{SSHA}u1wI00I0/oe5R+3I7g5WBu230jDMQNGX

Теперь заменим строку "# rootdn "cn=admin,dc=kontora,dc=lan"" на:
#nano /etc/ldap/slapd.conf
rootdn "cn=admin,dc=kontora,dc=lan"
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 две строчки:
#nano /etc/ldap/ldap.conf
host 127.0.0.1
base dc=kontora,dc=lan


C ldap - законченно! Рестартим его:
#/etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.

Да, кстати по поводу журналов в mmc.
#nano /etc/rsyslog.conf
добавляем после строчки "user.* -/var/log/user.log"
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, если записи о событиях появиись - все ОК.
Продолжение следует...

MDS Debian lenny Часть 2

Далее устанавливаем необходимые пакеты для запуска MDS (от списка указанного в оригинальной документации отличается следующим: unzoo - это теперь включенно в aview, libsasl2 - это теперь libsasl2-2 и bind9 будем ставить потом):

#aptitude install fontconfig hpijs-ppds linuxprinting.org-ppds make mkisofs arj spamassassin libnet-dns-perl razor pyzor slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-ppds aview amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free python-mmc-mail python-mmc-network python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2-2 libsasl2-modules mmc-web-base mmc-web-mail mmc-web-network mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base

По ходу установки нас просят:
Workgroup\Domain name - KONTORA
Modify smb.conf to use WINS settings from DHCP - No
slapd Administrator password: example
LDAP server Uniform Resource Identifier: ldap://127.0.0.1/
Distinguished name of the search base: dc=kontora,dc=lan
LDAP version to use: 3
LDAP account for root: cn=admin,dc=contora,dc=lan
LDAP root account password: example
Make local root Database admin: Yes
Does the LDAP database require login? - No
LDAP account for root: cn=admin,dc=kontora,dc=lan
При установке postfix - Internet site, name - mds.kontora.lan (еще попутно будет удален exim4)
Теперь ставим правильный bind9 :
комментируем все репозитории кроме
deb http://mds.mandriva.org/pub/mds/debian lenny main

#aptitude update
#aptitude install bind9


Теперь устанавливаем dovecot :
#aptitude install -t lenny-backports dovecot-common dovecot-imapd dovecot-pop3d

dcc-client так и не появился в репозиториях Debian, бирем из Ubuntu:
#cd /tmp
#wget -c http://www.ftp.uni-erlangen.de/pub/mirrors/ubuntu/pool/universe/d/dcc/dcc-client_1.2.74-2_i386.deb
#wget -c http://ftp.oleane.net/pub/ubuntu/pool/universe/d/dcc/dcc-common_1.2.74-2_i386.deb


Устанавливаем их:
#dpkg -i dcc-client_1.2.74-2_i386.deb dcc-common_1.2.74-2_i386.deb
Продолжение следует...

MDS Debian lenny Часть 1

При установке выбираем ручную конфигурацию сети:
IP - 192.168.0.2
Netmask - 255.255.255.0
Gateway - 192.168.0.1
Name Server Addresses - 192.168.0.1
Hostname - mds
Domain name - kontora.lan

Первым делом ставим:
#aptitude install ssh mc

#aptitude update && aptitude upgrade

Проверяем настроки в hosts, hostname, interfaces, resolv.conf:
#cat /etc/hosts
===========
127.0.0.1 localhost
192.168.0.2 mds.kontora.lan mds

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
===========

#cat /etc/hostname
mds.kontora.lan

#cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.253

#cat /etc/resolv.conf
nameserver 192.168.0.1

#reboot


Проверяем:
#hostname
mds.kontora.lan


Добавляем репозитории:
#nano /etc/apt/sources.list
deb http://mds.mandriva.org/pub/mds/debian lenny main
deb http://www.backports.org/debian lenny-backports main

#aptitude update

Reading package lists... Done
W: GPG error: http://www.backports.org lenny-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8E8B2116BA136C
W: You may want to run apt-get update to correct these problems
Это можно проигнорировать, а можно )
#apt-get install debian-backports-keyring

Далее включаем поддержку ACL:
#nano /etc/fstab
/dev/sda1 / ext3 acl,errors=remount-ro 0 1

(или того раздела где у вас будут храниться шары самбы)

#mount -o remount /

Проверяем:
#mount -l
/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)


Устанавливаем NTP-сервер:
#aptitude install ntp

Продолжение следует...

Настройка Ippon на debian lenny

Установка:
#aptitude install nut nut-cgi

Выбор дравера:
#cat /usr/share/nut/driver.list

у меня это megatec

Копируем conf файлы:
#cp /usr/share/doc/nut-cgi/examples/upsset.conf.sample /etc/nut/upsset.conf
#cp /usr/share/doc/nut-cgi/examples/upsstats.html.sample /etc/nut/upsstats.html
#cp /usr/share/doc/nut-cgi/examples/upsstats-single.html.sample /etc/nut/upsstats-single.html
#cp /usr/share/doc/nut-cgi/examples/hosts.conf.sample /etc/nut/hosts.conf
#cp /usr/share/doc/nut/examples/ups.conf.sample /etc/nut/ups.conf
#cp /usr/share/doc/nut/examples/upsd.conf.sample /etc/nut/upsd.conf
#cp /usr/share/doc/nut/examples/upsd.users.sample /etc/nut/upsd.users
#cp /usr/share/doc/nut/examples/upsmon.conf.sample /etc/nut/upsmon.conf


Настраиваем:
#nano /etc/nut/ups.conf
[ippon]
driver = megatec
port = /dev/ttyS0
#dev/ttyS0 – это порт COM1, а /dev/ttyS1 – COM2.



#nano /etc/nut/upsd.conf
ACL all 0.0.0.0/0
ACL localnet 192.168.0.0/24
ACL localhost 127.0.0.1/32
ACCEPT localhost localnet
REJECT all
LISTEN 0.0.0.0 3493


#nano /etc/nut/upsd.users
[monuser]
password = password
allowfrom = localhost
allowfrom = all
upsmon master
instcmds = ALL
actions = SET MONITOR
MONITOR ippon@localhost 1 monuser password master


#nano /etc/nut/upsmon.conf
MONITOR ippon@localhost 1 monuser qwsxcZC master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"


#nano /etc/nut/upsset.conf
I_HAVE_SECURED_MY_CGI_DIRECTORY


#nano /etc/nut/hosts.conf
MONITOR ippon@localhost "Ippon PowerPro 1000"


#nano /etc/default/nut
меняем:
START_UPSD=no
START_UPSMON=no


на:
START_UPSD=yes
START_UPSMON=yes


#shutdown -r now

Проверяем:
#upsc ippon@localhost

если все в порядке выдет инфа по UPS

Заходим http://ваш серв/nut/

вот и все !

p.s. Кстати nut поддерживает много бесперебойников )