Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  FreeBSD Mail Howto
  exim & dovecot
  exim & courier-imap
  squirrelmail
  exim + saslauthd + courier-imap
  postfix -> exim
  sendmail -> exim
  imapsync
  Postfix + LDAP
  maildrop & postfix
  DSPAM
  Exim + LDAP
  ISPmanager
  Backup MX
  exim + exchange
  exim + dovecot + win2003 AD
  RoundCube
  qmail-ldap + AD
  spamooborona
  exim&dovecot + fetchmail + SSL
  Postfix + DBMail
  Mailgraph
  smfsav
  Exim+PgSQL
  Postfix + Dovecot + Clamav + SpamAssasin + LDAP vs MYSQL
  Simplemail Admin
  MTA qmail full install
  OpenLDAP адресная книга
  POSTFIX Статистики
  Backup MX (exim)
  Exim + dovecot + PgSQL + web
  Exim+dovecot2+dspam
  Возможности Dovecot 2
  Dovecot2 configfiles RUS
  Почтовый сервер по шагам ч.1
  Почтовый сервер по шагам ч.2
  Почтовый сервер по шагам ч.3
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> почтовые системы —> Postfix + DBMail

Почтовая система Postfix + DBMail + SASL2 + TLS + DSpam + ClamAV + RoundCubeWebMail

Автор: zheromo.


Готовимся

Имеем свежеустановленную фряху 7.0 AMD64

Обновляем порты
# portsnap fetch extract update

Для удобства поставим mc
# cd /usr/ports/misc/mc
# make install clean

Опции оставил по дефолту.

Устанавливаем MySQL
# cd /usr/ports/databases/mysql51-server
# make install clean

Устанавливаем Apache
# cd /usr/ports/www/apache22
# make install clean

Опции оставил по умолчанию, добавил только MYSQL

Включаем SSL
# cp /usr/local/etc/apache22/extra/httpd-ssl.conf
# /usr/local/etc/apache22/Includes/httpd-ssl.conf

Генерируем сертификат
# cd /usr/local/etc/apache22/
# openssl req -new -x509 -days 3650 -nodes -out server.crt -keyout server.key

Рихтуем rc.conf
# echo 'mysql_enable="YES"' >> /etc/rc.conf
# echo 'apache22_enable="YES"' >> /etc/rc.conf

Перезагружаемся.
# reboot

Меняем пароль рута в MySQL-e
# mysqladmin -u root password '<root_password>'

 
 

Установка DBMail

Устанавливаем DBMail
# cd /usr/ports/mail/dbmail
# make install clean

Выбираем опции MYSQL SIEVE.

Создаем окружение для DBMail-а
# mysql -uroot -p
> CREATE DATABASE dbmail default character set "UTF8";
> GRANT ALL ON dbmail.* to dbmail@localhost identified by '<pass>';
> quit

# mysql -udbmail -p dbmail < /usr/local/share/dbmail/mysql/create_tables.mysql

Правим конфиг DBMaila /usr/local/etc/dbmail.conf

Изменяем строки
driver     = mysql
authdriver = sql
sqlsocket  = /tmp/mysql.sock
pass       = <pass>

Проверяем, что все нормально
# /usr/local/sbin/dbmail-util -a

Правим файл /etc/crontab для запуска административных утилит DBMail-a
Добавляем строки:
10 0 * * * root /usr/local/sbin/dbmail-util -a -y >> /dev/null
10 1 * * * root /usr/local/sbin/dbmail-util -p -y >> /dev/null

Рихтуем /etc/rc.conf
# echo 'dbmail_imapd_enable="YES"' >> /etc/rc.conf
# echo 'dbmail_pop3d_enable="YES"' >> /etc/rc.conf
# echo 'dbmail_lmtpd_enable="YES"' >> /etc/rc.conf

Запускаем службы DBMaila
# /usr/local/etc/rc.d/dbmail-imapd start
# /usr/local/etc/rc.d/dbmail-pop3d start
# /usr/local/etc/rc.d/dbmail-lmtpd start

Смотрим есть ли ошибки
# tail /var/log/dbmail.err

Создадим тестового пользователя:
# dbmail-users -a test -w password
# dbmail-users -c test -s test@mydomain.ru
# dbmail-users -c test -m 10M

 
 
Защитим соединения со службами DBMail-a с помощью stunnel
# cd /usr/ports/security/stunnel/
# make install clean

Выбираем опции по умолчанию

# cd /usr/local/etc/stunnel
# cp stunnel.conf-sample stunnel.conf

Создаем сертификат:
# openssl req -new -x509 -days 3650 -nodes -out mail.pem -keyout mail.pem

Отвечаем на вопросы, в принципе все должно быть понятно

Создаем папки:
# mkdir /var/tmp/stunnel
# touch /var/tmp/stunnel/stunnel.pid
# chown -R stunnel:nogroup /var/tmp/stunnel

Правим конфиг /usr/local/etc/stunnel.conf

Изменяем строку
sslVersion = all

Комментируем секцию [ssmtp]

Запускаем
# /usr/local/etc/rc.d/stunnel start

Рихтуем rc.conf:
# echo 'stunnel_enable="YES"' >> /etc/rc.conf
# echo 'stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"' >> /etc/rc.conf

 
 
Установка Postfix

Устанавливаем Postfix
# cd /usr/ports/mail/postfix
# make install clean

Выбираем опции PCRE SASL2 TLS MYSQL

На вопросы о добавлении пользователя postfix в группу mail и добавлении в mailer.conf отвечаем положительно.

Правим конфиги Postfix-а
В /usr/local/etc/postfix/main.cf изменяем строки:
# INTERNET HOST AND DOMAIN NAMES
myhostname = mx.kscom.ru
mydomain = kscom.ru
# SENDING MAIL
myorigin = $mydomain
# RECEIVING MAIL
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# TRUST AND RELAY CONTROL
mynetworks_style = subnet
mynetworks = 10.0.0.0/8, 127.0.0.0/8
# SHOW SOFTWARE VERSION OR NOT
smtpd_banner = $myhostname ESMTP $mail_name

 
   
Соединяем DBMail c Postfix-ом:

в /etc/postfix/master.cf добавляем:
dbmail-lmtp     unix    -       -       n       -       -       lmtp -v
  -o disable_dns_lookups=yes

в /usr/local/etc/postfix/main.cf соответственно:
# DELIVERY TO MAILBOX
mailbox_transport = dbmail-lmtp:localhost:24
#mailbox_transport = dbmail-smtp:
#fallback_transport =

#REJECTING MAIL FOR UNKNOWN LOCAL USERS
local_recipient_maps = mysql:/usr/local/etc/postfix/sql-recipients.cf
unknown_local_recipient_reject_code = 550

Создадим в MySQL-е пользователя:
# mysql -uroot -p
> GRANT SELECT ON dbmail.* TO postfix@localhost IDENTIFIED BY '<postfix_pass>';
> quit

Создадим файл /usr/local/etc/postfix/sql-recipients.cf со следующим содержимым:
user = postfix
password = <postfix_pass>
hosts = localhost
dbname = dbmail
table = dbmail_aliases
select_field = alias
where_field = alias 

Рихтуем /etc/rc.conf
# echo 'sendmail_enable="NO"' >> /etc/rc.conf
# echo 'sendmail_submit_enable="NO"' >> /etc/rc.conf
# echo 'sendmail_outbound_enable="NO"' >> /etc/rc.conf
# echo 'sendmail_msp_queue_enable="NO"' >> /etc/rc.conf
# echo 'postfix_enable="YES"' >> /etc/rc.conf

Запускаемся
# rehash
# newaliases
# ln -s /etc/mail/aliases.db /etc/aliases.db
# postmap /usr/local/etc/postfix/transport
# postfix start

     
       
Авторизация SASL2+TLS

Устанавливаем sasl2:
# cd /usr/ports/security/cyrus-sasl2

Удаляем, первоначально пакет поставился по зависимости от Postfix-a с неправильными опциями. По идее, sasl надо было поставить раньше Postfix-a.
# make deinstall
# make config

Выбираем опции: MYSQL AUTHDEMOND LOGIN PLAIN CRAM DIGEST
make install clean

Генерируем сертификат для Postfix-a:
# mkdir /usr/local/etc/postfix/ssl
# cd /usr/local/etc/postfix/ssl
# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650

     
 
Настраиваем TLS.
 
Добавляем в /usr/local/etc/postfix/main.cf слежующее:
# TLS
smtp_use_tls = yes
smtpd_use_tls = yes 
smtp_tls_note_starttls_offer = yes 
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.pem
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.pem
smtpd_tls_CAfile = /usr/local/etc/postfix/ssl/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Перезагружаем Postfix
# postfix reload

Проверяем:
# telnet <postfix_ip_address> 25
Trying <postfix_ip_address>...
Connected to <postfix_ip_address>.
Escape character is '^]'.
220 mx.kscom.ru ESMTP Postfix
EHLO example.com
250-mx.kscom.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Смотрим что появилась 250-STARTTLS значит, вроде все нормально. Настраиваем авторизацию.

Создаем файл /usr/local/lib/sasl2/smtpd.conf со следующим содержимым:
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: digest-md5 cram-md5 login plain
sql_engine: mysql
sql_hostnames: localhost
sql_user: postfix
sql_passwd: <postfix_pass>
sql_database: dbmail
sql_select: select passwd from dbmail_users where userid='%u'
sql_verbose: yes

Добавляем в /usr/local/etc/postfix/main.cf следующее:
# SASL
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = 

В файле /usr/local/etc/postfix/master.cf расскоментируем секцию smtps

Перезагружаем Postfix
postfix reload

Проверяем:
# telnet <postfix_ip_address> 25
Trying <postfix_ip_address>...
Connected to <postfix_ip_address>.
Escape character is '^]'.
220 mx.kscom.ru ESMTP Postfix
EHLO example.com
250-mx.kscom.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Видим AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
Вроде все
   
   
Антиспам фильтр DSpam

Подготавливаем
# cd /usr/ports/mail/dspam
# make config

Выбираем опции: SYSLOG DEBUG VERBOSE_DEBUG DAEMON CLAMAV CLAMAV_LOCAL MYSQL51 MYSQL_COMPRESS MYSQL_LOCAL VIRT_USERS LONG_USERNAMES POSTFIX_MBC CGI

Устанавливаем
# make install clean

При установке автоматом подсосется ClamAV

Создаем базу и пользователя
# mysql -uroot -p
> CREATE DATABASE dspam default character set "UTF8";
> GRANT ALL ON dspam.* to dspam@localhost identified by '<dspam_pass>';
> quit
# mysql -udspam -p dspam < /usr/local/share/examples/dspam/mysql/mysql_objects-speed.sql
# mysql -udspam -p dspam < /usr/local/share/examples/dspam/mysql/virtual_users.sql

Правим конфиг DSpam-a /usr/local/etc/dspam.conf

Настраиваем соединение с MySQL
MySQLServer    /tmp/mysql.sock
MySQLPort
MySQLUser      dspam
MySQLPass      <dspam_pass>
MySQLDb        dspam
MySQLCompress  true

А также
MySQLVirtualTable           dspam_virtual_uids
MySQLVirtualUIDField        uid
MySQLVirtualUsernameField   username

Конфигурируем dspam как сервер
ServerMode		auto
ServerParameters        "--deliver=innocent"
ServerIdent             "localhost.localdomain"
ServerPID               /var/run/dspam.pid
ServerDomainSocketPath  "/tmp/dspam.sock"

Настраиваем, куда dspam будет отдавать проверенную почту
DeliveryHost        127.0.0.1
DeliveryPort        10026
DeliveryIdent       localhost
DeliveryProto       SMTP

Добавляем строки
ParseToHeaders on
ChangeModeOnParse on
ChangeUserOnParse full

Рихтуем rc.conf
# echo 'dspam_enable="YES"' >> /etc/rc.conf
# echo 'dspam_debug="YES"' >> /etc/rc.conf

Чтобы DSPAM заработал пришлось ребутнуться.
# reboot

Правим /usr/local/etc/postfix/master.cf
smtp      inet  n       -       n       -       -        smtpd
  -o content_filter=lmtp:unix:/tmp/dspam.sock
localhost:10026 inet  n -       n       -       -        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=127.0.0.0/8
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8

 

Прикручиваем антивирус

Редактируем /usr/local/etc/clamd.conf

Расскомментируем строки
TCPSocket   3310
TCPAddr     127.0.0.1

Редактируем dspam.conf
ClamAVPort	 3310
ClamAVHost	 127.0.0.1
ClamAVResponse spam

Рихтуем rc.conf
#echo 'clamav_clamd_enable="YES"' >> /etc/rc.conf
# echo 'clamav_freshclam_enable="YES"' >> /etc/rc.conf

Запускаемся
# /usr/local/etc/rc.d/clamav-freshclam start
# /usr/local/etc/rc.d/clamav-clamd start
# /usr/local/etc/rc.d/dspam restart

Готово
 
 
Обучаем DSPAM

Особая благодарность Евгению Прокопьеву за его скрипт обучения DSPAM-a.
На его основе мы создадим скрипт dspam-learn

#!/usr/local/bin/python

# Copyright (C) 2008 Eugene Sazonov <zheromo at mail dot ru>
# Modify for use with MySQL and spam/ham training
# Original source: http://osdir.com/ml/linux.altlinux.sysadmins/2007-01/msg00147.html
#
#
# Copyright (C) 2006 Eugene Prokopiev <enp at altlinux dot org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

import MySQLdb as db
import sys, os, getopt, email.Parser, re

def export(connection):

parser = email.Parser.Parser()
from_extractor = re.compile(r"[<>]")

cursor_mailboxes = connection.cursor()
cursor_messages = connection.cursor()
cursor_messageblks = connection.cursor()
cursor_modify = connection.cursor()

sql_mailboxes = """select distinct alias from dbmail_aliases"""

sql_messages = {

'spam': """ select message_idnr, internal_date from dbmail_aliases
inner join dbmail_users on dbmail_aliases.deliver_to = dbmail_users.user_idnr
inner join dbmail_mailboxes on dbmail_users.user_idnr = dbmail_mailboxes.owner_idnr
inner join dbmail_messages on dbmail_mailboxes.mailbox_idnr = dbmail_messages.mailbox_idnr
inner join dbmail_physmessage on dbmail_messages.physmessage_id = dbmail_physmessage.id
where dbmail_messages.spam_flag=0
and dbmail_messages.status < 2
and dbmail_mailboxes.name = 'Spam'
and dbmail_aliases.alias = %s order by message_idnr;
""",

'ham' : """select message_idnr, internal_date from dbmail_aliases
inner join dbmail_users on dbmail_aliases.deliver_to = dbmail_users.user_idnr
inner join dbmail_mailboxes on dbmail_users.user_idnr = dbmail_mailboxes.owner_idnr
inner join dbmail_messages on dbmail_mailboxes.mailbox_idnr = dbmail_messages.mailbox_idnr
inner join dbmail_physmessage on dbmail_messages.physmessage_id = dbmail_physmessage.id
where dbmail_messages.spam_flag=1
and dbmail_messages.ham_flag=0
and dbmail_messages.status < 2
and dbmail_mailboxes.name != 'Spam'
and dbmail_aliases.alias = %s order by message_idnr;
""" }

sql_messageblks = """
select messageblk, is_header from dbmail_messageblks
inner join dbmail_messages on dbmail_messageblks.physmessage_id = dbmail_messages.physmessage_id
where message_idnr = %s order by dbmail_messageblks.messageblk_idnr
"""

def process(spam_class):
count = 0
cursor_messages.execute(sql_messages[spam_class], alias)
for message_idnr, internal_date in cursor_messages.fetchall():
count = count + 1
dspam = os.popen(("/usr/local/bin/dspam --class=%s --source=error --user '%s' --mode=teft --feature=chained,noise" % (spam_class,alias,) ), "w")
cursor_messageblks.execute(sql_messageblks, (message_idnr,))
for messageblk, is_header in cursor_messageblks.fetchall():
if (is_header == 1):
from_header = from_extractor.split(parser.parsestr(messageblk).get("From"))
if (len(from_header) == 1):
from_header = from_header[0]
elif (len(from_header) == 3):
from_header = from_header[1]
else:
from_header = "-"
print "Processing message from %s ..." % from_header
dspam.write("From "+from_header+" "+internal_date.strftime("T%Y-%m-%d %H:%M:%S")+"\n")
dspam.write(messageblk+"\n")
cursor_modify.execute("update dbmail_messages set %s_flag=1 where message_idnr=%%s" % spam_class, (message_idnr,))
dspam.close()
print "Processed mailbox %s with %s %s messages" % (("%s" % alias), count, spam_class,)


cursor_mailboxes.execute(sql_mailboxes)
for alias in cursor_mailboxes.fetchall():
print "Processing mailbox %s ..." % ("%s" % alias)
process('spam')
process('ham')
print

def main(argv):

server = "localhost"
database = "dbmail"
login = "dbmail"
password = "<dbmail_passwd>"

connection = db.connect(host=server,db=database,user=login,passwd=password)
connection.begin();
export(connection)
connection.commit()

if __name__ == "__main__":
main(sys.argv[1:])

Для работы скрипта устанавливаем pyMySQLdb
# cd /usr/ports/databases/py-MySQLdb
# make install clean

Oпции по умолчанию

Алгоритм работы скрипта таков:
  1. письма, которые пользователь поместит в папку Spam будут переданы на обработку фильтру, помеченные как спамовые
  2. те письма, которые ошибочно приняты за спам, можно переместить из папки Spam в любую другую, и они будут переданы фильтру на обучение, помеченные как ошибочно принятые за спам
  3. почтовый сервер должен складывать опознанные фильтром как спам письма в папку Spam пользователя, если она у него есть

Поместим скрипт в файл /usr/local/bin/dspam-learn и назначим его запуск по расписанию
# chmod +x /usr/local/bin/dspam-learn

И добавим в /etc/crontab строку
10 * * * * root /usr/local/bin/dspam-learn >> /dev/null

 
Теперь нужно научиться складывать плохие письма в папку Spam

Добавим для этого в dspam.conf строчку
QuarantineAgent "/usr/local/sbin/dbmail-smtp -m Spam -u %u"

 
 
Web-интерфейс RoundCube

Устанавливаем php5
# cd /usr/ports/lang/php5
# make install clean

Выбираем опции CLI CGI APACHE SUHOSIN MULTIBYTE FASTCGI PATHINFO

Включаем PHP в Apache
Создаем файл /usr/local/etc/apache22/Includes/httpd-php5.conf содержащий
LoadModule php5_module libexec/apache22/libphp5.so
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php
Ctrl+Z

В конфиге Apache-a /usr/local/etc/apache22/httpd.conf если есть комментируем строку
LoadModule php5_module libexec/apache22/libphp5.so

Перезапускаем Apache
# /usr/local/etc/rc.d/apache22 restart

Устанавливаем круглокуба
# cd /usr/ports/mail/roundcube
# make install clean

Выбираем опции MYSQL и SSL

Создадим ссылку для доступа
# ln -s /usr/local/www/roundcube /usr/local/www/apache22/data/mail

Создаем окружение в mySQL-е
# mysql -uroot -p
> CREATE DATABASE rcmail default character set "UTF8";
> GRANT ALL ON rcmail.* to roundcube@localhost identified by '<rcpass>';
> quit
# mysql -uroundcube -p rcmail < /usr/local/www/roundcube/SQL/mysql5.initial.sql

Правим конфиги круглокуба

в /usr/local/www/roundcube/config/db.inc.php правим строку

$rcmail_config['db_dsnw'] = 'mysql://roundcube:<rcpass>@localhost/rcmail';

в /usr/local/www/roundcube/config/main.inc.php правим строки

$rcmail_config['default_host'] = '127.0.0.1';
$rcmail_config['mail_domain'] = 'kscom.ru';
$rcmail_config['smtp_server'] = '127.0.0.1';
$rcmail_config['smtp_helo_host'] = 'mx.kscom.ru';
$rcmail_config['default_charset'] = 'UTF-8';

Набираем в браузере https://<ip_адрес_сервера>/mail и пробуем зайти.


TO DO

  1. Хранить пароли в базе в хэшированном виде
  2. Написать веб-морду для управления DBMail-ом

Ссылки

http://google.ru
http://postfix.org
http://dbmail.org
http://yocum.org/faqs/postfix-tls-sasl.html
http://lists.altlinux.org/pipermail/community/2005-October/365238.html
http://osdir.com/ml/linux.altlinux.sysadmins/2007-01/msg00147.html
http://www.lissyara.su/?id=1062
http://marty.anstey.ca/freebsd/qmail_dbmail/install_dbmail.php
http://www.opennet.ru/tips/info/887.shtml



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=13621.

размещено: 2008-10-02,
последнее обновление: 2008-10-03,
автор: zheromo

оценить статью:

serge, 2008-10-02 в 17:18:18

Что-то часто перезагружаетесь. Вроде не винда :(

zheromo, 2008-10-03 в 6:20:19

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

abigor, 2008-10-03 в 7:05:36

наверно по тому что ленились их вручную запустить
>Перезагружаемся.
># reboot
явно лишние, можно так решить вашу проблему
/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/apache22 start
/usr/local/etc/rc.d/dspam start

zheromo, 2008-10-03 в 7:21:09

Все то и дело что без перезагрузки именно эти сервисы (MySQL и DSPAM) и не стартовали таким образом

awamax, 2008-10-09 в 15:32:55

reboot не кореектная команда, нужно делать shutdown -r now

Kolesya, 2008-10-11 в 9:08:14

Посмотри
/usr/local/etc/rc.d/mysql-server rcvar
cat /etc/rc.conf | grep mysql

а также помогут
/usr/local/etc/rc.d/mysql-server forcerestart
/usr/local/etc/rc.d/mysql-server forcestart
/usr/local/etc/rc.d/mysql-server forcestop



alexey_white, 2009-03-19 в 11:30:30

Программа обучения DSpam выдает следующую ошибку
 File ".//dspam-learn", line 30
   parser = email.Parser.Parser()
        ^
IndentationError: expected an indented block

Скотина, 2009-03-19 в 11:41:15

Сожалею, что после слова Антиспам я только пролистал статью, но по делу могу сказать, что есть маленькое упущение: dbmail-imapd, dbmail-pop3d, dbmail-lmtpd
не стартуют в первый раз сами, поскольку не могут создать
в /var/run свои pid'ы выполняясь с правами nobody:nogroup.
(Для stunnel автор это действие оговорил отдельно).


Александр, 2009-06-06 в 18:55:48

Спасибо большое за статью. У меня заработало. Проблема возникла только с dspam... не захотела с ним ходить почта. Я не стал разбираться. После удаления dspam все закрутилось. НУ конечно кое что под себя докидал. Postfix пожеще настроил.

ProFTP, 2009-09-02 в 4:27:56

А квоту то dbmail сам на урвоне бд рубает?

добавить в конфиг postfix запрос для квоты и доменов может надо?

storm1976, 2009-09-09 в 11:48:33

Таки скрипт питоновский наверно не будет работать - у него же вместо бегинов-эндов отступы, а в тексте ни одного нет.

Firestorm, 2009-10-20 в 23:00:33

При использовании Imap и почтового клиента Mozilla Thunderbird наблюдался глюк.imap сервер отказывался отображать папки imap,отбрасывал соединения. Исправилось установкой параметров ncchildren до 40 для моего случая и maxchildren до 50.

Phanthom, 2009-11-02 в 7:06:25

Не запустился круглокуб. пишет что не может подконнектиться к базе. глянул в логах - пишет extension mysql is not compiled into php
Разбираться не стал - уехал на работу. Вечером поковыряю...
Кроме пары опечаток в тексте - всё норм.

Phanthom, 2009-11-11 в 21:48:56

postmap /usr/local/etc/postfix/transport
а что внутри транспортной карты??

Firestorm, 2009-12-05 в 20:06:33

TO Phanthom
Внутри файлика с транспортом следующее например:

localhost  dbmail-lmtp:127.0.0.1

4ita4ok, 2009-12-18 в 17:51:26

Я новичок в этом деле. стояла задача поставить сервак почтовый. так вот суть коммента в том что Дспам работает с Мускулями от 4,0 до 5,1. а у меня стоял старше эт грабли :(

Чеширский, 2009-12-19 в 4:52:25

А конторка то знакомая, кемеровская))

Сергей, 2010-04-11 в 10:45:18

после команды - # postmap /usr/local/etc/postfix/transport появляется ошибка, no such file or directory, ставил все по вашему примеру, подскажите что делать, пожалуйста?

sofinan, 2012-03-22 в 6:33:48

Не запускается dbmail:
EMERGENCY:[pidfile] pidfile_create(+113): Cannot open pidfile [/var/run/dbmail/dbmail-imapd.pid], error was [Permission denied]
Решение: в конфиге dbmail.conf делаем pid_directory=/var/run/dbmail/

и nobody:nogroup

sofinan, 2012-03-22 в 10:47:00

# mysql -udspam -p dspam < /usr/local/share/examples/dspam/mysql/mysql_objects-speed.sql
# mysql -udspam -p dspam < /usr/local/share/examples/dspam/mysql/virtual_users.sql

Данная конструкция не работает с версией mysql5 и выше, т.к. служебное слово type= обозначено, как устаревшее, необходимо в данных файлах изменить type= на engine=

poltinnik, 2013-09-09 в 11:35:13

А как заставить эту всю конструкцию принимат почту снаружи. Если просто сделать "echo hello | mail -s "Test Message" test@mydomain.com", то письмо приходит. А если снаружи сделать отправку - User unknown in local recipient table.

Андрей, 2013-11-21 в 10:54:25

Почти все заработало, за исключением серьезного НО. Письма ходить начали, но в БД ничего не записывалось. Пришлось в dbmail.conf коментить строки подключения к базе, и прописывать dburi =mysql://localhost/dbmail?user=dbmail&password=mypass&sqlsocket=/tmp/mysql.sock

После начало ходить как положено. До конца еще не дотестил.

Андрей, 2013-12-03 в 9:39:06

Однако большие письма не проходят. При вложении около 1 Мб и выше вложения бьются на мелкие,и не открываются.

Андрей, 2013-12-03 в 14:46:40

Правится изменением настроек максимального размера сообщения в mySQL


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid

Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6

Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD

Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc

Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
2009-02-18, Andy
Free-SA

Программа анализирует log файлы Squid'а и формирует по ним отчет.
2009-02-02, Cancer
Openfire Jabber Server

Установка Jabber сервера на примере Openfire
2009-01-28, Cancer
mpd5 + сжатие и шифрование

Установка VPN сервера mpd5 + сжатие и шифрование
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 22 чел.
За последние 30 мин было: 79 человек
За сегодня было
13791 показов,
1472 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1752 секунд
Из них PHP: 58%; SQL: 42%; Число SQL-запросов: 77 шт.
Исходный размер: 179362; Сжатая: 32055