2008-08-08

Замена 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 и очищаться.

Читать далее

Настройка postfix+UUCP, с использованием мультипортовки MOXA


Настройка postfix+UUCP, с использованием мультипортовки MOXA

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

Связь: fa13@bk.ru

Дата создания: 15 июня 2006

Постоянный адрес статьи: http://phas13.blogspot.com/2008/08/postfixuucp-moxa.html

Настройка платы MOXA

Должны быть установлены все возможные компиляторы и исходники ядра.

Устанавливаем в системный блок сервера плату мультипортовки MOXA C32081T, после чего устанавливаем драйвера.

Качаем с сайта www.moxa.com дровишки. Далее все описание будет исходить из предположения, что существует каталог /opt/moxa, к который мы скопировали скачаный архив mxdrv.tgz (/opt/moxa/mxdrv.tgz).

Логинимся в систему под root, после чего:

root> cd /opt/moxa

root> tar xvfz mxdrv.tgz

Перед установкой драйверов для MOXA необходимо создать tty устройства:

root> cd /opt/moxa/mxdrv/driver

root> ./mxmknod

На все задаваемые вопросы жмем ENTER, так как предлагаемое по умолчанию нас устраивает. Далее выполняем компиляцию драйверов:

root> cd /opt/moxa/mxdrv

root> make clean

root> make install

После этого загружаем драйвера в ядро:

root> modprobe moxa

root> cd /opt/moxa/mxdrv/driver

root> ./moxaload y

Настраиваем автоматическую загрузку драйверов в ядро при запуске системы. Для этого сначала проверяем скрипт rc.moxa. Если всё делалось по шагам, то в данный момент драйвера MOXA загружены в ядро. Проверяем:

root> lsmod | grep moxa

Если возвратило что-то типа:

moxa 79532 0

, значит драйвера загружены. Выгружаем их:

root> rmmod moxa

Проверяем скрипт rc.moxa:

root> cd /opt/moxa/mxdrv/driver

root> ./rc.moxa

В результате нам должна быть выдана следующая информация (учтите, MOXA при этом должна быть включена, иначе нам удачи не видать. В принципе, и без нее будет нормально, если все будет делаться правильно, но для 100% уверенности лучше включить):

Intellio Series device driver (Ver. 5.5)

Downloading ......

Board 1: MOXA C320 Turbo/PCI(BusNo=3,DevNo=2) is found.

MOXA Intellio Family driver loaded

Значит скрипт rc.moxa работает правильно.

Устанавливаем его на выполнение при загрузке:

root> cp ./rc.moxa /etc/rc.d

root> ln -s /etc/init.d/rc.moxa /etc/init.d/rc3.d/K20rc.moxa

root> ln -s /etc/init.d/rc.moxa /etc/init.d/rc3.d/S20rc.moxa

root> ln -s /etc/init.d/rc.moxa /etc/init.d/rc5.d/K20rc.moxa

root> ln -s /etc/init.d/rc.moxa /etc/init.d/rc5.d/S20rc.moxa

Все, на этом установка драйверов заканчивается. Перегружаемся и проверяем, что после перезагрузки драйвера MOXA в ядро загружены. Если что-то не получилось, значит либо невнимательно делали, либо без бубна не обойтись ;).

Осталось только прикрутить модемы на мультипортовку, и ехать дальше.

Настройка MGETTY

Итак, mgetty будет заниматься перехватом вызовов, приходящих на модемы. Если сейчас позвонить на модемный номер, то модем трубку не возьмет. А зачем? Ему ведь еще никто не сказал, что это неправильно ;).

В конфигурации mgetty нас интересуют два файла:

/etc/mgetty+sendfax/login.config

/etc/mgetty+sendfax/mgetty.config

Поэтому первым делом мы сохраняем оригиналы файлов, а потом редактируем.

В файле login.config удаляем все (чтоб было поменьше мусора, который мы всегда сможем восстановить из резервной копии) и прописываем следующее:

uu* uucp @ /usr/sbin/uucico -l -u @

Дальше редактируем файл /etc/mgetty+sendfax/mgetty.config. Точно также удаляем все лишнее. Оставляем следующее:

debug 4

fax-id

speed 115200

port-owner uucp

port-group uucp

port-mode 0664

port ttyA11

data-only y

port ttyA12

data-only y

port ttyA13

data-only y

port ttyA14

data-only y

port ttyA15

data-only y

port ttyA16

data-only y

#port ttyA17

#data-only y

#port ttyA18

#data-only y

#port ttyA21

#data-only y

#port ttyA22

#data-only y

#port ttyA23

#data-only y

#port ttyA24

#data-only y

#port ttyA25

#data-only y

#port ttyA26

#data-only y

#port ttyA27

#data-only y

#port ttyA28

#data-only y

Внимание!!! Неиспользуемые порты закомментированы. Номер порта состоит из номера секции мультипортовки и собственно номера порта. На данный момент предполагается, что подключено 6 модемов. При установке новых модемов необходимо прописать необходимые порты в данном файле. Иначе работать не будет.

Теперь настраиваем, чтоб mgetty автоматом запускалась на настроенных портах. Для этого редактируем файл /etc/inittab. В конец файла добавляем следующие строки:

A11:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA11

A12:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA12

A13:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA13

A14:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA14

A15:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA15

A16:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA16

#A17:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA17

#A18:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA18

#A21:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA21

#A22:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA22

#A23:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA23

#A24:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA24

#A25:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA25

#A26:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA26

#A27:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA27

#A28:23:respawn:/usr/sbyn/mgetty -x0 -s 115200 ttyA28

Внимание!!! Неиспользуемые порты необходимо закомментировать.

После этого перегружаемся и проверяем, запущено ли mgetty на указанных портах:

root> ps ax | grep mgetty

В результате мы должны получить примерно следующее:

10591 ? Ss 0:00 /usr/sbin/mgetty -x0 -s 115200 ttyA11

10590 ? Ss 0:00 /usr/sbin/mgetty -x0 -s 115200 ttyA12

10584 ? Ss+ 0:00 /usr/sbin/mgetty -x0 -s 115200 ttyA13

10583 ? Ss+ 0:00 /usr/sbin/mgetty -x0 -s 115200 ttyA14

10582 ? Ss+ 0:00 /usr/sbin/mgetty -x0 -s 115200 ttyA15

10581 ? Ss+ 0:00 /usr/sbin/mgetty -x0 -s 115200 ttyA16

10618 pts/0 S+ 0:00 grep mgetty

Теперь звоним на модем и проверяем, чтобы он взял трубку. Если нет – берем в руки бубен, прыгаем, бубним, и думаем, что провтыкали...

Настройка UUCP

Первым делом идем в папку /etc/uucp. По умолчанию, даже после свежей установки uucp, эта папка пустая. А если не пустая - то все равно ее содержимое никакой пользы нам не принесет. Так что с чистой совестью все из нее удаляем, предварительно сохранив где-нибудь... Мало ли что ;)

После этого создаем следующий набор файлов, пока пустых (указаны абсолютные пути):

/etc/uucp/config

/etc/uucp/passwd

/etc/uucp/port

/etc/uucp/sys

Меняем права доступа к каталогам uucp:

root> chown uucp:uucp /etc/uucp -R

Редактируем файл /etc/uucp/config. В этом файле описывается общая конфигурация uucp сервера:

sysname hronos

max-uuxqts 4

#debug all

Редактируем файл /etc/uucp/passwd. В этом файле перечисляются пользователи и пароли для доступа к uucp серверу:

uubzres kajshd

uubrres kjhKhgyw

uuvares L345jabr

uuvlres Djhu&*fy

uuvrres JGH&JKJyf

uuvpres uuhsgjd7

uugnres Cegtlsdkhvyjuj

uugpres hjVtkbz';l

uugsres lgjcktqqwe

uuivres thytityfkeqwe3

uuklres jpfdh3737h

uukvres xegg2hw

uunvres golwwe3

uunsres brjdcrqsjdhd2

uunkres jvjnbyfa,smds28

uuntres nlfq,sjd2

uuskres rjntrf.as1243d

uucrres jujyasd.a;l3

uucpres yjdbyfas,d92

uuksdi thyjqas,md9i2

Редактируем файл /etc/uucp/port:

port TCP

type tcp

service 540

Редактируем файл /etc/uucp/sys. В этом файле описываются т.н. системы uucp:

call-login *

call-password *

time never

local-send /

local-receive /

protocol gGt

system brres

called-login uubrres

system bzres

called-login uubzres

system cpres

called-login uucpres

system crres

called-login uucrres

system gnres

called-login uugnres

system gpres

called-login uugpres

system gsres

called-login uugsres

system ivres

called-login uuivres

system klres

called-login uuklres

system kvres

called-login uukvres

system nkres

called-login uunkres

system nsres

called-login uunsres

system ntres

called-login uuntres

system nvres

called-login uunvres

system skres

called-login uuskres

system vares

called-login uuvares

system vlres

called-login uuvlres

system vpres

called-login uuvpres

system vrres

called-login uuvrres

system ksdi

called-login uuksdi

Для добавления еще одной системы uucp необходимо добавить набор из последних 2-х строк, с учетом имени добавляемой системы и домена.

После этого проверяем корректность конфигурационных файлов uucp:

root> uuchk

Внимательно смотрим логи. Если ошибок нет - конфиги написаны правильно.

Очередь в uucp можно проверить так:

uucp> uustat -a

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

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.8.tar.gz. Архив распаковал во временную директорию /_tmp/clamsmtpd. Далее устанавливаем:

root> cd /_tmp/clamsmtpd/clamsmtp-1.8

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

ВНИМАНИЕ!!! Не в коем случае нельзя менять права доступа к файлам параметров postfix и давать возможность записи в них кому-нибудь кроме root:root!!!

Базовые параметры почтового сервера PostFIX настраиваются в конфигурационном файле main.cf. При добавлении или изменении параметра необходимо следить, чтоб параметр не повторялся. Кроме параметров по умолчанию, приписаных в этом файле при установке, дописываем и модифицируем следующие:

inet_interfaces = all

local_recipient_maps =

mailbox_size_limit = 0

message_size_limit = 1024000

mydestination = $myhostname, localhost.$mydomain,

nkres.mydomain.com,

brres.mydomain.com,

bzres.mydomain.com,

cpres.mydomain.com,

crres.mydomain.com,

gnres.mydomain.com,

gpres.mydomain.com,

gsres.mydomain.com,

ivres.mydomain.com,

klres.mydomain.com,

kvres.mydomain.com,

nsres.mydomain.com,

ntres.mydomain.com,

nvres.mydomain.com,

skres.mydomain.com,

vares.mydomain.com,

vlres.mydomain.com,

vpres.mydomain.com,

vrres.mydomain.com

mydomain = mydomain.com

myhostname = bluebird.mydomain.com

mynetworks = 127.0.0.0/8 10.1.1.0/28 10.1.11.0/28

# add for clamav

content_filter = scan:127.0.0.1:10025

receive_override_options = no_address_mappings

После этого проверяем корректность файла параметров:

root> postfix check

Если никаких ошибок небыло выдано - значит синтаксис файла корректен.

Определение того, по какому транспорту почта будет доставляться в почтовые домены, определенные в параметре mydestination, происходит в файле /etc/postfix/transport:

brres.mydomain.com uucp:brres

bzres.mydomain.com uucp:bzres

cpres.mydomain.com uucp:cpres

crres.mydomain.com uucp:crres

gnres.mydomain.com uucp:gnres

gpres.mydomain.com uucp:gpres

gsres.mydomain.com uucp:gsres

ivres.mydomain.com uucp:ivres

klres.mydomain.com uucp:klres

kvres.mydomain.com uucp:kvres

nkres.mydomain.com uucp:nkres

nsres.mydomain.com uucp:nsres

ntres.mydomain.com uucp:ntres

nvres.mydomain.com uucp:nvres

skres.mydomain.com uucp:skres

vares.mydomain.com uucp:vares

vlres.mydomain.com uucp:vlres

vpres.mydomain.com uucp:vpres

vrres.mydomain.com uucp:vrres

ksdi.mydomain.com uucp:ksdi

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

root> postmap /etc/postfix/transport

Теперь беремся за файлик /etc/postfix/master.cf. Дописываем в этот файл следующее:

# 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:

root> /etc/init.d/postfix restart


ЕСЛИ ПОСЛЕ ЭТОГО ВСЕ ЗАРАБОТАЛО – ПОЗДРАВЛЯЮ ВАС, ВЫ ШАМАНЫ!!! ;)



Читать далее