Настройка 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/
root> mkdir /var/
root> chown vscan:vscan /var/
Настраиваем clamav. Все настройки clamav находятся в файле /etc/clamav.conf:
# ArchiveBlockMax
ArchiveMaxFileSize 1M
ArchiveMaxRecursion 5
ArchiveMaxFiles 1000
FixStaleSocket
Foreground
LocalSocket /var/lib/clamav/clamd-socket
LogFacility
LogFile /var/
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
LogSyslog
NotifyClamd
PidFile /var/lib/clamav/freshclam.pid
UpdateLogFile /var/
Подробнее о параметрах файла /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
ЕСЛИ ПОСЛЕ ЭТОГО ВСЕ ЗАРАБОТАЛО – ПОЗДРАВЛЯЮ ВАС, ВЫ ШАМАНЫ!!! ;)
Комментариев нет:
Отправить комментарий