Gentoo Linux сборник статей



Pdf просмотр
страница54/79
Дата14.11.2016
Размер5.55 Mb.
Просмотров11591
Скачиваний1
1   ...   50   51   52   53   54   55   56   57   ...   79
Удаление пользователя
smbldap-userdel [-r|-R|-?] username
Где:
-r удалить домашний каталог
-R удалить домашний каталог с запросом на удаление каждого файла
-? отобразить помощь
Например команда: smbldap-userdel -r slad-adm удалит пользователя slad-adm, и его домашний каталог.
638

Руководство по настройке Samba в режиме PDC с использованием LDAP
Управление пользователями в оффтопике
Если вы вводите в домен компьютеры под управлением Windows, то вам пригодятся пара утилит, архив которых можно скачать отсюда: ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE
Источники

http://us4.samba.org/samba/docs/man/Samba-Guide/happy.html

http://www.opennet.ru/base/net/ldap_spama_pdc.txt.html
639

Создание виртуальной почтовой системы
Создание виртуальной почтовой системы
Ссылка на оригинал:
http://www.gentoo.org/doc/ru/virt-mail-howto.xml
C версии: 1.0
1. Введение
Для большинства пользователей gentoo простого почтового клиента и fetchmail
(для сбора почты) достаточно. Однако, если вы размещаете на своей системе домен, вам необходим полноценный MTA (Mail Transfer Agent). И если вы размещаете на своей системе несколько доменов, тогда вам точно необходимо что-то мощное для обработки всей почты ваших пользователей. Эта система была разработана для элегантного решения этой проблемы.
Виртуальная почтовая система должна быть способна обработать почту от многочисленных доменов с множеством пользователей через разнообразные интерфейсы. С этим связано несколько проблем, которые надо решить. Для примера, что если вы имеете двух пользователей в разных доменах, которые хотят иметь одинаковые имена? Если вы предоставляете сервисы imap и smtp- авторизации, как вы комбинируете различные демоны авторизации в одной системе? Как обеспечиваете безопасность многочисленных компонентов которая содержит система? Как вы управляете этим всем?
Это howto покажет вам, как настроить гибкую систему обработки почты из стольких доменов, сколько ваша поддерживает система, как создавать виртуальных пользователей не требующих наличия аккаунта в системе, иметь доменные имена пользователей, как авторизовать пользователей через веб, imap, smtp и pop3 снова таки из одной базы данных, использовать ssl-транспорт для безопасности, как обрабатывать списки рассылки для любого домена на машине, и контролировать все хорошей и простой базой данных mysql.
Конечно существует множество путей настройки виртуальной почтовой системы.
Другой способ возможно окажется более подходящим вашим нуждам.
Дополнительную информацию вы можете найти на http://www.qmail.org/ и http://www.exim.org/
Мы будем использовать следующие программы: apache, courier-imap, pam_mysql, postfix, mod_php, phpmyadmin, squirrelmail, cyrus-sasl, mysql, php, и mailman.
Убедитесь что вы добавили в файле /etc/make.conf в переменную USE следующие пакеты: USE="mysql imap libwww maildir sasl ssl". Иначе, возможно, вам придeтся перекомпилировать пакеты, для поддержки всех необходимых протоколов. Затем, хорошей идеей будет отключить любые другие почтовые и сетевые программы которые вам не нужны, вроде IPv6.
Важно: Это howto написано для postfix-2.0.x. Если вы используете postfix версии <
2 некоторые переменные используемые в этом документе могут отличается. В таком случае рекомендуется обновить postfix. Некоторые пакеты используемые в
640

Создание виртуальной почтовой системы этом документе зависят от версии. Вы поступите мудро, если прочтете документацию поставляемую с пакетами, при возникновении вопросов.
Важно: В нашем документе мы будем использовать apache-1.3.x. В портежах
Apache-2 был помечен stable, но как бы то ни было существуют еще некоторые проблемы интеграции с php. Пока php-поддержка в apache-2.0.x не будет отмечена stable, в этом документе будем продолжать использовать apache-1.3.x.
Важно: Вам необходимо доменное имя для работы общедоступного почтового сервера, или по крайней мере иметь МХ-записи для домена. В идеале вы должны иметь контроль над двумя доменами, для извлечения пользы из функциональности новой виртуальной системы.
Важно: Убедитесь что в /etc/hostname указано правильное имя сервера, также убедитесь что в /etc/hosts нет конфликтных значений.
Примечание: Рекомендуется прочесть документ полностью и ознакомится со всеми шагами настройки, перед тем как начинать инсталляцию. Если вы столкнетесь с проблемами при любом из шагов, проверьте troubleshooting guide в конце этого документа. Также не все упомянутые пакеты необходимы, просто настройка, описанная здесь, достаточна гибка. Для примера, если вам не требуется веб-интерфейса, вы свободны пропустить соответствующий раздел squirrelmail.
2. Начальная настройка postfix
Листинг 2.1: Инсталляция postfix
# emerge postfix
Предупреждение: Проверьте чтобы у вас не были проинсталлированы любые другие MTA, например ssmtp, exim или qmail, иначе у вас могут быть БОЛЬШИЕ проблемы.
После инсталляции postfix, время его настроить. Измените следующие настройки в /etc/postfix/main.cf:
Листинг 2.2: /etc/postfix/main.cf myhostname = $host.domain.name mydomain = $domain.name inet_interfaces = all mydestination = $myhostname, localhost.$mydomain $mydomain mynetworks = my.ip.net.work/24, 127.0.0.0/8
home_mailbox = .maildir/
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10 641

Создание виртуальной почтовой системы
Следующие изменения следуют для /etc/postfix/master.cf. Они включат режим подробного протоколирования для отладки:
Листинг 2.3: /etc/postfix/master.cf
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (50)
#
==========================================================================
smtp inet n - n - - smtpd -v
(просто добавьте -v после smtpd)
Дальше правим /etc/mail/aliases для добавления локальных псевдонимов. По крайне туда должен быть включен псевдоним для root типа: root: your@email.address.
Листинг 2.4: Запуск postfix'а в первый раз
# /usr/bin/newaliases
(это создаст новые псевдонимы. Это требуется делать)
(когда вы создаете или обновляете файл псевдонимов.)
# /etc/init.d/postfix start
Теперь postfix запущен, запустите вашего любимого консольного почтового клиента и пошлите самому себе письмо. Я использую mutt для всей переписки из консоли.
Примечание: Настоятельно рекомендуется проверить, чтобы postfix доставлял почту локальным пользователям, перед тем как перейти к следующему шагу.
3. Courier-imap
Листинг 3.1: Инсталляция courier-imap
# emerge courier-imap
Листинг 3.2: Настройка courier-imap
# cd /etc/courier-imap
(если вы хотите использовать возможности ssl в courier-imap или pop3, )
(вам необходимо создать сертификаты)
(если вы не хотите использовать ssl, просто пропустите следующий шаг )
# nano -w pop3d.cnf
# nano -w imapd.cnf
(измените значения C, ST, L, CN и адреса e-mail)
# mkpop3dcert
# mkimapdcert
Листинг 3.3: Запуск нужных вам сервисов courier
642

Создание виртуальной почтовой системы
# /etc/init.d/courier-imapd start
# /etc/init.d/courier-imapd-ssl start
# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-pop3d-ssl start
Снова запустите ваш любимый почтовый клиент и проверьте что сервисы начали принимать и посылать почту. Теперь когда основная часть заработала, перейдем к связыванию всех компонентов, для получения спокойно работающей системы.
Снова, проверьте, что все что мы сделали работает, перед тем как переходить к следующему шагу.
4. Cyrus-sasl
Следующим шагом будет инсталляция cyrus-sasl. Sasl на самом деле играет роль передатчика авторизационных переменных к pam (Pluggable Authentication
Modules), который передаст эту информацию mysql, для авторизации smtp пользователей. Мы не будем проверять работоспособность sasl, пока не настроим mysql, и не создадим тестовых пользователей. В конечном результате, он будет авторизовать пользователей в mysql.
Примечание: По некоторым причинам, sasl плохо работает с pam используя shadow. Для меня долгое время это была большая проблема. Если кто-нибудь знает почему sasl не авторизирует пользователей из /etc/shadow в текущем релизе gentoo, пожалуйста напишите мне об этом, я буду очень рад услышать решение этой проблемы. E-mail.
Листинг 4.1: Инсталляция и настройка cyrus-sasl
# USE='-ldap -mysql' emerge cyrus-sasl
(мы не используем ldap и мы не используем возможности sasl-mysql,
поэтому мы отключаем их )
Дальше правим /usr/lib/sasl2/smtp.conf.
Листинг 4.2: Запуск sasl
# nano -w /usr/lib/sasl2/smtp.conf
pwcheck_method: saslauthd mech_list: LOGIN PLAIN
(важно выключить метод авторизации который мы не используем.
Они могут привести к граблям на некоторых почтовых клиентах)
# /etc/init.d/saslauthd start
5. SSL-сертификаты для Postfix и Apache
Дальше делаем ssl-сертификаты для posfix и apache.
Листинг 5.1:
643

Создание виртуальной почтовой системы
# cd /etc/ssl/
# nano -w openssl.cnf
(измените следующие значения для вашего домена:)
countryName_default stateOrProvinceName_default localityName_default
0.organizationName_default commonName_default emailAddress_default.
(если каких-то переменных нет, просто добавьте их в любое удобное место)
# cd misc
# nano -w CA.pl
(нам необходимо добавить -nodes в код строк "# create a certificate" и "# create a certificate request" таким образом чтобы наши новые ssl-сертификаты загрузились без пароля. Иначе после перезагрузки системы ssl-сертификаты будут не доступны )
(найдите эти строки в файле и измените их:)
# create a certificate
system ("$REQ -new -nodes -x509 -keyout newreq.pem -out newreq.pem $DAYS");
# create a certificate request
system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS");
(далее создаем сертификат для postfix)
# ./CA.pl -newca
# ./CA.pl -newreq
# ./CA.pl -sign
# cp newcert.pem /etc/postfix
# cp newreq.pem /etc/postfix
# cp demoCA/cacert.pem /etc/postfix
(а теперь такой же для apache)
# openssl req -new > new.cert.csr
# openssl rsa -in privkey.pem -out new.cert.key
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365
(оставьте получившиеся сертификаты, мы их проинсталлируем когда будем настраивать apache )
6. Добавим SSL и SASL поддержку в Postfix
Теперь поправим конфигурацию postfix чтобы включить совместимость с sasl и ssl.
Добавьте следующие параметры в конец файла, где их легко потом можно будет найти.
Листинг 6.1: /etc/postfix/main.cf
# nano -w /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes smtpd_sasl2_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_local_domain =
644

Создание виртуальной почтовой системы
(опция broken_sasl_auth_clients и метод авторизации используется только для outlook и outlook express, они не документированы. Опция smtpd_sasl_local_domain добавляет имя домена для клиентов использующих smtp-авторизацию. Убедитесь что postfix отвергает пустое или просто имя пользователя, и они не могут авторизоваться )
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination smtpd_use_tls = yes
#smtpd_tls_auth_only = yes smtpd_tls_key_file = /etc/postfix/newreq.pem smtpd_tls_cert_file = /etc/postfix/newcert.pem smtpd_tls_CAfile = /etc/postfix/cacert.pem smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
(опция smtpd_tls_auth_only закомментирована для простоты тестирования,
вы можете включить ее позже, если захотите)
# postfix reload
Теперь мы попробуем проверить работоспособность postfix'а, и то что он прочел файлы конфигурации.
Листинг 6.2: Проверка поддержки sasl и tls
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.domain.com ESMTP Postfix
EHLO domain.com
250-mail.domain.com
250-PIPELINING
250-SIZE 10240000 250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-XVERP
250 8BITMIME
^]
telnet> quit
Проверьте, что ответ postfix'а содержит линии AUTH и STARTTLS. Как уже замечалось выше, AUTH пока не будет работать, потому что sasl пытается авторизовать из sasldb, вместо shadow по неизвестным причинам. Итак мы просто пропускаем это и дальше настраиваем mysql для принятия нашей авторизации и
645

Создание виртуальной почтовой системы информации о виртуальных доменах.
7. MySQL
Для инсталляции mysql нам необходим dump-файл genericmailsql.sql genericmailsql.sql
Листинг 7.1: Инсталляция и настройка MySQL
# emerge mysql
# /usr/bin/mysql_install_db
(далее следуйте указаниям на экране, для добавления пароля root в mysql, не mysqladmin, иначе ваша база будет открыта всем ветрам )
# /etc/init.d/mysql start
# mysqladmin -u root -p create mailsql
# mysql -u root -p mailsql < genericmailsql.sql
# mysql -u root -p mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE
-> ON mailsql.*
-> TO mailsql@localhost
-> IDENTIFIED BY '$password';
-> quit
(проверьте, что новый mailsql пользователь, может подключатся к mysql серверу )
# mysql -u mailsql -p mailsql
Ваша новая база имеет значения по умолчанию и таблицы для двух доменов.
Вложены следующие таблицы:

alias — локальные e-mail и информация о псевдонимах для mailman

relocated — информация о адресах перемещенных пользователях

transport — информация о почтовых транспортах для всех доменов размещающихся у вас

users — информация о всех пользователях

virtual — информация о псевдонимах для виртуальных доменов
Листинг 7.2: пример таблицы псевдонимов id alias destination
1 root foo@bar.com
2 postmaster foo@bar.com
Листинг 7.3: пример таблицы пользователей
(приведем для ясности строку)
id email clear name uid gid homedir \
maildir quota postfix
10 foo@virt-bar.org $password realname virtid virtid /home/vmail \
/home/vmail/virt-bar.org/foo/.maildir/ y
13 foo@bar.com $password realname localid localid /home/foo \
/home/foo/.maildir/ y
646

Создание виртуальной почтовой системы
Листинг 7.4: пример таблицы транспортов id domain destination
1 bar.com local:
2 virt-bar.org virtual:
Листинг 7.5: пример таблицы псевдонимов для виртуальных доменов id email destination
3 root@virt-bar.org other@email.address
8. Apache и phpMyAdmin
Итак, следующим шагом мы настроим apache и создадим интерфейс для еще более простого взаимодействия с базой данных.
Листинг 8.1: Настройка apache и phpmyadmin
# emerge apache mod_php phpmyadmin
Существует множество руководств по настройке apache с поддержкой php.
Например, http://www.linuxguruz.org/z.php?id=31. Также многочисленные сообщения на http://forums.gentoo.org где рассматриваются решения проблем возникших в ходе инсталляции (поиск по "apache php"). Итак, я не стараюсь раскрыть эту тему здесь. Настройте apache и php, затем продолжим вместе настройку. Теперь слово для умных: .htaccess положите в директорию к phpmyadmin. Если вы не сделаете этого, поисковые системы проиндексируют страницы phpmyadmin и каждый сможет получить к нему доступ с помощью google, и изменить ваши базы, что не есть хорошо. Существует много howto как это сделать. http://docs.csoft.net/micro/black-htaccess.html.
Теперь мы переходим к инсталляции сертификатов для apache, созданных нами ранее. Директивы apache которые вам требуется изменить для этого:
SSLCertificateFile /path/to/certs/new.cert.cert
SSLCertificateKeyFile /path/to/certs/new.cert.key
Листинг 8.2: Инсталляция Apache SSL сертификатов
# cp /etc/ssl/misc/new.cert.cert /etc/apache/conf/ssl/
# cp /etc/ssl/misc/new.cert.key /etc/apache/conf/ssl/
# nano -w /etc/apache/conf/vhosts/ssl.default-vhost.conf
(измените следующие параметры)
ServerName host.domain.name
ServerAdmin your@email.address
SSLCertificateFile /etc/apache/conf/ssl/new.cert.cert
SSLCertificateKeyFile /etc/apache/conf/ssl/new.cert.key
# /etc/init.d/apache restart
Примечание: Если у вас apache уже проинсталлирован, вам вероятно придется сделать перезагрузку сервера. Проверьте логи системы на предмет корректного
647

Создание виртуальной почтовой системы запуска apache.
Дальше настраиваем phpMyAdmin.
Листинг 8.3: Настройка phpMyAdmin
# nano -w /home/httpd/htdocs/phpmyadmin/config.inc.php
(измените следующие параметры)
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname
$cfg['Servers'][$i]['controluser'] = 'mailsql'; // MySQL настройки системного аккаунта
// (этот аккаунт должен иметь read-only
$cfg['Servers'][$i]['controlpass'] = '$password'; // доступ к таблицам "mysql/user"
// и "mysql/db" tables)
$cfg['Servers'][$i]['user'] = 'mailsql'; // MySQL пользователь
$cfg['Servers'][$i]['password'] = '$password'; // MySQL пароль
Теперь введите адрес phpmyadmin страницы и просмотрите ваши таблицы в базе.
Вы можете добавить локальные псевдонимы, поправить таблицу пользователей и добавить тестового пользователя, изменить таблицу транспортов для добавления информации о ваших доменах. Значений по умолчанию которые устанавливаются вместе с dump-файлом должно быть достаточно для примера, чтобы помочь вам настроить систему. Убедитесь что ввели в базу корректную информацию. Для примера, убедитесь что директории локальных пользователей существуют и указаны корректные uid/gid. Почтовые директории пользователей, должны быть созданы postfix, при первой принятой почте для пользователя. Будет неплохо, если вы пошлете "Добро пожаловать!", чтобы убедится, что .maildir создан.
9. Vmail-пользователь
Здесь вы можете быть удивлены, узнав, что для виртуальных акаунтов, используются пользователи и директории, и будете правы.
Листинг 9.1: Adding the vmail user
# adduser -d /home/vmail -s /bin/false vmail
# uid=`cat /etc/passwd | grep vmail | cut -f 3 -d :`
# groupadd -g $uid vmail
# mkdir /home/vmail
# chown vmail. /home/vmail
Теперь, когда вы настраиваете виртуальный акаунт, используйте vmail uid, gid , и его домашнюю папку. Когда вы создаете локальный акаунт, используйте uid, gid и домашнюю папку нового пользователя, а не vmail. Мы имеем ввиду, что если вы захотите создать php-страничку для администрирования пользователей, не забывайте, что phpmyadmin в целом справляется с этой работой очень неплохо.
648

Создание виртуальной почтовой системы
10. Настройка MySQL авторизации и виртуальных
доменов
Дальше мы перенастроим нашу авторизацию, на использование mailsql базы в courier-imap и postfix. Во всех следующих примерах, замените $paasword паролем, который вы задали пользователю mailsql для mysql.
Листинг 10.1:
# emerge /usr/portage/sys-libs/pam_mysql/pam_mysql-$currentversion.ebuild
(этот пакет здесь задан маской, которую вы должны заменить на текущую версию пакета. версию пакета вы можете посмотреть в portage )
# nano -w /etc/pam.d/imap
(закомментируйте существующие строки настройки авторизации, и добавьте указанные ниже)
#auth required pam_nologin.so
#auth required pam_stack.so service=system-auth
#account required pam_stack.so service=system-auth
#session required pam_stack.so service=system-auth auth optional pam_mysql.so host=localhost db=mailsql user=mailsql \
passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0
account required pam_mysql.so host=localhost db=mailsql user=mailsql \
passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0
# nano -w /etc/pam.d/pop3
# nano -w /etc/pam.d/smtp
(сделайте такие же изменения в pop3 и smtp файлах)
Далее нам нужно поправить конфигурацию авторизации courier.
Листинг 10.2:
# nano -w /etc/courier-imap/authdaemonrc
authmodulelist="authmysql authpam"
# nano -w /etc/courier-imap/authdaemond.conf
AUTHDAEMOND="authdaemond.mysql"
# nano -w /etc/courier-imap/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME mailsql
MYSQL_PASSWORD $password
MYSQL_DATABASE mailsql
MYSQL_USER_TABLE users
#MYSQL_CRYPT_PWFIELD crypt (эта строка должна быть закомментирована)
MYSQL_CLEAR_PWFIELD clear
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
# /etc/init.d/authdaemond restart
649

Создание виртуальной почтовой системы
# /etc/init.d/saslauthd restart
Мы уже почти подошли к тому что вам обещал. Далее мы настроим необходимые конфиги postfix'a для связки с базой данных для всех необходимых необходимых транспортов.
Листинг 10.3: /etc/postfix/mysql-aliases.cf
# nano -w /etc/postfix/mysql-aliases.cf
# mysql-aliases.cf
user = mailsql password = $password dbname = mailsql table = alias select_field = destination where_field = alias hosts = unix:/var/run/mysqld/mysqld.sock
Листинг 10.4: /etc/postfix/mysql-relocated.cf
# nano -w /etc/postfix/mysql-relocated.cf
# mysql-relocated.cf
user = mailsql password = $password dbname = mailsql table = relocated select_field = destination where_field = email hosts = unix:/var/run/mysqld/mysqld.sock
Листинг 10.5: /etc/postfix/mysql-transport.cf (необязательно)
# nano -w /etc/postfix/mysql-transport.cf
# mysql-transport.cf
user = mailsql password = $password dbname = mailsql table = transport select_field = destination where_field = domain hosts = unix:/var/run/mysqld/mysqld.sock
Листинг 10.6: /etc/postfix/mysql-virtual-gid.cf (необязательно)
# nano -w /etc/postfix/mysql-virtual-gid.cf
#myql-virtual-gid.cf
user = mailsql password = $password dbname = mailsql table = users select_field = gid where_field = email additional_conditions = and postfix = 'y'
hosts = unix:/var/run/mysqld/mysqld.sock
650

Создание виртуальной почтовой системы
Листинг 10.7: /etc/postfix/mysql-virtual-maps.cf
#nano -w /etc/postfix/mysql-virtual-maps.cf
#myql-virtual-maps.cf
user = mailsql password = $password dbname = mailsql table = users select_field = maildir where_field = email additional_conditions = and postfix = 'y'
hosts = unix:/var/run/mysqld/mysqld.sock
Листинг 10.8: /etc/postfix/mysql-virtual-uid.cf (необязательно)
# nano -w /etc/postfix/mysql-virtual-uid.cf
# mysql-virtual-uid.cf
user = mailsql password = $password dbname = mailsql table = users select_field = uid where_field = email additional_conditions = and postfix = 'y'
hosts = unix:/var/run/mysqld/mysqld.sock



Поделитесь с Вашими друзьями:
1   ...   50   51   52   53   54   55   56   57   ...   79


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал