Версия 1.0, 27 декември 2007
Веселин Колев, Софийски Университет "Св. Климент Охридски"
Адрес за кореспонденция: vesso AT vesselin.org
Първоизточник: http://www.vesselin.org
Лиценз на документа: CC Attribution-ShareAlike
/etc/mail/sendmail.mc
и LDAP интеграция
Управлението на Sendmail в ролята му на MTA (Mail Transport Agent) се извършва централизирано с помощта на свързването на демона sendmail към LDAP директорийна услуга.
Целта на този документ е да опише интеграцията на пощенските концентратори на Софийския Университет "Св. Климент Охридски" с LDAP директорията, в която са въведени параметрите на мрежовите услуги. Дадени са подробни описания на LDIF шаблоните, с които се извършва създаване, промяна и премахване на записи от LDAP директорията.
Всички описания по-долу са в контекста на използваната дистрибуция Red Hat Enterprise Linux (или нейните производни).
За реализирането (инсталиране и конфигуриране) на пощенския концентратор в дистрибуцията Red Hat Enterprise Linux и производните й, са необходими два пакета: sendmail и sendmail-cf. Без пакетът sendmail-cf не е възможна последващата конфигурация на демона sendmail с използването на m4 интерпретация на макросния прототип на конфигурацията.
По подразбиране при инсталацията на дистрибуцията Red Hat Enterprise Linux или производните й, пакетът sendmail се инсталира по подразбиране, но това не касае пакета sendmail-cf. Последният трябва да бъде инсталиран допълнително. Най-добре е да се иницира процес на инсталиране и на двата пакета, а пакетния мениджър ще инсталира само тези, които не са инсталирани вече в системата:
# yum install sendmail sendmail-cf
Тази стъпка е абсолютно задължителна с оглед гарантиране сигурността на системата срещу пробиви, които могат да бъдат причинени, ако процесите на sendmail се изпълняват с ефективните права на root. След като потребителят sendmail бъде създаден в системата, процесите на демона sendmail се стартират с правата на този потребител. По-точно е да се каже, че майчиният процес, който слуша на порт 25/tcp се изпълнява с ефективните права на root винаги, но при всяка нова сесия към този порт, майчиния процес създава дъщерен, който поема обслужването на сесията и именно дъщерния процес е с ефективни права на непривилигерования потребител sendmail.
Създаването на непривилигерования потребител sendmail следва следните стъпки (командни редове), които трябва да се изпълнят с права на root:
# useradd -g mail -s /sbin/nologin -d /dev/null -c "Sendmail Daemon User" sendmail
Забележка: В горния команден ред не е указан уникален номер на потребителя в системата и в този случай инструментът useradd
ще избере първия незает числов идентификатор. Ако се налага да се спазва номерационен план в конкретната система и за потребителя sendmail е назначен определен числов идентификатор, стойността му трябва да се укаже с опцията -u
. Например, ако за sendmail е заделен потребителски числов идентификатор 600, създаването на потребителя става чрез командния ред:
# useradd -u 600 -g mail -s /sbin/nologin -d /dev/null -c "Sendmail Daemon User" sendmail
При инсталация на пакета sendmail от RPM колекцията на дистрибуцията, "опашката" на демона sendmail се намира в директория /var/spool/mqueue
. Собствеността върху нея е на root. Ако дъщерните процеси на демона се стартират с правата на непривилигерования потребител sendmail, а собствеността върху директорията е на root, то процесите няма да могат да извършват запис и четене в нея и услугата няма да функционира. Дори върху тази директория да бъдат зададени права за писане и четене от страна на непривилигерования потребител sendmail, то при актуализация на пакета sendmail собствеността на root върху /var/spool/mqueue
отново ще бъде възстановена и това ще върне системата в начално състояние, в което процесите на демона не могат да четат и пишат в директорията и услуга няма да има.
За да се предотврати появата на подобен проблем, се използва една от възможностите на Sendmail за конфигурация, а именно да се укаже друга, различна от /var/spool/mqueue
директория за "опашка". Преди да бъде направена конфигурационната опция, трябва да се създаде новата "опашка" и да се зададат съответните права и собственост върху нея:
# mkdir -p /storage/sendmail/var/spool/mail
# chmod 700 /storage/sendmail/var/spool/mail
# chown -R sendmail:mail /storage/sendmail/var/spool/mqueue
Забележка: Указаната директория е примерна. Нейното местоположение може да бъде променяно, като се отчитат особеностите на конкретната система, но това задължително трябва да бъде отчетено в конфигурационния файл на sendmail.
Макар и да не е задължително, е добре да се има поглед върху обема поща, която процесите на демона sendmail транслират (информация, която се показва с изпълнението на mailstats
). По подразбиране тази информация се съхранява във файла /var/log/mail/statistics
. За да не се влиза в конфликт със собствеността върху директорията /var/log/mail
, е добре да се създаде алтернативна директория, в която да се съхранява файла със статистките. За целта се използва факта, че пълният път до файла със статистиките е конфигурационна опция за sendmail.
Създаването на директорията за статистиките следва схемата:
# mkdir /storage/sendmail/var/log/mail
# chmod 700 /storage/sendmail/var/log/mail
# touch /storage/sendmail/var/log/mail/statistics
# chown -R sendmail:mail /storage/sendmail/var/log/mail
Ако вече има наличен файл със статистики (например подразбиращия се /var/log/mail/statistics
), информацията за които не трябва да се губи, преди да се стартира sendmail за работа по новата схема на привилегии файла може да се копира в /storage/sendmail/var/log/mail/
и да не се създава нов такъв с командата touch
(както е описано в командните редове по-горе).
Четенето на информация от LDAP директорията става само и единствено чрез удостоверяване пред услугата LDAP. Удостоверяването е базирано на подаване на информация за dn на потребителя и парола му към директорийния LDAP сървър. Паролата трябва да се съхранява във файл, достъпен за прочит само от страна на непривилигерования потребител sendmail.
В пощенските концентратори на СУ, файлът с паролата за удостоверяването пред директорийния LDAP сървър е:
/storage/sendmail/etc/mail/sendmail-ldap.passwd
Създаването на файла и установяването върху него на правата за четене и собственост, се извършват начин:
# touch /storage/sendmail/etc/mail/sendmail-ldap.passwd
# chmod 400 /storage/sendmail/etc/mail/sendmail-ldap.passwd
# chown sendmail:mail /storage/sendmail/etc/mail/sendmail-ldap.passwd
Забележка: Чак след като файлът бъде създаден и правата за достъп и собственост върху него бъдат установени, в него се описва паролата (във файла трябва да има един единствен ред и той да съдържа само и единствено символния низ с паролата).
/etc/mail/sendmail.mc
и LDAP интеграция.Описаната по-долу конфигурация покрива нуждите от конфигурационни опции на концентраторите за електронна поща ns.uni-sofia.bg и ady.uni-sofia.bg, но с малки модификации би могла да се използва и на произволен друг концентратор.
Текущият конфигурационен файл за пощенските концентратори на Софийския Университет изглежда така:
конфигурационен файл /etc/mail/sendmail.mc
за пощенския концентратор ns.uni-sofia.bg:
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for Red Hat Enterprise Linux')dnl
OSTYPE(`linux')dnl
define(`confSMTP_LOGIN_MSG', `ns.uni-sofia.bg Sendmail $Z/$v; RHEL4 (ES) $b')
define(`confDEF_USER_ID',``600:12'')dnl
define(`confMAX_MESSAGE_SIZE', `29360128')dnl
define(`confTRUSTED_USER', `sendmail')dnl
define(`confRUN_AS_USER', `sendmail')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`ALIAS_FILE', `ldap:')dnl
define(`STATUS_FILE', `/storage/sendmail/var/log/mail/statistics')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`QUEUE_DIR',`/storage/sendmail/var/spool/mqueue')dnl
define(`confLDAP_DEFAULT_SPEC', `-h localhost -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -d "cn=ns.uni-sofia.bg,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -M simple -P /storage/sendmail/etc/mail/sendmail-ldap.passwd')dnl
define(`confLDAP_CLUSTER', `UniSofiaMTAServer')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`mailertable',`LDAP')dnl
FEATURE(`virtusertable',`LDAP')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(`access_db', `LDAP')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
FEATURE(`relay_hosts_only')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`dnsbl',`dnsbl.njabl.org',`"550 Your IP address are listed in dnsbl.njabl.org"')dnl
FEATURE(`dnsbl',`dnsbl.uni-sofia.bg',`"550 Your IP address "$&{client_addr}" are listed in dnsbl.uni-sofia.bg"')dnl
FEATURE(`dnsbl',`dnsbl.sorbs.net',`"554 Rejected " $&{client_addr} " found in dnsbl.sorbs.net"')dnl
FEATURE(`enhdnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}', `t')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=62.44.96.1, Name=MTA')dnl
MAILER(smtp)dnl
конфигурационен файл /etc/mail/sendmail.mc
за пощенския концентратор ady.uni-sofia.bg:
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for Red Hat Enterprise Linux')dnl
OSTYPE(`linux')dnl
define(`confSMTP_LOGIN_MSG', `ady.uni-sofia.bg Sendmail $Z/$v; RHEL4 (ES) $b')
define(`confDEF_USER_ID',``600:12'')dnl
define(`confMAX_MESSAGE_SIZE', `29360128')dnl
define(`confTRUSTED_USER', `sendmail')dnl
define(`confRUN_AS_USER', `sendmail')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`ALIAS_FILE', `ldap:')dnl
define(`STATUS_FILE', `/storage/sendmail/var/log/mail/statistics')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`QUEUE_DIR',`/storage/sendmail/var/spool/mqueue')dnl
define(`confLDAP_DEFAULT_SPEC', `-h localhost -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -d "cn=ady.uni-sofia.bg,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -M simple -P /storage/sendmail/etc/mail/sendmail-ldap.passwd')dnl
define(`confLDAP_CLUSTER', `UniSofiaMTAServer')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`mailertable',`LDAP')dnl
FEATURE(`virtusertable',`LDAP')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(`access_db', `LDAP')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
FEATURE(`relay_hosts_only')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`dnsbl',`dnsbl.njabl.org',`"550 Your IP address are listed in dnsbl.njabl.org"')dnl
FEATURE(`dnsbl',`dnsbl.uni-sofia.bg',`"550 Your IP address "$&{client_addr}" are listed in dnsbl.uni-sofia.bg"')dnl
FEATURE(`dnsbl',`dnsbl.sorbs.net',`"554 Rejected " $&{client_addr} " found in dnsbl.sorbs.net"')dnl
FEATURE(`enhdnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}', `t')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=62.44.96.7, Name=MTA')dnl
MAILER(smtp)dnl
След като конфигурационният файл /etc/mail/sendmail.mc
бъде създаден или променен, трябва от него да се получи същинската конфигурация, която sendmail демона чете при стартирането си:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Макар концентраторите за електронна поща на СУ "Св. Климент Охридски" да не изпълняват локална доставка (до потребителски пощенски кутии на локалните системи), те обслужват пощенски домейни, в които има само и единствено псевдоними - списъци, в които са описани пощенски кутии на крайни получатели. Ефектът е такъв, че когато се изпрати електронно писмо до псевдоним (alias), писмото не се доставя локално от пощенския концентратор, а се разпраща до асоциираните към псевдонима пощенски кутии, които по правило са върху отдалечени сървъри за електронна поща.
Списъкът с домейни, писмата за които ще се обслужват локално (привидно само, защото ще се обслужват само адреси-псевдоними), се задават във файла /etc/mail/local-host-names
:
съдържание на /etc/mail/local-host-names
за концентратора ns.uni-sofia.bg:
ns.uni-sofia.bg
uni-sofia.bg
съдържание на /etc/mail/local-host-names
за концентратора ady.uni-sofia.bg:
ady.uni-sofia.bg
uni-sofia.bg
Разбира се, този списък е примерен и той може да бъде променен съгласно нуждите за локална обработка на поща за определени домейни в момента. Когато услугата sendmail е в работещ режим, след всяка промяна на този списък се налага рестартирането й:
# service sendmail condrestart
Тази проверка се извършва преди стартирането на услугата sendmail в режим на пощенски концентратор и е в духа на добрата практика по проверка на конфигурационните параметри преди стартирането на която и да е услуга.
Всеки концентратор за електронна поща има свой индивидуален потребител в LDAP директорията. Обикновено за стойност на uid атрибута се използва пълното квалифицирано име на хост. За да се провери дали потребител със съответния dn е наличен в LDAP директорията, може да се използва следната схема на запитвания:
запитване за наличие в LDAP базата на потребителя за концентратора ns.uni-sofia.bg:
# /usr/lib/mozldap/ldapsearch -D "uid=adminname,ou=admins,o=uni-sofia.bg" -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -w - '(cn=ns.uni-sofia.bg)' cn
След като се въведе паролата за административния потребител, с чиито права ще се направи търсене в директорията (в случая uid=adminname,ou=admins,o=uni-sofia.bg), ще се изведе резултат за наличието на потребителя с dn cn=ns.uni-sofia.bg,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg в директорията o=uni-sofia.bg. Ако потребителят съществува (бил е деклариран), изходът от изпълнение на командния ред ще е подобен на:
dn: cn=ns.uni-sofia.bg,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
cn: ns.uni-sofia.bg
запитване за наличие в LDAP базата на потребителя за концентратора ady.uni-sofia.bg:
# /usr/lib/mozldap/ldapsearch -D "cn=adminname,ou=admins,o=uni-sofia.bg" -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -w - '(cn=ady.uni-sofia.bg)' cn
След като се въведе паролата за административния потребител, с чиито права ще се направи търсене в директорията (в случая uid=adminname,ou=admins,o=uni-sofia.bg), ще се изведе резултат за наличието на потребителя с dn cn=ady.uni-sofia.bg,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg в директорията o=uni-sofia.bg. Ако потребителят съществува (бил е деклариран), изходът от изпълнение на командния ред ще е подобен на:
dn: cn=ady.uni-sofia.bg,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
cn: ady.uni-sofia.bg
Разбира се, за друга система, различна от двата пощенски концентратора на СУ, запитването ще включва конкретния uid. Ако потребител не е наличен в директорията, той трябва да бъде създаден.
За да бъде създаден ldap потребителя е необходимо:
операторът, който ще създава потребителя в LDAP директорията o=uni-sofia.bg, да има дефиниран в нея dn за административен потребител и да знае паролата за него;
да се изработи шаблон в ldif формат, който да се въведе в директорията с правата на вече споменатия административен потребител.
Шаблонът за въвеждане на потребителя в LDAP директорията има следния вид и структура:
ldif шаблон за създаване на ldap потребител за ns.uni-sofia.bg:
dn: cn=ns.uni-sofia.bg,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: top
objectClass: person
cn: ns.uni-sofia.bg
sn: mail hub
description: Sendmail Daemon User (ns.uni-sofia.bg)
userPassword: {SSHA}tCunQzMGzcdAmHTrTntlcPkhs9WPGq0s
Създаденият шаблон се запазва във файла create-ns.uni-sofia.bg.ldif
.
ldif шаблон за създаване на ldap потребител за ady.uni-sofia.bg:
dn: cn=ady.uni-sofia.bg,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: top
objectClass: person
cn: ady.uni-sofia.bg
sn: mail hub
description: Sendmail Daemon User (ady.uni-sofia.bg)
userPassword: {SSHA}tCunQzVMzcdAmHTrTntlcPkhs9WPGAvs
Създаденият шаблон се запазва във файла create-ady.uni-sofia.bg.ldif
.
Стойността на атрибута userPassword
най-лесно се генерира чрез инструмента slappasswd
Инструментът slappasswd е част от пакета openldap-servers в пакетната колекция на дистрибуциите на Red Hat и техните производни. Не е добра идея да се съвместяват върху една система два ldap сървъра (в случая OpenLDAP и Fedora Directory Server). Възможно е поради невнимание те да бъдат включени заедно и това да доведе до конфликт между двата сървъра за използването на стандартния ldap порт (389/tcp). Заради тази опасност се препоръчитва пакета openldap-servers да се инсталира върху работната станция на оператора, паролата да се генерира в хеш вид там и чак след това да се пренесе на шблона върху директорийния сървър.
Генерирането на парола с инструмента slappasswd става по следната проста схема:
$ /usr/sbin/slappasswd -h {SSHA}
Диалоговото меню след изпълнение на този команден ред и извеждането на резултата имат следния примерен вид:
New password:
Re-enter new password:
{SSHA}65ExQB8IUOuRo4umESN3KDg0yJ+RNrrn
Последният ред (за примера {SSHA}65ExQB8IUOuRo4umESN3KDg0yJ+RNrrn
) представлява хеш стойността на въведената чрез диалога парола.
ВНИМАНИЕ! Паролата, чиято хеш стойност е зададена като стойност на атрибута userPassword
, трябва да е описана в явен (нехеширан вид) в съответния файл за съхранение на паролата върху пощенския концентратор.
Въвеждането на съдържанието на шаблоните в LDAP директорията, става по следния начин:
за шаблона за създаване на потребител за ns.uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -a -f create-ns.uni-sofia.bg.ldif
за шаблона за създаване на потребител за ady.uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -a -f create-ady.uni-sofia.bg.ldif
Паролата може да бъде сменена само от член на административната група (ou=admins,o=uni-sofia.bg). След като новата парола бъде ясна, трябва да се пресметне нейния хеш. За изчисляването на хеша за новата парола се използва инструмента slappasswd
.
Инструментът slappasswd е част от пакета openldap-servers в пакетната колекция на дистрибуцията Red Hat Enterprise Linux и производните й. Не е добра идея да се съвместяват върху една система два ldap сървъра (в случая OpenLDAP и Fedora Directory Server). Възможно е поради невнимание те да бъдат включени заедно и това да доведе до конфликт между двата сървъра за използването на стандартния ldap порт (389/tcp). Заради тази опасност се препоръчитва пакета openldap-servers да се инсталира върху работната станция на оператора, паролата да се генерира в хеш вид там и чак след това да се пренесе на шблона върху директорийния сървър.
Генерирането на парола с инструмента slappasswd става по следната проста схема:
$ /usr/sbin/slappasswd -h {SSHA}
Диаловото меню след изпълнение на този команден ред и извеждането на резултата имат следния примерен вид:
New password:
Re-enter new password:
{SSHA}65ExQB8IUOuRo4umESN3KDg0yJ+RNrrn
Последният ред (за примера {SSHA}65ExQB8IUOuRo4umESN3KDg0yJ+RNrrn
) представлява хеш стойността на въведената чрез диалога парола.
След като хеша на паролата бъде пресметнат, неговата стойност заменя старата в съответния dn запис. Това става като се изготви шаблон и неговото съдържание се въведе в директорията чрез инструмента ldapmodify. За примера се предполага, че съдържанието на шаблона ще бъде запазено във файла change-pass.ldif
:
dn: cn=mailhost,ou=accounts,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
replace: userPassword
userPassword: {SSHA}65ExQB8IUOuRo4umESN3KDg0yJ+RNrrn
За реалния случай, вместо mailhost, в полето cn трябва да се сложи реалното име на хоста, за чиито потребител се сменя паролата. Например ns.uni-sofia.bg, ady.uni-sofia.bg и др.
Въвеждането на новата парола в директорията, става чрез командния ред (изпълнен локално върху сървърската система, на която работи директорийния сървър):
$ /usr/lib/mozldap/ldapmodify -h localhost -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f change-pass.ldif
При изпълнението на командния ред се изисква въвеждането на паролата за административния потребител uid=adminname,ou=admins,o=uni-sofia.bg.
ВНИМАНИЕ! Паролата, чиято хеш стойност е зададена като стойност на атрибута userPassword
, трябва да е описана в явен (нехеширан вид) в съответния файл за съхранение на паролата върху пощенския концентратор. Това означава, че освен смяната й в LDAP директорията, тя трябва да бъде сменена и в съотвения локален системен файл.
За да може услугата sendmail да се стартира при зареждане на системата, трябва да се изпълни:
# chkconfig sendmail on
Операциите по ръчно стартиране, рестартиране и спиране на услугата sendmail могат да се обобщят така:
ръчно стартиране на услугата sendmail:
# service sendmail start
След изпълнението на този команден ред ще бъде изведен статус на изпълнението: OK
при успешно стартиране и FAILED
при неуспешно.
# service sendmail stop
След изпълнението на този команден ред ще бъде изведен статус на изпълнението: OK
при успешно стартиране и FAILED
при неуспешно.
ръчно рестартиране на услугата sendmail:
# service sendmail restart
Внимание: Изпълнението на този команден ред ще стартира услугата sendmail, ако тя не е била стартирана преди това, т.е. първо ще бъде направен опит услугата да бъде спряна и без значение от изхода на тази операция, след това ще бъде направен опит за стартирането й. След изпълнението на този команден ред ще бъде изведен статус на изпълнението: OK
при успешно рестартиране и FAILED
при неуспешно. Статусът се извежда поотделно за процесите на спиране и стартиране.
ръчно рестартиране на услугата, при условие, че тя е стартирана:
Това е по-правилният начин за рестартиране на услугата. При него рестартиране има само, ако услугата е била активна (стартирана преди това):
# service sendmail condrestart
След изпълнението на този команден ред ще бъде изведен статус на изпълнението: OK
при успешно рестартиране и FAILED
при неуспешно. Ако услугата не е била стартирана преди изпълнението на командния ред, няма да бъде върна статус, защото няма да бъде извършено никакво действие.
Описаният по-долу примерен шаблон създава псевдонима aliasname@domain.tld. Всяко електронно писмо до aliasname@domain.tld ще бъде изпратено до всички пощенски адреси, описани като стойност на атрибута sendmailMTAAliasValue
, в примера това са info@example.com, help@domain.tld и admin@nodomain.tld. Този псевдоним ще е валиден за всички сървъри за поща, които са в клъстера от конфигурации UniSofiaMTAServer.
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: sendmailMTA
objectClass: sendmailMTAAlias
objectClass: sendmailMTAAliasObject
sendmailMTAAliasGrouping: aliases
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAKey: aliasname@domain.tld
sendmailMTAAliasValue: info@example.com
sendmailMTAAliasValue: help@domain.tld
sendmailMTAAliasValue: admin@nodomain.tld
След като шаблонът бъде създаден, е добре съдържанието да се запази във файл (за примера по-долу файла е с име alias.ldif
) и след това да се въведе в директорията. Това става чрез командния ред (изпълнен върху локалната за директорийния сървър система):
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -a -f alias.ldif
Ще бъде изискано въвеждането на паролата за uid=adminname,ou=admins,o=uni-sofia.bg и ако то е успешно, новият псевдоним ще стане част от дървото за пощенската услуга. Псевдонимът влиза в сила веднага след въвеждането му в директорията и не е нужна никаква интервенция върху Sendmail.
Dn на псевдонима, както и всички негови атрибути и стойности, са обект на рестриктивен достъп и прочита им е възможен само от упълномощениете за това потребители в LDAP директорията. Всяко търсене на псевдоним или прочит на атрибутите му, изисква удостоверяване!
Прочитът може да се разпростре от всички атрибути и стойностите им, до прочит само на някои атрибути и стойностите им.
прочит на всички атрибути и стойностите им:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(sendmailMTAKey=aliasname@domain.tld)'
Примерният изход от успешното изпълнение на горния команден ред, дава възможно най-подробна информация за съдържанието на dn обекта, с който е деклрариран псевдонима aliasname@domain.tld:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: sendmailMTA
objectClass: sendmailMTAAlias
objectClass: sendmailMTAAliasObject
objectClass: top
sendmailMTAAliasGrouping: aliases
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAKey: aliasname@domain.tld
sendmailMTAAliasValue: info@example.com
sendmailMTAAliasValue: help@domain.tld
sendmailMTAAliasValue: admin@nodomain.tld
прочит на атрибутите и стойносите им, касаещи пощенските адреси асоциирани с псевдонима:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(sendmailMTAKey=aliasname@domain.tld)' sendmailMTAAliasValue
Примерният изход от успешното изпълнение на горния команден ред, дава списъка с пощенски адреси асоциирани с псевдонима aliasname@domain.tld:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAAliasValue: info@example.com
sendmailMTAAliasValue: help@domain.tld
sendmailMTAAliasValue: admin@nodomain.tld
прочит на атрибута sendmailMTACluster и стойностите му:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(sendmailMTAKey=aliasname@domain.tld)' sendmailMTACluster
Примерният изход от успешното изпълнение на горния команден ред, дава имената на Sendmail клъстери, пощенските сървъри от които обслужват псевдонима aliasname@domain.tld:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTACluster: UniSofiaMTAServer
прочит на атрибута sendmailMTAHost и стойностите му:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(sendmailMTAKey=aliasname@domain.tld)' sendmailMTAHost
Примерният изход от успешното изпълнение на горния команден ред, дава имената на Sendmail пощенските сървъри, които обслужват псевдонима aliasname@domain.tld, при условие, че не са в клъстер или за обслужването на псевдонима се изисква освен име на клъстер да бъде описано и името на пощенския сървър в клъстера:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAHost: hidden.uni-sofia.bg
Поддървото с псевдонимите е част от поддървото на пощенската услуга ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg и всички записи в него, са обект на рестриктивен достъп и прочита им е възможен само от упълномощениете за това потребители в LDAP директорията, след удостоверяване.
Обект на практическо използване в пощенската услуга на СУ "Св. Климент Охридски", са следните видове прочит и търсене:
прочит на всички псевдоними (едновременно):
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(sendmailMTAAliasGrouping=aliases)'
Изходът от изпълнението на горния команден ред, ще даде всички псевдоними в поддървото ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg.
търсене на пощенски адрес, асоцииран към псевдоним (без да се указва псевдонима), с извеждане на съдържанието на всички псведоними, които го съдържат:
В примерът се търси в кои псевдоними е асоцииран пощенския адрес address@domain.tld:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(&(sendmailMTAAliasGrouping=aliases)(sendmailMTAAliasValue=address@domain.tld))'
Примерният изход от успешното изпълнение на горния команден ред, ще съдържа детаилното описание на псевдонимите, които съдържат атрибут sendmailMTAAliasValue
със стойност address@domain.tld:
dn: sendmailMTAKey=aliasname1@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: sendmailMTA
objectClass: sendmailMTAAlias
objectClass: sendmailMTAAliasObject
sendmailMTAAliasGrouping: aliases
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAKey: aliasname1@domain.tld
sendmailMTAAliasValue: help@domain.tld
sendmailMTAAliasValue: address@domain.tld
dn: sendmailMTAKey=aliasname2@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: sendmailMTA
objectClass: sendmailMTAAlias
objectClass: sendmailMTAAliasObject
sendmailMTAAliasGrouping: aliases
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAKey: aliasname2@domain.tld
sendmailMTAAliasValue: info@example.com
sendmailMTAAliasValue: address@domain.tld
търсене на пощенски адрес, асоцииран към псевдоним (без да се указва псевдонима), с извеждане на списъка с всички псведоними, които го съдържат (без съдържанието на псевдонимите):
В примерът се търси в кои псевдоними е асоцииран пощенския адрес address@domain.tld, като целта е извеждане на списък с имената на псевдоними, а не съдържанието им:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(&(sendmailMTAAliasGrouping=aliases)(sendmailMTAAliasValue=address@domain.tld))' sendmailMTAKey
Примерният изход от успешното изпълнение на горния команден ред, ще съдържа списъка с имената на псевдонимите, които съдържат атрибут sendmailMTAAliasValue
със стойност address@domain.tld:
dn: sendmailMTAKey=aliasname1@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAKey: aliasname1@domain.tld
dn: sendmailMTAKey=aliasname2@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAKey: aliasname2@domain.tld
търсене на всички псевдоними, обслужвани от даден клъстер (без съдържанието на псевдонимите):
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(&(sendmailMTAAliasGrouping=aliases)(sendmailMTACluster=UniSofiaMTAServer))' sendmailMTAKey
Примерният изход от успешното изпълнение на горния команден ред, ще съдържа списъка с имената на псевдонимите, които се обслужват от Sendmail клъстера с име UniSofiaMTAServer
:
dn: sendmailMTAKey=aliasname1@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAKey: aliasname1@domain.tld
dn: sendmailMTAKey=aliasname2@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAKey: aliasname2@domain.tld
Забележка: Ако трябва да бъде изведено и съдържанието на псевдонимите (а не само списък с техните имена), трябва в края на командния ред да бъде премахната филтриращата декларация sendmailMTAKey
Модифицирането на един пощенски псевдоним може да засегне всички полета в съотверния dn, но най-често случаите на модификация и начините за извършването й могат да се обобщят така:
прибавяне на пощенски адрес към псевдонима:
В примера се разглежда прибавянето на адреса postmaster@example.com към псевдонима aliasname@domain.tld. Изработва се шаблон от вида:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
add: sendmailMTAAliasValue
sendmailMTAAliasValue: postmaster@example.com
Съдържанието на шаблона се запазва във файла с име add-address.ldif (или друго подходящо име ) и се въвежда в директорията:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f add-address.ldif.ldif
Макар примерът по-горе да описва прибавянето към псевдонима на един пощенски адрес, чрез една подобна стъпка може да се прибавят два или повече адреса. Например, при използване на шаблон със съдържание:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
add: sendmailMTAAliasValue
sendmailMTAAliasValue: postmaster@example.com
sendmailMTAAliasValue: root@example.com
sendmailMTAAliasValue: root@domain.tld
с една стъпка ще бъдат прибавени три пощенски адреса към псевдонима.
премахване на пощенски адрес от псевдонима:
В примера се разглежда премахването на адреса postmaster@example.com от псевдонима aliasname@domain.tld. Изработва се шаблон от вида:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
delete: sendmailMTAAliasValue
sendmailMTAAliasValue: postmaster@example.com
Съдържанието на шаблона се запазва във файла с име del-address.ldif (или друго подходящо име ) и за премахването на адреса от псевдонима, се изпълнява команден ред от вида:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f del-address.ldif.ldif
Макар примерът по-горе да описва премахването от псевдонима на един пощенски адрес, чрез една подобна стъпка може да се премахнат два или повече адреса. Например, при използване на шаблон със съдържание:
dn: sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
delete: sendmailMTAAliasValue
sendmailMTAAliasValue: postmaster@example.com
sendmailMTAAliasValue: root@example.com
sendmailMTAAliasValue: root@domain.tld
с една стъпка ще бъдат изтрити три пощенски адреса от псевдонима.
Премахването става чрез изтриване на dn записа за псевдонима. Изтриването може да се извърши само с правата на административен за LDAP директорията потребител. В примера по-долу е показано изтриване на псевдонима aliasname@domain.tld с правата на административния потребител с dn uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapdelete -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - "sendmailMTAKey=aliasname@domain.tld,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg"
След изпълнението на командния ред се изисква въвеждането на паролата за административния потребител.
Пощенските концентратори на СУ "Св. Климент Охридски" приемат електронна поща за поддомейните на домейна uni-sofia.bg и я транспортират до съответните сървъри за поща, на които се намират кутиите на потребителите.
За да може всеки от концентраторите за поща на СУ да транспортира поща за даден домейн, въпросния домейн трябва да е описан изрично в базата с домейни, за които транспорт е допустим. Описанието става в LDAP директорията, като за всеки домейн се прави отделен запис за разрешение за транспорт.
По-долу е даден примерен шаблон за разрешаване за транспорт на домейна subdomain.uni-sofia.bg:
dn: sendmailMTAKey=to:subdomain.uni-sofia.bg,sendmailMTAMapName=access,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: sendmailMTA
objectClass: sendmailMTAMap
objectClass: sendmailMTAMapObject
objectClass: top
sendmailMTAMapName: access
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAKey: to:subdomain.uni-sofia.bg
sendmailMTAMapValue: RELAY
След като шаблонът бъде създаден, е добре съдържанието да се запази във файл (за примера по-долу файла е с име access-subdomain.ldif
) и след това да се въведе в директорията. Това става чрез командния ред (изпълнен върху локалната за директорийния сървър система):
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -a -f access-subdomain.ldif
Ще бъде изискано въвеждането на паролата за uid=adminname,ou=admins,o=uni-sofia.bg и ако то е успешно, новото разрешение за транспорт ще стане част от дървото за пощенската услуга. Разрешението влиза в сила веднага след въвеждането му в директорията и не е нужна никаква интервенция върху Sendmail.
Dn на разрешението за транспорт, както и всички негови атрибути и стойности, са обект на рестриктивен достъп и прочита им е възможен само от упълномощениете за това потребители в LDAP директорията. Всяко търсене на псевдоним или прочит на атрибутите му, изисква удостоверяване!
Прочитът може да се разпростре от всички атрибути и стойностите им, до прочит само на някои атрибути и стойностите им.
прочит на всички атрибути и стойностите им в разрешенията за транспорт:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(&(sendmailMTAMapName=access)(sendmailMTAKey=to:*))'
Примерният изход от успешното изпълнение на горния команден ред, дава възможно най-подробна информация за съдържанието на всички dn обекти (по един обект на домейн), с който е деклрарирано разрешението за транспорт за всички домейни. Примерен изход, описващ само един от изведените dn би имал вида:
dn: sendmailMTAKey=to:subdomain.uni-sofia.bg,sendmailMTAMapName=access,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
objectClass: sendmailMTA
objectClass: sendmailMTAMap
objectClass: sendmailMTAMapObject
objectClass: top
sendmailMTAMapName: access
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAKey: to:subdomain.uni-sofia.bg
sendmailMTAMapValue: RELAY
В този пример е описано разрешение за транспорт на пощата за домейна subdomain.uni-sofia.bg през всички пощански сървъри, които са в конфигурационния клъстер с име UniSofiaMTAServer.
Забележка: Ако се налага да се търси информация само за отделен домейн, то той се указва точно, на мястото на символа "*" в горния примерен команден ред.
извеждане на всички домейни, чиито транспорт се осъществява от пощенските сървъри в конфигурационния клъстер с име UniSofiaMTAServer:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(&(sendmailMTAMapName=access)(sendmailMTACluster=UniSofiaMTAServer))'
Ако в горния изход трябва да се изведат само имената на домейните, без да се извеждат подробно всички атрибути за всеки един от тях, горния команден ред може да се модифицира така:
$ /usr/lib/mozldap/ldapsearch -T -b "ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg" -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - '(&(sendmailMTAMapName=access)(sendmailMTACluster=UniSofiaMTAServer))' sendmailMTAKey
За да се модифицира дадено разрешение за транспорт на поща на домейн, трябва да се състави шаблон, в който промените да бъдат нанесени и след това да се въведат в LDAP директорията. Модификациите в разрешението за транспорт се следните типове:
смяна на името на клъстера от конфигурации, пощенските сървъри от които обслужват транспорта
Изготвя се шаблон за смяната. За примера се предполага, че транспортът трябва да се поеме от клъстер от конфигурации с име NewMTACluster, като преди се е осигурявал от клъстера UniSofiaMTAServer. Съдържанието на шаблона се запазва въс файла change-cluster.diff
:
dn: sendmailMTAKey=to:subdomain.uni-sofia.bg,sendmailMTAMapName=access,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
replace: sendmailMTACluster: UniSofiaMTAServer
sendmailMTACluster: NewMTACluster
Въвеждането на промените става с използването на административен за LDAP директорията потребител (в случая uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f change-cluster.ldif
добавяне на клъстер от конфигурации, пощенските сървъри в който да обслужват транспорта
В този случай се цели да се добави още един клъстер от конфигурации, пощенските сървъри в който да транспортират електронната поща за даден домейн. За да се добави клъстера се създава шаблон, като за примера ще се предполага, че съдържанието на шаблона ще се намира във файла add-cluster.ldif:
dn: sendmailMTAKey=to:subdomain.uni-sofia.bg,sendmailMTAMapName=access,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
add: sendmailMTACluster
sendmailMTACluster: AnotherMTACluster
Чрез този пример в списъка от клъстери от конфигурации, реализиращи транспорта за домейна subdomain.uni-sofia.bg, се добавя клъстера с име AnotherMTACluster. Въвеждането на промените става с използването на административен за LDAP директорията потребител (в случая uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f add-cluster.ldif
премахване на клъстер от конфигурации, пощенските сървъри от който да обслужват транспорта
Тази промяна засяга случаите, в които даден клъстер от конфигурации трябва да престане да обслужва транспорта за даден домейн. За целта се изготвя шаблон, като за примера ще се предполага, че съдържанието му ще се намира във файла delete-cluster.ldif:
dn: sendmailMTAKey=to:subdomain.uni-sofia.bg,sendmailMTAMapName=access,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
delete: sendmailMTACluster
sendmailMTACluster: AnotherMTACluster
Въвеждането на промените става с използването на административен за LDAP директорията потребител (в случая uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f delete-cluster.ldif
Премахването става чрез изтриване на dn записа за разрешението. Изтриването може да се извърши само с правата на административен за LDAP директорията потребител. В примера по-долу е показано изтриване на запис за разшрение за транспорта на пощата на домейна subdomain.uni-sofia.bg с правата на административния потребител с dn uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapdelete -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - "sendmailMTAKey=to:subdomain.uni-sofia.bg,sendmailMTAMapName=access,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg"
След изпълнението на командния ред се изисква въвеждането на паролата за административния потребител.
В случая на пощенски концентратор, записът третира възможността на Sendmail да маршрутизира електронната поща за даден домейн без да се съобразява с DNS информацията (с MX йерархията за домейна) - mailertable. Ако се налага извършването на подобен запис, трябва преди това да бъде извършен запис за разрешение за транспорт на пощата за домейна.
Шаблонът за извършване на запис в LDAP директорията, чрез който пощенските сървъри използващи клъстера от конфигурации с име UniSofiaMTAServer да маршрутизират входящата електронна поща за домейна subdomain.uni-sofia.bg, има следния вид:
dn: sendmailMTAKey=subdomain.uni-sofia.bg,sendmailMTAMapName=mailer,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
sendmailMTAMapValue: esmtp:mail.subdmomain.uni-sofia.bg
sendmailMTAKey: subdomain.uni-sofia.bg
sendmailMTACluster: UniSofiaMTAServer
sendmailMTAMapName: mailer
objectClass: sendmailMTA
objectClass: sendmailMTAMap
objectClass: sendmailMTAMapObject
objectClass: top
В този запис има два атрибута, чрез които се указва маршрутизацията на електронната поща:
sendmailMTAKey
Стойността на този атрибут указва домейна, за който ще се извършва подобна маршрутизация на потока електронна поща. В горният примерен шаблон стойността е subdomain.uni-sofia.bg.
sendmailMTAMapValue
Стойността на този атрибут съдържа две полета, разделени с двуеточие. Първото поле указва вида на протокола за транспорт на пощата, а второто сървъра за поща, до когото пощата ще се изпраща. За горния примерен шаблон първото поле съдържа стойността "esmtp", а второто има стойност "mail.subdmomain.uni-sofia.bg". Това означава, че получената от пощенския концентратор електронна поща за домейна subdomain.lcpe.uni-sofia.bg, ще се доставя по протокол ESMTP към сървъра за поща mail.subdmomain.uni-sofia.bg.
За да се модифицира даден запис за маршрутизиране на електронната поща за домейн, трябва да се състави шаблон, в който промените да бъдат нанесени и след това да се въведат в LDAP директорията. Модификацията може да е три типа:
смяна на протокола за транспортиране на електронната поща
При този тип модификация се променя протокола за транспорт на електронната поща до съответния сървър. В съвременните условия на развитие на услугата електронна поща, се използват основно протоколите SMTP и ESMTP (ESMTP е протокола SMTP с прибавени разширения). По-старият софтуер за реализиране на пощенски сървър е възможно да не поддържа разширенията в протокола и в този случай е нужно да се използва указването на протокол "smtp". Ето примерен шаблон за смяна на протокола за транспорт от ESMTP към SMTP (приема се, че името на файла с шаблона е change-proto.ldif
):
dn: sendmailMTAKey=subdomain.uni-sofia.bg,sendmailMTAMapName=mailer,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
replace: sendmailMTAMapValue: esmtp:mail.subdmomain.uni-sofia.bg
sendmailMTAMapValue: smtp:mail.subdmomain.uni-sofia.bg
Въвеждането на промените става с използването на административен за LDAP директорията потребител (в случая uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f change-proto.ldif
смяна на пълното квалифицирано име на хост, указващо сървъра за имена
При този тип модификация се променя само името на хоста, към който се препраща електронната поща за дадения домейн. Ето примерен шаблон за смяната на името на хоста на сървъра-получател на електронна поща от mail.subdomain.uni-sofia.bg на mail.anotherdomain.uni-sofia.bg (приема се, че името на файла с шаблона е change-hostname.ldif
):
dn: sendmailMTAKey=subdomain.uni-sofia.bg,sendmailMTAMapName=mailer,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
replace: sendmailMTAMapValue: esmtp:mail.subdmomain.uni-sofia.bg
sendmailMTAMapValue: esmtp:mail.anotherdomain.uni-sofia.bg
Въвеждането на промените става с използването на административен за LDAP директорията потребител (в случая uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f change-hostname.ldif
едновременна смяна на протокола и пълното квалифицирано име на хост
В този случай чрез една стъпка се променя както протокола, така и името на хоста на сървъра, който получава пощата за съответния домейн чрез този начин на алтернативна маршрутизация. Ето шаблон за подобна смяна, който илюстрира смяната на протокола от esmtp на smtp и името на хост от mail.subdomain.uni-sofia.bg на mail.anotherdomain.uni-sofia.bg (приема се, че името на файла с шаблона е change-proto-and-hostname.ldif
):
dn: sendmailMTAKey=subdomain.uni-sofia.bg,sendmailMTAMapName=mailer,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bg
changetype:modify
replace: sendmailMTAMapValue: esmtp:mail.subdmomain.uni-sofia.bg
sendmailMTAMapValue: smtp:mail.anotherdomain.uni-sofia.bg
Въвеждането на промените става с използването на административен за LDAP директорията потребител (в случая uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapmodify -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - -f change-proto-and-hostname.ldif
Премахването става чрез изтриване на dn записа за разрешението. Изтриването може да се извърши само с правата на административен за LDAP директорията потребител. В примера по-долу е показано изтриване на запис за разшрение за транспорта на пощата на домейна subdomain.uni-sofia.bg с правата на административния потребител с dn uid=adminname,ou=admins,o=uni-sofia.bg:
$ /usr/lib/mozldap/ldapdelete -D "uid=adminname,ou=admins,o=uni-sofia.bg" -w - "sendmailMTAKey=subdomain.uni-sofia.bg,sendmailMTAMapName=mailer,ou=sendmail,ou=smtp,ou=services,o=uni-sofia.bgg"
След изпълнението на командния ред се изисква въвеждането на паролата за административния потребител.
Съдържанието, публикувано в тази страница, може да се ползва при условията на "Creative Commons - Признание 2.5", освен ако в конкретния документ не е посочено друго.
OpenPGP подписано съдържание
[информация] [електронен подпис]