2008-08-08

Установка Oracle8i на RHEL3


Установка Oracle8i на RHEL3

Итак, необходимо установить Oracle 8.1.7.4 на RHEL3.

Создаем группы для oracle. Действия выполняются под root:

root> groupadd oinstall

root> groupadd dba

root> groupadd oper

Далее создаем пользователя oracle. Действие выполняется под root:

root> useradd -g oinstall -G dba,oper oracle

root> passwd oracle

root> chown oracle:oinstall /u01 -R

root> chown oracle:oinstall /u02 -R

Далее предполагается, что программное обеспечение oracle будет устанавливаться в /u01, ORACLE_HOME=/u01/ora81.

Логинимся под пользователем oracle. Редактируем ~/.bash_profile. С самого начала он имеет следующий вид:

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

Меняем на следующее:

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

export LD_ASSUME_KERNEL=2.2.5

export LANG="en_US.UTF-8"

export JAVA_HOME=/usr/local/java

export ORACLE_BASE=/u01

export ORACLE_HOME=/u01/ora81

export NLS_LANG="AMERICAN_CIS.CL8MSWIN1251"

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

if [ "${LD_LIBRARY_PATH:-}" == "" ]; then

LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/lib:/usr/local/lib

else

LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}

fi

export LD_LIBRARY_PATH

PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

export PATH

unset USERNAME

Далее опять логинимся под root. Необходимо установить корректные параметры ядра для нормальной работы oracle. В файл /etc/sysctl.conf добавляем следующее:

kernel.shmmax = 4096000000

kernel.shmmni = 100

kernel.sem = 600 32000 100 128

fs.file-max = 131072

Если там такие параметры уже были, то исправляем на указанные выше. Применяем измененные параметры:

root> sysctl -p

Проверяем, установлен ли пакет compat-gcc-7.3-2.96 (rpm -q compat-gcc). Если нет, устанавливаем, после чего делаем следующее:

root> mv /usr/bin/gcc /usr/bin/gcc323

root> ln –s /usr/bin/gcc296 /usr/bin/gcc

После этого заходим в KDE под пользователем oracle. Далее предполагается, что установочные файлы oracle 8.1.7 располагаются в папке /home/install/tmp/oracle.8.1.7, патчсет 8.1.7.4 находится в папке /home/install/tmp/patch.8.1.7.4, и у пользователя oracle есть полный доступ на /home/install. Если это не так, то в консоли от имени root делаем следующее:

> chown oracle:oinstall /home/install/tmp -R

После этого консоль root можно закрыть.

Далее от имени oracle даем права на запуск Installer-а. Как это не странно, но в дистрибутиве oracle на запуск инсталлера ни у кого прав нет...

oracle> chmod ug+x /home/install/tmp/oracle.8.1.7/runInstaller

oracle> chmod ug+x /home/install/tmp/oracle.8.1.7/install/linux/runInstaller/

Сразу скажу, что для успеха дальнейших действий по установке oracle необходимо иметь такую штуку, как glibc-2.1.3-stubs.tar.gz. Мне эту штуку подарил добрый парень Денисков Игорь, за что ему огромное спасибо, так же как и подарил набор патчей, о которых речь пойдет ниже.

Теперь нам необходим набор патчей, которые нам понадобятся при установке. Создаем их. Далее предполагается, что создаваемые нами патчи мы размещаем в каталоге /home/install/tmp/rhel3.

Создаем патч для root.sh. Называем его root.sh.patch (/home/install/tmp/rhel3/root.sh.patch)

--- /usr/local/oracle/product/8.1.7/root.sh 2005-10-18 16:39:48.000000000 +0300

+++ root.sh 2005-10-18 16:42:14.000000000 +0300

@@ -99,7 +99,7 @@

TEE=/usr/bin/tee

TMPORATB=/tmp/oratab$$

TEST=/usr/bin/test

-RMF=/bin/rm -f

+RMF="/bin/rm -f"

#

# If LOG is not set, then send output to /dev/null

#

@@ -153,7 +153,7 @@

$ECHO "ORACLE_SID is not set."| $TEE -a $LOG

fi

-RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}`

+RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`

if [ ${RUID} != "root" ];then

$ECHO "You must be logged in as root to run root.sh."| $TEE -a $LOG

$ECHO "Log in as root and restart root.sh execution."| $TEE -a $LOG

Создаем патч для загадочной штуки ins_oemagent.mk. Называем его ins_oemagent.mk.patch (/home/install/tmp/rhel3/ins_oemagent.mk.patch). Вот его содержимое:

--- ins_oemagent.mk.orig 2005-10-18 17:29:37.000000000 +0300

+++ ins_oemagent.mk 2005-10-18 17:31:11.000000000 +0300

@@ -17,7 +17,7 @@

RDBMSHOME = $(ORACLE_HOME)/rdbms/

RDBMSLIB = $(ORACLE_HOME)/rdbms/lib/

RDBMSBIN = $(ORACLE_HOME)/rdbms/bin/

-LDFLAGS = $(STDMODE) -L$(LIBHOME) -L$(ORACLE_HOME)/rdbms/lib -L$(ORACLE_HOME)/network/lib

+LDFLAGS = $(STDMODE) -L$(LIBHOME)/stubs -L$(LIBHOME) -L$(ORACLE_HOME)/rdbms/lib -L$(ORACLE_HOME)/network/lib

LDCCOM = $(LINK) $(LDFLAGS) $(EXOSFLAGS) -o $@

Создаем патч для загадочной штуки ins_net_server.mk. Называем его ins_net_server.mk.patch (/home/install/tmp/rhel3/ins_net_server.mk.patch). Вот его содержимое:

--- ins_net_server.mk.orig 2005-10-18 17:32:50.000000000 +0300

+++ ins_net_server.mk 2005-10-18 17:33:39.000000000 +0300

@@ -21,7 +21,7 @@

RDBMSBIN = $(ORACLE_HOME)/rdbms/bin/

MAKEFILE = $(ORACLE_HOME)/network/lib/ins_net_server.mk

-LDFLAGS = -L$(LIBHOME) -L$(RDBMSLIB) -L$(NETWORKLIB)

+LDFLAGS = -L$(LIBHOME)/stubs -L$(LIBHOME) -L$(RDBMSLIB) -L$(NETWORKLIB)

LDCCOM = $(LINK) -Wl,-rpath,$(ORACLE_HOME)/lib $(LDFLAGS) $(EXOSFLAGS) -o $@

ECHO = $(ORACLE_HOME)/bin/echodo

Создаем патч для загадочной штуки genagtsh. Называем его genagtsh.patch (/home/install/tmp/rhel3/genagtsh.patch). Вот его содержимое:

--- genagtsh.orig 2005-10-18 17:35:04.000000000 +0300

+++ genagtsh 2005-10-18 17:36:41.000000000 +0300

@@ -132,8 +132,7 @@

# Linker command and options

-LD="ld -G -L${ORACLE_HOME}/lib" # shared library link command

-LD_OPT="-h ${AGENT_LIBNAME}" # name inserted into library

+LD="gcc -shared -fpic -L${ORACLE_HOME}/lib/stubs -L${ORACLE_HOME}/lib" # shared library link command

LD_OUT="-o ${LIB_NAME}" # output specification

Все, необходимый набор патчей подготовили. Поехали дальше.

Собственно говоря, мы должны щас находится в KDE под oracle. Если нет, то нужно чтоб было так. Под пользователем oracle запускаем runInstaller:

oracle> /home/install/tmp/oracle.8.1.7/runInstaller

Ставим программное обеспечение oracle. В процессе установки будет предложено выполнить скрипт orainstRoot.sh. Выполняем. На ошибки компиляции внимания не обращаем, так и должно быть. Когда нас попросят выполнить скрипт root.sh – останавливаемся и делаем следующее:

oracle> patch /u01/ora81/root.sh /home/install/tmp/rhel3/root.sh.patch

После этого выполняем root.sh:

oracle> /u01/ora81/root.sh

Продолжаем процесс установки. Игнорируем все ошибки – мы их потом исправим.

Затем накатываем патч 8.1.7.4. Ждем первой ошибки связывания:

Error in invoking target relink of makefile /u01/ora81/precomp/lib/ins_precomp.mk

Покидаем наш любимый инсталлятор оракла, берем бубен и....

Разворачиваем glibc-2.1.3-stubs.tar.gz в /u01/ora81 и ставим:

oracle> /u01/ora81/setub_stubs.sh

И вот теперь пришло время воспользоваться всеми написанными ранее патчами, не считая root.sh.patch, который мы уже использовали:

oracle> patch /u01/ora81/network/lib/ins_oemagent.mk /home/install/tmp/rhel3/ins_oemagent.mk.patch

oracle> patch /u01/ora81/network/lib/ins_net_server.mk /home/install/tmp/rhel3/ins_net_server.mk.patch

oracle> patch /u01/ora81/bin/genagtsh /home/install/tmp/rhel3/genagtsh.patch

oracle> cd /u01/ora81/network/lib

oracle> make -f ins_oemagent.mk install

oracle> make -f ins_net_server.mk install

oracle> cd /u01/ora81/rdbms/lib

oracle> make -f ins_rdbms.mk iextproc

Теперь необходимо пересобрать libagtsh.so.1.0:

oracle> cd /u01/ora81/lib

oracle> genagtsh libagtsh.so.1.0

oracle> ln -sf libagtsh.so.1.0 libagtsh.so

Теперь возвращаемся к нашему инсталлеру, в котором у нас висит ошибка связывания, нажимаем там retry, и дальше все должно быть без проблем.

ВСЁ!!! На этом нелегкий процесс установки можно считать законченным...

Читать далее

Замена qmail+courier на postfix+cyrus-imapd


Замена qmail+courier на postfix+cyrus-imapd

Автор: Филиппов Алексей

Связь: fa13@bk.ru

Дата создания: 13 мая 2006

Постоянный адрес статьи: http://phas13.blogspot.com/2008/08/qmailcourier-postfixcyrus-imapd.htm

На obln установлено следующее ПО:

  1. qmail - MTA
  2. courier – IMAP сервер
  3. FreeRadius – Сервер RADIUS

Сервер крутится под Dibian.

Задача – заменить данный сервер.

Заменяющий сервер имеет установленный SLES9 SP2. Программное обеспечение, которое заменит работающее на старом сервере:

  1. postfix – MTA
  2. clamav – Антивирусная проверка почты
  3. FreeRadius – Сервер RADIUS
  4. cyrus-imapd – IMAP и POP сервер

Сервер IMAP в новом варианте не нужен, вроде бы, так как почтовые ящики пользователей на нем храниться не будут, но для совместимости со старым почтовым сервером, нужно настроить. Задача сервера принять почту из внешнего мира и перенаправить ее дальше – в центральный офис, в районные подразделения или в ХГЭС.

Ита-а-а-к...

Ну первым делом проставляем все необходимые пакеты. Пока только FreeRADIUS не ставим, так как это отдельная тема для разговора. На всякий случай ставим пакеты cyrus-imapd и cyrus-sasl – они нам понадобятся, если будет необходимо на этой почтовке хранить пользовательские ящики.

Логинимся под пользователем root и меняем пароль пользователю postfix

root> passwd postfix

Я временно поставил пароль mailsys.

Настраиваем пользователя postfix, по умолчанию под этим пользователем залогиниться невозможно...

root> cp -a /etc/skel/ /home/postfix

root> chown -R postfix:postfix /home/postfix

root> usermod -d /home/postfix postfix

root> usermod -s /bin/bash postfix

Дальше под пользователем root модифицируем файл /etc/postfix/main.cf, конечно предварительно сохранив оригинал файла под именем, в которое включаем текущую дату.

inet_interfaces = all

mailbox_size_limit = 0

message_size_limit = 1024000

mydestination = $myhostname, localhost.$mydomain

mydomain = mycorp.com.ua

myhostname = bluebird.mycorp.com.ua

virtual_mailbox_domains = alexsf.org

virtual_alias_maps = hash:/etc/postfix/virtual

virtual_transport = cyrus

В принципе пока с файлом /etc/postfix/main.cf закончили.

После этого перезапускаем postfix

root> /etc/init.d/postfix restart

Теперь приступаем к классному файлу /etc/postfix/transport. Задача сего замечательного файла в том, чтоб сказать почтовке, как и куда переруливать приходящую почту. То есть, грубо говоря, тут прописываются пути доставки электронной почты, которые перекрывают аналогичные настройки файла /etc/postfix/main.cf

co.mycorp.com.ua smtp:antey.co.mycorp.com.ua

gs.mycorp.gov.ua smtp:192.65.13.62

nkres.mycorp.gov.ua smtp:192.65.12.232

brres.mycorp.gov.ua smtp:192.65.11.65

bzres.mycorp.gov.ua smtp:192.65.11.65

cpres.mycorp.gov.ua smtp:192.65.11.65

crres.mycorp.gov.ua smtp:192.65.11.65

gnres.mycorp.gov.ua smtp:192.65.11.65

gpres.mycorp.gov.ua smtp:192.65.11.65

gsres.mycorp.gov.ua smtp:192.65.11.65

ivres.mycorp.gov.ua smtp:192.65.11.65

klres.mycorp.gov.ua smtp:192.65.11.65

kvres.mycorp.gov.ua smtp:192.65.11.65

nsres.mycorp.gov.ua smtp:192.65.11.65

ntres.mycorp.gov.ua smtp:192.65.11.65

nvres.mycorp.gov.ua smtp:192.65.11.65

skres.mycorp.gov.ua smtp:192.65.11.65

vares.mycorp.gov.ua smtp:192.65.11.65

vlres.mycorp.gov.ua smtp:192.65.11.65

vpres.mycorp.gov.ua smtp:192.65.11.65

vrres.mycorp.gov.ua smtp:192.65.11.65

После этого пересоздаем файлик transport.db:

root> postmap /etc/postfix/transport

root> /etc/init.d/postfix reload

Вот. С этим замечательным файликом закончили... Дальше...

А вот теперь посерьезнее. Прикручиваем clamav...

Первым делом в каталоге /var/log создаем директорию, куда clamav будет складывать логи работы. Так как clamav будет работать под пользователем vscan, то даем этому пользователю права на эту директорию:

root> mkdir /var/log/clamav

root> chown vscan:vscan /var/log/clamav -R

Настраиваем clamav. Все настройки clamav находятся в файле /etc/clamav.conf

ArchiveBlockMax

ArchiveMaxFileSize 1M

ArchiveMaxRecursion 5

ArchiveMaxFiles 1000

FixStaleSocket

Foreground

LocalSocket /var/lib/clamav/clamd-socket

LogFacility LOG_MAIL

LogFile /var/log/clamav/clamav.log

LogFileUnlock

LogFileMaxSize 0

LogSyslog

LogVerbose

PidFile /var/lib/clamav/clamd.pid

ScanRAR

User vscan

Подробное описание указанных в /etc/clamav.conf параметров можно почитать в манах для clamav.conf (man clamav.conf).

После этого необходимо запустить демон clamd:

root> /etc/init.d/clamd start

Кроме того, нам необходимо, чтоб clamd автоматически стартовал при запуске системы:

root> ln -s /etc/init.d/clamd /etc/init.d/rc3.d/K08clamd

root> ln -s /etc/init.d/clamd /etc/init.d/rc3.d/S14clamd

root> ln -s /etc/init.d/clamd /etc/init.d/rc5.d/K08clamd

root> ln -s /etc/init.d/clamd /etc/init.d/rc5.d/S14clamd

Чтоб не делать это руками, можно использовать «Runlevel Editor» в yast. Указать там автостарт сервиса, да и всех делов...

Теперь настраиваем автоматическое обновление антивирусных баз clamav. За сие замечательное занятие отвечает демон freshclam. Все его настройки храняться в файле /etc/freshclam.conf:

Checks 2

DatabaseMirror database.clamav.net

DatabaseOwner vscan

HTTPProxyServer st.mycorp.gov.ua

HTTPProxyPort 3128

LogFacility LOG_MAIL

LogSyslog

NotifyClamd

PidFile /var/lib/clamav/freshclam.pid

UpdateLogFile /var/log/clamav/freshclam.log

Подробнее о параметрах файла /etc/freshclam.conf можно почитать в манах для freshclam.conf (man freshclam.conf).

Естественно, в настройках прокси необходимо указать корректные данные.

Кроме того, нам необходимо, чтоб freshclam автоматически стартовал при запуске системы:

root> ln -s /etc/init.d/freshclam /etc/init.d/rc3.d/K08freshclam

root> ln -s /etc/init.d/freshclam /etc/init.d/rc3.d/S14freshclam

root> ln -s /etc/init.d/freshclam /etc/init.d/rc5.d/K08freshclam

root> ln -s /etc/init.d/freshclam /etc/init.d/rc5.d/S14freshclam

Чтоб не делать это руками, можно использовать «Runlevel Editor» в yast. Указать там автостарт сервиса, да и всех делов...

Теперь нужно установить clamsmtp, приблуда необходима для связи postfix с clamav. В моем случае я выкачал http://memberwebs.com/nielsen/software/clamsmtp/clamsmtp-1.6.tar.gz. Архив распаковал во временную директорию /_tmp/clamsmtpd. Далее устанавливаем:

root> cd /_tmp/clamsmtpd/clamsmtp-1.6

root> ./configure

root> make

root> make check

root> make install

root> mkdir /usr/local/etc

root> cp doc/clamsmtpd.conf /usr/local/etc

root> cd /

root> rm -r /_tmp

Настраиваем этот самый clamsmtp. Его настройки хранятся в файле /usr/local/etc/clamsmtpd.conf. Оригинал сохраняем, исходную копию редактируем:

OutAddress: 10026

Listen: 0.0.0.0:10025

ClamAddress: /var/lib/clamav/clamd-socket

TempDirectory: /tmp

User: vscan

Теперь нужно, чтоб clamsmtpd стартовал при запуске системы...

Качаем http://memberwebs.com/nielsen/software/clamsmtp/contrib/clam_x_rc_script.tar.gz. Это есть скрипт для автостарта clamsmtpd, созданный специально для SuSE. Из архива файлик clamgate копируем в /etc/init.d. После этого редактируем его.

user=clamav меняем на user=vscan

Ставим # (то есть по виндузятному наречию рэмим) перед строчками:

su -m $user -c "$prefix/sbin/clamd"

rc_check

[ -f $piddir/clamd.pid ] && kill `cat $piddir/clamd.pid`

rc_check

checkproc -p $piddir/clamd.pid $prefix/sbin/clamd

rc_check

Смысл сего шага в том, чтоб отключить запуск демона clamd через сей замечательный скрипт. Ну ведь логично – зачем нам это делать здесь, если это уже сделано в другом месте???

Потом выполняем:

root> ln -s /var/lib/clamav /var/run/clamav

root> ln -s /usr/sbin/clamd /usr/local/sbin/clamd

Это делается для того, чтоб удовлетворить требования скрипта по расположению каталогов. Можно конечно руками его порихтовать, но в данном случае работы меньше, да и глюков тоже.

Теперь собственно ставим линки на автозагрузки:

root> ln -s /etc/init.d/clamgate /etc/init.d/rc3.d/K08clamgate

root> ln -s /etc/init.d/clamgate /etc/init.d/rc3.d/S14clamgate

root> ln -s /etc/init.d/clamgate /etc/init.d/rc5.d/K08clamgate

root> ln -s /etc/init.d/clamgate /etc/init.d/rc5.d/S14clamgate

Тут засада есть в том, что yast какого-то перца не дает сделать линки через Runlevel Editor, поэтому придется ручками :). Хотя попробуйте, может Вам даст...

Прикольно получается... Читаеш этот ман, и думаешь, всего и делов то... А как вспомнишь, сколько трахался... Уффф...

Но ведь это еще не все!!!

Донастраиваем postfix. Нам нужно, чтоб проходящую через себя почту он отправлял на clamsmtpd, а тот после проверки на вирусы возвращал ее обратно postfix-у... Опять беремся за файлик /etc/postfix/main.cf. Дописываем туда два параметра:

# Первая строка говорит postfix о том, что необходимо пересылать всю почту через

#сервис #(фильтр) 'scan' на 10025-ый порт, который, как раз, открыт clamsmtpd

content_filter = scan:127.0.0.1:10025

#Вторая строчка говорит о том, чтобы postfix не делал никаких манипуляций с

#адресами до того, как они дойдут до content_filter. Так что получается, что фильтр

#работает с реальными почтовыми адресами, а не с результатами перевода в

#виртуальные псевдонимы, маскарадингом и т.п.

receive_override_options = no_address_mappings

Теперь беремся за файлик /etc/postfix/master.cf. В данном файле описывается, как должны работать демоны postfix (ведь ни для кого не секрет, что postfix – это набор демонов, которые вместе и называются postfix). Дописываем в этот файл следующее:

# AV scan filter (used by content_filter)

scan unix - - n - 16 smtp

-o smtp_send_xforward_command=yes

# For injecting mail back into postfix from the filter

127.0.0.1:10026 inet n - n - 16 smtpd

-o content_filter=

-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks

-o smtpd_helo_restrictions=

-o smtpd_client_restrictions=

-o smtpd_sender_restrictions=

-o smtpd_recipient_restrictions=permit_mynetworks,reject

-o mynetworks_style=host

-o smtpd_authorized_xforward_hosts=127.0.0.0/8

Естественно, после этого необходимо перезапустить postfix. Как это сделать вы уже должны сами сообразить. Если нет, то зря я столько времени распинался ;)

Так, поехали дальше. На obln были настроены какие-то ящики почтовые. Нужно быть готовым к тому, что на нашем сервере тоже понадобится поднимать IMAP4 или POP3 для фиг знает кого. Для этого нам понадобится cyrus-imapd.

Далее будем предполагать, что наша почтовая система должна будет обслуживать домен alexsf.org, помимо локального почтового домена.

Конфигурируем postfix. В файл /etc/main.cf добавляем:

virtual_mailbox_domains = alexsf.org

virtual_alias_maps = hash:/etc/postfix/virtual

virtual_transport = cyrus

Конфигурируем cyrus-imapd. Главный конфиг imap сервера - /etc/imapd.conf. Кроме параметров по умолчанию туда необходимо дописать следующие параметры:

admins: cyrus

altnamespace: yes

autocreatequota: 10000

defaultdomain: mycorp.com.ua

quotawarn: 95

sasl_pwcheck_method: auxprop

sasl_sasldb_path: /etc/sasldb2

timeout: 720

virtdomains: on

В данном случае в параметре admins необходимо указать список учетных записей, которые будут иметь доступ к администрированию почтовых доменов. Если необходимо, чтоб какая-то учетная запись администрировала конкретный почтовый домен – читайте маны по imapd.conf ;)

ВНИМАНИЕ!!! Пользователи, указанные в параметре admins никогда не должны иметь почтовых ящиков и получать почту!!! Можно сложить почтовку!!!

Теперь необходимо пользователю cyrus обеспечить доступ к базе sasl на запись и чтение, так как предполагается, что cyrus будет единственным сервисом, который будет пользоваться этой базой. От пользователя root выполняем:

root> chown cyrus:mail /etc/sasldb2

root> chmod 644 /etc/sasldb2

Тут есть один нюанс. Если в базе нет ни одного пароля, то она не существует. То есть такой файл отсутствует. В таком случае этот шаг нужно будет выполнить после задания пароля для пользователя curys с использованием утилиты saslpasswd2.

Теперь необходимо запустить службы saslauthd и cyrus:

root> /etc/init.d/saslauthd start

root> /etc/init.d/cyrus start

Кроме того, нам необходимо, чтоб saslauthd и cyrus автоматически стартовали при запуске системы:

root> ln -s /etc/init.d/saslauthd /etc/init.d/rc3.d/K15saslauthd

root> ln -s /etc/init.d/saslauthd /etc/init.d/rc3.d/S07saslauthd

root> ln -s /etc/init.d/saslauthd /etc/init.d/rc5.d/K15saslauthd

root> ln -s /etc/init.d/saslauthd /etc/init.d/rc5.d/S07saslauthd

root> ln -s /etc/init.d/cyrus /etc/init.d/rc3.d/K14cyrus

root> ln -s /etc/init.d/cyrus /etc/init.d/rc3.d/S08cyrus

root> ln -s /etc/init.d/cyrus /etc/init.d/rc5.d/K14cyrus

root> ln -s /etc/init.d/cyrus /etc/init.d/rc5.d/S08cyrus

Чтоб не делать это руками, можно использовать «Runlevel Editor» в yast. Указать там автостарт сервиса, да и всех делов...

Ну и меняем пароль пользователю cyrus. Я пока ставлю пароль cyrus, при вводе почтовки в промышленную эксплуатацию необходимо сделать нормальный сложный пароль:

root> passwd cyrus

После этого необходимо внести пользователя cyrus в базу sasl. Делаем это уже под пользователем cyrus (первая команда выполняется от root – это вход в систему под пользователем cyrus):

root> /usr/sbin/saslpasswd2 -c cyrus

root> su cyrus

Ну и теперь создадим почтовый ящик, собственно говоря, ради чего все сие действо и делалось. Допустим, ящик у нас будет zzz@alexsf.org

Сначала под root редактируем /etc/postfix/virtual, добавляем туда строку:

zzz@alexsf.org zzz@alexsf.org

После чего:

root> postmap /etc/postfix/virtual

root> /etc/init.d/postfix reload

После этого логинимся под пользователем cyrus, и делаем следующее:

cyrus> /usr/sbin/saslpasswd2 -c zzz -u alexsf.org

cyrus> cyradm --user cyrus localhost

IMAP password:

localhost> cm user.zzz@alexsf.org

localhost> cm user.zzz.Drafts@alexsf.org

localhost> cm user.zzz.Sent@alexsf.org

localhost> cm user.zzz.Trash@alexsf.org

localhost> sam user.zzz@alexsf.org zzz@alexsf.org write

localhost> sq user.zzz@alexsf.org 10000

Все, теперь у нас есть почтовый ящик zzz@alexsf.org и доступ к нему имеет пользователь zzz@alexsf.org. Не удивляйтесь такому странному имени пользователя – в винде все так же, только скрыто... А так как здесь все руками, то от полных имен пользователей с указаниями домена никуда не денешься, по крайней мере на данном этапе. В ящике есть набор папок по умолчанию, пользователь может создавать свои, какие ему больше понравятся. На ящике стоит квота в 10 Мб. Обратите внимание – в файле /etc/postfix/virtual указывается конкретный ящик. Сделано это для защиты от спама и применимо для маленькой почтовки с небольшим количеством почтовых ящиков. Если это будет громадина вроде облэнерго, то лучше сделать, чтоб перенаправление шло на домен, а не на ящик.

Но и это еще не все. Настраиваем логирование IMAP сервера. Под пользователем root редактируем файл /etc/syslog.conf, добавляем в него строку:

daemon.* /var/log/imap/imap.log

После этого под пользователем root:

root> mkdir /var/log/imap

root> /etc/init.d/syslog restart

В результате все сообщения IMAP сервера будут записываться в файл /var/log/imap/imap.log. Конечно, тот же набор сообщений, что пишется в /var/log/imap/imap.log, будет записываться и в /var/log/messages (основная свалка всего, что происходит в системе), но отключать мы не будем, а то вдруг на уровне daemon еще какие-то демоны используют syslog. Кстати, в доке к cyrus-imapd написано, что он логируется на уровне local6.

Теперь настраиваем ротацию журнальных файлов. В каталоге /etc/logrotate.d создаем файлик imap с таким содержимым:

/etc/logrotate.d/imap

/var/log/imap/*.log {

compress

copytruncate

daily

missingok

notifempty

rotate 100

}

Теперь все файлы в каталоге /var/log/imap каждый день будут упаковываться при помощи gzip и очищаться.

Читать далее