Операционная система: Fedora Core 2.
Внимание! При создании разделов, под swap необходимо выделить не менее 4 Гб! (Требование Trend Micro).
Устанавливаются пакеты: http, php, php+mysql, mysql, mysql-devel, postfix, gcc, gcc-devel, gcc34, gcc34-devel, а также tcl-8.4.5-7.i386.rpm, compat-gcc-7.3-2.96.118.i386.rpm, compat-libstdc++-7.3-2.96.118.i386.rpm, compat-libstdc++-devel-7.3-2.96.118.i386.rpm, compat-gcc-c++-7.3-2.96.118.i386.rpm, compat-db-3.3.11-4.i386.rpm – именно в такой последовательности. Еще необходимо установить libdbi-0.6.5-8.1i386.rpm, libdbi-dbd-mysql-0.6.5-8.1i386.rpm, libdbi-devel-0.6.5-8.1i386.rpm.
Скачать исходники: postfix-2.3-20051217-nonprod.tar.gz, cyrus-sasl-2.1.21.tar.gz, courier-authlib-0.56.tar.bz2, courier-imap-4.03.tar.bz2, mabill.1.02 (как самый стабильный), gps-1.004.tar.gz.
Далее:
1. Создать папку /install.
2. Распаковать туда mabill.1.02 (или какой там найдете).
3. В корневом каталоге апача создать каталог mail и скопировать туда содержимое каталога /install/mabill.1.02, кроме файла /DOC/mabill.sql.
4. Редактируем файл mabill.sql. В разделе CREATE TABLE mail_domains надо изменить строку domain varchar(50) NOT NULL default ‘’, на domain varchar(50) NOT NULL default ‘virtual:’. Сохранить файл в/install/mabill.sql.
Далее инициализируем mysql: service mysqld start.
После его инициализации запускаем mysql и видим приглашение вида:
Mysql>
Пишем следующее:
Mysql>set password for root@localhost=password(‘newpassword’);
Mysql>create database mail;
Mysql>Grant select,insert,delete,update on mail.* to mail@localhost;
Mysql>set password for mail@localhost=password(‘mail’);
Mysql>Grant select on mail.* to postfix@localhost;
Mysql>set password for postfix@localhost=password(‘postfix’);
Пользователь mail нужен для того, чтобы записывать и считывать из базы данные и будет использоваться в Web-интерфейсе.
Mysql> set password for mail@localhost=password(‘mail’);
Установили ему пароль.
Mysql>exit;
Mysql –u root –p < ./install/mabill.sql mail
Password: вводим пароль рута, заданный в начале.
Таким образом, мы создали базу mail с таблицами из файла mabill.sql.
Приступаем к настройке cyrus-sasl.
Распаковываем архив cyrus-sasl-2.1.21.tar.gz в /install. Сyrus-sasl необходимо собрать с поддержкой mysql. Делается это так.
cd cyrus-sasl-2.1.21/
env CPPFLAGS="-I/usr/include/mysql" \
LDFLAGS="-L/usr/lib/mysql -lmysqlclient -lz" \
./configure --with-mysql --enable-login --enable-sql --disable-otp
make
make install
Если все было сделано правильно, то sasl установит свои библиотеки в /usr/local/lib/sasl2. Чтобы postfix мог с ним работать, надо сделать символьные линки в /usr/lib/sasl2:
ln -s /usr/local/lib/sasl2/ /usr/lib/sasl2
ln -s /usr/local/lib/libsasl2.so /usr/lib/libsasl2.so
ln -s /usr/local/lib/libsasl2.so.2 /usr/lib/libsasl2.so.2
В каталоге /usr/lib/sasl2 создаем файл smtpd.conf со следующим содержимым:
Allowplaintext: yes
Sasl_pwcheck_metod: auxprop
Mech_list: PLAIN LOGIN
Sql_engine: mysql
Mysql_user: postfix
Mysql_passwd: postfix
Mysql_hostnames: localhost
Mysql_database: mail
Mysql_statement: select password from mail_users where email=’%u@%r’
Mysql_verbose: yes
Теперь можно переходить к следующему этапу – установке Postfix. Я выбрал версию postfix-2.3-20051217-nonprod.tar.gz, хотя, по-моему, можно и stable. Postfix надо собрать с поддержкой mysql и sasl, для этого необходимо пересобрать makefile.init. Делается это так:
Cd postfix-2.3-20051217-nonprod
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lsasl2'
make
Теперь, если у вас уже был установлен postfix из пакетов, то просто пропустите дальнейший шаг, если же postfix устанавливается впервые, то необходимо создать пользователей для него:
Groupadd postfix
Useradd –g postfix postfix
Groupadd postdrop
Useradd –g postdrop postdrop
После этого можно инсталлировать postfix:
Make install
В процессе инсталляции postfix задаст несколько вопросов, на которые надо ответить утвердительно, на все, чтобы он установился в место по умолчанию. После этого надо найти файл main.cf (/etc/postfix, если вы на все вопросы ответили правильно) и добавить туда следующие строчки:
Myhostname = youredomain.ru
Mydomain = youredomain.ru
Inet_interfaces = all
Mydestination = mysql:/etc/postfix/transport.cf
Unknown_local_recipient_reject_code = 550
Mynetworks_style = host
Mynetworks = 127.0.0.1,192.168.2.0/24
#
Broken_sasl_auth_client = yes
Smtpd_sasl_auth_enable = yes
#
Virtual_mailbox_base = / - это для courier-imap так надо.
Virtual_uid_maps = mysql:/etc/postfix/ids.cf
Virtual_gid_maps = mysql:/etc/postfix/gids.cf
Virtual_mailbox_maps = mysql:/etc/postfix/aliases.cf
Virtual_maps = mysql:/etc/postfix/remote_aliases.cf
Transport_maps = mysql:/etc/postfix/transport.cf
Relay_domains = $transport_maps
Message_size_limit = 10240000
#
Теперь надо создать следующие файлы:
/etc/postfix/ids.cf
User = postfix
Password = postfix
Dbname = mail
Table = mail_users
Select_field = gid
Where_field = email
Hosts = localhost
/etc/postfix/gids.cf
User = postfix
Password = postfix
Dbname = mail
Table = mail_users
Select_field = id
Where_field = email
Hosts = localhost
/etc/postfix/aliases.cf
User = postfix
Password = postfix
Dbname = mail
Table = mail_users
Select_field = maildir
Where_field = email
Hosts = localhost
/etc/postfix/remote-aliases.cf
User = postfix
Password = postfix
Dbname = mail
Table = mail_virtual
Select_field = goto
Where_field = email
Hosts = localhost
/etc/postfix/transport.cf
User = postfix
Password = postfix
Dbname = mail
Table = mail_domains
Select_field = domain
Where_field = domain
Hosts = localhost
Запускаем postfix и смотрим в логи, если все правильно, то ошибок быть не должно.
Сейчас можно приступить к настройке всего вышеустановленного. Чтобы проверить работает ли sasl-авторизация, проделаем следующую telnet-сессию:
telnet localhost 25
220 youredomain ESMTP Postfix
ehlo mail.ru
250-youredomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
если вы видите что-то похожее, значит все работает нормально, можно ехать дальше.
Во-первых, апач.
Чтобы русские буквы в кодировке KOI8-R отображались удобочитаемо, а не крякозябрами, надо подредактировать httpd.conf следующим образом:
DefaultLanguage ru
AddLanguage ru .ru
LanguagePriority ru en …..
AddDefaultCharset KOI8-R
AddCharset KOI8-r .koi8-r .koi8-ru
Перезапускаем сервис: service httpd restart.
Заходим на http://ip_addres/mail/DOC/HELP/crypt.php и генерируем пароль для рута. Если не получается, ищем файлик php.ini и меняем там register_global c off на on, перезапускать сервис httpd обязательно! После того, как пароль сгенерировался, необходимо проделать следующее:
Перейти в директорию, куда скопировали mabill (обычно это /var/www/html/mail), там, в каталоге /config найти файл config.php и отредактировать его следующим образом:
$rootlogin[1]=”root”;
$rootpasswd[1]=”сюда переписать контрольную сумму созданного ранее пароля”;
$sqlhost[“billing”] = “localhost”;
$sqlbase[“billing”] = “mail”;
$sqllogin[“billing”] = “mail”;
$sqlpasswd[“billing”] = “mail”;
$mail_dir=”/usr/spool/имя_домена_”; - в этом случае ящики пользователей будут иметь вид /usr/spool/domain_user, вообще же можно использовать любой каталог.
$mail_gid=”2000”; - в принципе тут может быть любое число, но по умолчанию стоит 2000. Теперь, необходимо сделать следующее: надо поставить на каталог /usr/spool полный доступ для пользователя
На этом, пожалуй, и все, можно пробовать заходить на http://ip_address/mail. Если все сделано правильно, увидите начальную страницу Mabill. Заходите рутом и делаете все, что надо – заводите компанию, домен, администратора этого домена и какого-нить юзверя. После этого проверяем работу postfix. Заходим телнетом на 25 порт вашего сервера:
220 youredomain.ru ESMTP Postfix
Helo youredomain.ru
250 hostname
Mail from: user@youredomain.ru
250 2.1.0 OK
Rcpt to: user@youredomain.ru
250 2.1.5 OK
Data
354 End data with .
Test
.
250 2.0.0 Ok: queued as 440D62CDAA
quit
221 2.0.0 Bye
Если у вас получилось что-то похожее, значит Postfix работает. Лезем в /usr/spool – после вышеприведенных манипуляций там должна создаться папка с именем имя_домена_user, в которую Postfix будет складывать входящую корреспонденцию, принадлежащую user@youredomain.ru.
Теперь можно заняться прикручиванием courier-imap, надо ж чем-то забирать почту из ящиков!
Распаковываем courier-authlib-0.56.tar.bz2 в папку /install. В установке courier-imap есть две хитрости. Первая – выполнять сборку надо от имени любого пользователя, но только не рута. Второе, чтобы все правильно собралось, надо написать следующее:
cd courier-authlib-0.56/
env CPPFLAGS="-I/usr/include/mysql" \
LDFLAGS="-L/usr/lib/mysql -lmysqlclient -lz" \
./configure --without-authvchkpw --without-authdeamon \
--without-authuserdb --without-authpam --without-authldap \
--without-authpwd --without-authshadow --without-authpgsql \
--without-authcustom --without-authpipe --with-authmysql \
--with-authmysql-libs=/usr/lib/mysql \
--with-authmysql-includes=/usr/include/mysql \
--with-redhat
make
make check
su
make install-strip
make install-configure
cp courier-authlib.sysvinit /etc/init.d/courierauthlib
chmod 755 /etc/rc.d/courierauthlib
chkconfig –-add courierauthlib
Редактируем файл /usr/local/etc/authlib/authdaemonrc следующим образом:
Authmodulelist=”authmysql”
Authmodulelistorig=”authmysql”
Daemons=40
Authdaemonvar=/usr/local/var/spool/authdaemon
DEBUG_LOGIN=2
DEFAULTOPTIONS=””
Переходим к файлу /usr/local/etc/authlib/authmysqlrc.
MYSQL_SERVER localhost
MYSQL_NAME postfix
MYSQL_PASSWORD postfix
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE mail_users
MYSQL_CRYPT_PWFIELD password
DEFAULT_DOMAIN youredomain.ru
MYSQL_UID_FIELD gid
MYSQL_GID_FIELD gid
#uid и gid оба должны указывать на gid.
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD ‘/’
MYSQL_NAME_FIELD info
MYSQL_MAILDIR_FIELD maildir
Устанавливаем courier-imap-4.0.3.tar.bz2. Установка этого пакета происходит также, как и предыдущего, то есть НЕ от имени рута.
cd courier-imap-4.0.3
./configure --prefix=/usr/local --with-redhat
make
В процессе выполнения команды make может возникнуть такая ошибка: /usr/bin/ld: cannot find –lselinux. Это означает, что крипт спрашивает у ld библиотеку libselinux.so, возможно, что эта библиотека скрывается под именем libselinux.so.1, которая находится в /lib/. Сделайте символьный линк.
make check
su
make install-strip
make install-configure
cp courier-imap.sysvinit /etc/init.d/imapd
chmod 755 /etc/init.d/imapd
chkconfig –-add imapd
Редактируем файл /usr/local/etc/imapd следующим образом:
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=4
PIDFILE=/var/run/imapd.pid
TCPDOPTS=”-nodnslookup –noidentlookup”
IMAP_CAPABILITY=”IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE”
IMAP_KEYWORDS=1
IMAP_CAPABILITY_ORIG=”IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE”
IMAP_PROXY=0
IMAP_PROXY_FOREIGN=0
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS=”$IMAP_CAPABILITY AUTH=PLAIN”
IMAP_CAPABILITY_TLS_ORIG=”$IMAP_CAPABILITY AUTH=PLAIN”
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_UMASK=022
IMAP_ULIMITD=65536
IMAP_USERLOCKS=1
IMAP_SHAREDINDEXFILE=/usr/local/etc/shared/index
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/sbin/sendmail
HEADERFROM=X-IMAP-SENDER
IMAPDSTART=NO
MAILDIRPATH=maildir
Теперь файл /usr/local/etc/pop3d:
PIDFILE=/var/run/pop3d.pid
MAXDAEMONS=40
MAXPERIP=4
AUTHMODULES=”authdaemond”
AUTHMODULES_ORIG=”authdaemond”
POP3AUTH=”LOGIN PLAIN”
POP3AUTH_ORIG=”LOGIN PLAIN”
POP3AUTH_TLS=”LOGIN PLAIN”
POP3AUTH_TLS_ORIG=”LOGIN PLAIN”
POP3_PROXY=0
PORT=110
ADDRESS=0
TCPDOPTS=”-nodnslookup –noidentlookup”
POP3DSTART=YES
А вот сейчас еще одна хитрость есть. Сhowner каталога юзера и сам id юзера в MYSQL должны совпадать, то есть нам надо создать пользователя, например courier без пароля, открыть файл /etc/passwd и изменить uid и gid этого пользователя на значение, указанное в файле config.php билинга MaBill. После этого надо дать этому пользователю полные права на доступ к папке /usr/spool.
Установка greylist.
Распаковываем gps-1.004.tar.gz в ту же папку install, после чего устанавливаем следующим образом:
cd gps-1.004
make -f Makefile.cvs
./configure
make
make install
После этого создаем в /usr/local/etc/ файл gps.conf со следующим содержимым:
Mode=init
Mode=reverse
Mode=weak
Mode=normal
Dbtype=mysql
Db_host=localhost
Db_username=greylist
Db_password=password
Db_name=greylist
Timeout=3600
Wl_pattern=dbcashed
Wl_network= dbcashed
Wl_recipient=db
Для работы этой программы необходимо создать в mysql базу greylist. Делаем:
mysql -p
> CREATE DATABASE greylist;
> GRANT ALL ON greylist.* TO greylist@localhost;
> SET PASSWORD FOR greylist@localhost=PASSWORD(‘password’);
>exit
Теперь надо создать таблицы в этой базе. Gps делает это автоматически, для этого нужно в файле /usr/local/etc/gps.conf раскомментировать строку mode=init, остальные строки, начинающиеся с mode закомментировать:
Mode=init
#mode=reverse
#mode=weak
#mode=normal
Теперь надо запустить gps:
/usr/local/bin/gps –v /usr/local/etc/gps.conf
Подождать пару секунд и отменить выполнение (Ctrl+C). Смотрим в папку, где mysql хранит свои базы, создалась ли база с именем greylist. Если да, то едем дальше, если нет, вчитываемся сначала.
Если все прошло успешно, закомментируем строку Mode=init в файле /usr/local/etc/gps и раскомментируем mode=normal:
#Mode=init
#mode=reverse
#mode=weak
mode=normal
Теперь надо указать gps, что почта от нашего домена и из локальной сети освобождается от применения функции greylist.
mysql -p
use greylist;
> insert into network values ('192.168.0.','my home network');
> insert into recipient values ('address1@mydomain.com','this user wants his spam');
> exit
К сожалению, команду №2 надо повторить для всех почтовых ящиков вашего домена. Я не силен в PHP, а то можно было бы включить эту команду в файл admin/mail_add.php.
Теперь переходим к редактированию конфигурационных файлов Postfix. В main.cf добавляем следующие строчки:
smtpd_recipient_restrictions =
reject_unauth_destination
check_policy_service unix:private/policy
В master.cf пишем вот такое:
policy unix - n n - - spawn
user=nobody argv=/usr/local/bin/gps /usr/local/etc/gps.conf
т.е. конфиг должен выглядеть примерно так:
smtp inet n - n - - smtpd
policy unix - n n - - spawn
user=nobody argv=/usr/local/bin/gps /usr/local/etc/gps.conf
далее всё остальное, созданное по умолчанию.
Теперь можно рестартить сервер.
После рестарта проводим полный тест: создаем юзеря, настраиваем свой любимый почтовый клиент и пробуем как оно работает. Если все нормально – едем дальше, если нет – втыкаем в логи и читаем сначала.
Установка trend micro.
Распаковываем imss55linux-1123.tar.gz в любое место. Получается две папки - IMSS55_LX_GM и IMSS55_LX_SP2. Нас интересует только первая - IMSS55_LX_GM, открываем ее и запускаем isinst. Долго читаем лицензионное соглашение, нажимая на enter. Тут главное, не пропустить вопрос типа Желаете ли вы установить продукт? Надо ответить yes и снова нажать на enter. В процессе инсталлятор задаст множество глупых и не очень вопросов, на которые надо ответить. Самое главное – на вопрос поставить ли Web-interface, обязательно ответить yes, на вопрос будете ли вы использовать Postfix, ответить да, на остальные вопросы тоже ответить нет. Если вы установили в систему все вышеперечисленные пакеты, то антивирус установится корректно и без ошибок. В конце инсталляции, вам будет задан вопрос насчет того, желаете ли вы зарегистрировать свой продукт. Я рекомендую поставить там yes и потратить 3-4 минуты на ввод регистрационного кода, чтобы потом уже не заморачиваться, хотя, конечно, это можно сделать и потом, через Web-interface программы. Примечание: для антивируса и антиспама, регистрационный код один и тот же, а именно вот этот: AP-J9HN-533KS-JFYBJ-235UD-L3YMC-GYTZK.
По завершении установки можно перезагрузить компьютер, с тем, чтобы порверить, корректно ли будут стартовать сервисы.
Во время перезагрузки мы вдруг видим, что сервис CCGI не стартовал, то есть невозможно получить доступ к web-интерфейсу антивируса. Замечательно. Лезем в логи и находим там, что для запуска ccgi нужна библиотека libdb.so.2. Внимательно втыкаем во все папки, где может находиться эта хреновина, и убеждаемся таки, что ее нигде нету. Зато в папке /lib обнаруживаем библиотеку libdb2.so.3 и думаем, что она, наверное, подойдет (версия все-таки более поздняя). Делаем на нее символьный линк или, если в лом, копируем ее туда же под именем libdb.so.2, а потом еще в папку /usr/lib. Вот теперь компьютер снова можно перезагрузить. В процессе загрузки убеждаемся, что все сервисы стартовали и теперь до нашего антивируса можно достучаться по web- интерфейсу. Стучимся: http://<ваш сервер>:8081/IMSS.html и видим, что оно хочет пароль. Так как по умолчанию пароля там никакого нету, тыкаем в кнопку ОК и вываливаемся в основное меню. В принципе на этом можно пока остановиться и приступить непосредственно к прикручиванию всего этого хозяйства к Postfix’у. Для этого нужно в изменить файлы main.cf и master.cf следующим образом:
/etc/postfix/main.cf:
default_process_limit=200
imss_timeout=10m
imss_connect_timeout=1s
content_filter=imss:localhost:10025
imss_destination_recipient_limit=200
imss_destination_concurrency_limit=20
/etc/postfix/master.cf:
Imss unix - - n - - smtp
disable_dns_lookups=yes
smtp_connect_timeout=$imss_connect_timeout
smtp_data_done_timeout=$imss_timeout
localhost:10026 inet n - n - 20 smtpd
content_filter=
smtpd_timeout=$imss_timeout
local_recipient_maps=
myhostname=localhost.$mydomain
После этого перезапускаем Postfix (а лучше перезагрузить компьютер чтобы убедиться, что все работает). Собственно на этом основную работу можно считать законченной, все дальнейшие действия сводятся к тонкой настройке антивируса и, возможно, Postfix’a.
Последние комментарии
10 лет 22 недели назад
10 лет 41 неделя назад
10 лет 51 неделя назад
10 лет 51 неделя назад
11 лет 40 недель назад
11 лет 40 недель назад
11 лет 41 неделя назад
11 лет 41 неделя назад
11 лет 41 неделя назад
11 лет 43 недели назад