Страница 1 из 1
Проблема с EXIM
Добавлено: 2009-08-13 10:14:46
Саша
Здравствуйте я тут своими вопросами весь форум темами скоро забрасаю))
Я в первые решил поднять на виртуалке связку exim+dovecot+potfixadmin в общем домен создал, ящик создал - посмотрел папки в /var/.. появились с доменом и ящиками на параллельной машине настроил почтовик ну чтобы проверить работоспособность отправки и приёма писем но к сожалению при отправки письма OPERA ругается..
вот логи exima пожалуйста подскажите в чём проблема:
Да и в логах хорошего я мало увидел но вот что именно?..
Код: Выделить всё
2009-08-12 13:46:21 H=(14fdc7f69f074c0) [192.168.0.5] Warning: ACL "warn" statement skipped: condition test deferred: MYSQL: query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MYSQL_TESTCLIENTMYLIST' at line 1
2009-08-12 13:46:21 no host name found for IP address 192.168.0.5
2009-08-12 13:46:21 1MbAPV-00016Q-Of malware acl condition: unable to connect to sophie UNIX socket (/var/run/sophie). errno=2
2009-08-12 13:46:21 1MbAPV-00016Q-Of H=(14fdc7f69f074c0) [192.168.0.5] F=<az@neonart.ru> temporarily rejected after DATA
Re: Проблема с EXIM
Добавлено: 2009-08-13 10:55:55
uHk
1 - у вас не правильный синтаксис в sql-запросах.
2 -
- невозможно подключиться к сокету
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:00:58
Саша
Моё содержание Бд хм..
Код: Выделить всё
# Exim / MySQL
USE mysql;
INSERT INTO user (Host, User, Password) VALUES ('localhost','exim',password('eximadm.'));
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','exim','exim','Y');
FLUSH PRIVILEGES;
GRANT USAGE ON exim.* TO exim@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON exim.* TO exim@localhost;
CREATE DATABASE exim;
USE exim;
#
# Table structure for table admin
#
CREATE TABLE admin (
username varchar(255) NOT NULL default '',
password varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (username),
KEY username (username)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Virtual Admins';
#
# Table structure for table alias
#
CREATE TABLE alias (
address varchar(255) NOT NULL default '',
goto text NOT NULL,
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (address),
KEY address (address)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Virtual Aliases';
#
# Table structure for table domain
#
CREATE TABLE domain (
domain varchar(255) NOT NULL default '',
description varchar(255) NOT NULL default '',
aliases int(10) NOT NULL default '0',
mailboxes int(10) NOT NULL default '0',
maxquota int(10) NOT NULL default '0',
transport varchar(255) default NULL,
backupmx tinyint(1) NOT NULL default '0',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (domain),
KEY domain (domain)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Virtual Domains';
#
# Table structure for table domain_admins
#
CREATE TABLE domain_admins (
username varchar(255) NOT NULL default '',
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
KEY username (username)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Domain Admins';
#
# Table structure for table log
#
CREATE TABLE log (
timestamp datetime NOT NULL default '0000-00-00 00:00:00',
username varchar(255) NOT NULL default '',
domain varchar(255) NOT NULL default '',
action varchar(255) NOT NULL default '',
data varchar(255) NOT NULL default '',
KEY timestamp (timestamp)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Log';
#
# Table structure for table mailbox
#
CREATE TABLE mailbox (
username varchar(255) NOT NULL default '',
password varchar(255) NOT NULL default '',
name varchar(255) NOT NULL default '',
maildir varchar(255) NOT NULL default '',
quota int(10) NOT NULL default '0',
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (username),
KEY username (username)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Virtual Mailboxes';
#
# Table structure for table vacation
#
CREATE TABLE vacation (
email varchar(255) NOT NULL default '',
subject varchar(255) NOT NULL default '',
body text NOT NULL,
cache text NOT NULL,
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (email),
KEY email (email)
) TYPE=MyISAM COMMENT='Exim & Dovecot - Virtual Vacation';
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:04:48
uHk
причем тут таблицы, если ошибка в синтаксисе запросов.
это надо смотреть конфиг экзима
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:06:37
Саша
Код: Выделить всё
primary_hostname = mx1.neonart.ru
domainlist local_domains = ${lookup mysql{SELECT domain FROM domain \
WHERE domain='${domain}' AND active='1'}}
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domain \
WHERE domain='${domain}' AND active='1'}}
hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/24
auth_advertise_hosts = *
daemon_smtp_ports = 25
#tls_on_connect_ports = 465
#tls_advertise_hosts = *
#tls_certificate = /etc/pki/exim/mail.pem
#tls_privatekey = /etc/pki/exim/mail.pem
log_selector = \
+all_parents \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
acl_smtp_data = acl_check_content
#av_scanner = clamd:/var/run/clamav/clamd.socket
spamd_address = 127.0.0.1 783
qualify_domain = mx1.neonart.ru
allow_domain_literals = false
exim_user = exim
exim_group = mail
never_users = root
#host_lookup =
#rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 3d
freeze_tell = postmaster
message_size_limit = 80M
smtp_accept_max = 100
smtp_accept_max_per_connection = 5
smtp_accept_max_per_host = 2
split_spool_directory = true
remote_max_parallel = 15
#smtp_banner = "ESMTP"
hide mysql_servers = localhost/exim/exim/eximadm.
######################################################################
# ACL CONFIGURATION #
# Specifies access control lists for incoming SMTP mail #
######################################################################
begin acl
acl_check_rcpt:
accept hosts = :
deny domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
require verify = sender
# Белые списки
# Принимаем от пользователей (E-Mail'ов), которым мы посылали сообщения (10 дней максимум) 0 - Нет записи, 1 - Принимаем, 2 - Срок истёк.
warn set acl_m19 = ${lookup mysql{MYSQL_TESTCLIENTMYLIST}{$value}{0}}
accept log_message = Accepted due to autowhitelist
domains = +local_domains
condition = ${if eq{$acl_m19}{1}{yes}{no}}
endpass
message = "Unknown user"
verify = recipient
deny message = HELO/EHLO required by SMTP RFC
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
deny message = Go Away! You are spammer.
condition = ${if match{$sender_host_name} \
{bezeqint\\.net|net\\.il|dialup|dsl|pool|peer|dhcp} \
{yes}{no}}
# Рубаем тех, кто в HELO пихает мой IP (2500 мудаков за месяц!)
deny condition = ${if eq{$sender_helo_name}\
{$interface_address}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
!senders = :
message = "my IP in your HELO! Access denied!"
# Рубаем тех, кто в HELO пихает только цифры
# (не бывает хостов ТОЛЬКО из цифр)
deny condition = ${if match{$sender_helo_name}\
{\N(^\d+$)|\d{5,}\N}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
!senders = :
message = "can not be only digits in HELO/too many digits in HELO!"
## Рубаем тех, кто не пишет отправителя (пробел)
deny condition = ${if match{$sender_helo_name}{\N^\s+$\N}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "Empty HELO (only spaces)? Go read RFC!"
# Рубаем хосты с IP адресом в имени
deny message = "your hostname contains IP address.. 99.9% you are spamer"
!hosts = +relay_from_hosts
condition = ${if match{$sender_host_name} \
{\N\d{1,3}(\.|-)\d{1,3}(\.|-)\d{1,3}\N} {yes}{no}}
deny message = "your hostname is bad (adsl, poll, ppp & etc)."
!hosts = +relay_from_hosts
condition = ${if match{$sender_helo_name} \
{broadband|ppp|adsl|xdsl|dialup|dialin|pool|peer|dhcp|dial-up|staticip}{yes}{no}}
deny message = "Home adsl users should send email via ISP SMTP"
!hosts = +relay_from_hosts
condition = ${if match{$sender_helo_name} \
{\N(dsl-?\d{2,})|(\d{2,}-\d{2,})|\d{5,}\N}{yes}{no}}
# Рубаем хосты с IP адресом в имени
deny message = "your hostname contains IP address.. 99.9% you are spamer"
!hosts = +relay_from_hosts
condition = ${if match{$sender_helo_name} \
{\N\d{1,3}(\.|-)\d{1,3}(\.|-)\d{1,3}\N} {yes}{no}}
# Проверяем есть ли reverse DNS для указанного имени хоста
warn log_message = "No reverse DNS check succeed"
set acl_m3 = 1
!hosts = +relay_from_hosts
!verify = reverse_host_lookup
# Рубаем хело с нашим именем
deny condition = ${if match_domain{$sender_helo_name} \
{$primary_hostname:+local_domains:+relay_to_domains} \
{true}{false}}
message = "My HOSTNAME in your HELO!"
!senders = :
# Рубаем тех, кто в публичных блэк-листах.
deny message = "Your address blacklisted - $dnslist_domain \n $dnslist_text"
!senders = :
hosts = !+relay_from_hosts
dnslists = opm.blitzed.org : \
proxies.blackholes.easynet.nl : \
cbl.abuseat.org : \
bl.spamcop.net : \
bl.csma.biz : \
dynablock.njabl.org : \
# Cчитаем длину имени хоста (из HELO). если меньше 5 - рубим
# - таких хостов не может существовать
deny condition = ${if <{${strlen:$sender_helo_name}}{5}{yes}{no}}
!senders = :
hosts = !+relay_from_hosts : *
message = "Too short HOSTNAME"
# Считем число точек в доменном имени. (больше 4-х - в топку)
deny condition = ${if match{$sender_host_name} \
{\N((?>\w+[\.]){4,})\N}{yes}{no}}
hosts = !+relay_from_hosts : *
!senders = :
message = "Too many dots in HOSTNAME"
# Считаем число точек в HELO
deny condition = ${if match{$sender_helo_name} \
{\N((?>\w+[\.]){4,})\N}{yes}{no}}
hosts = !+relay_from_hosts : *
!senders = :
message = "Too many dots in HELO"
# Считем число дефисов в доменном имени. (больше 4-х - в топку)
deny condition = ${if match{$sender_host_name} \
{\N((?>\w+[\-]){4,})\N}{yes}{no}}
hosts = !+relay_from_hosts : *
!senders = :
message = "Много дефисов in HOSTNAME"
# Считаем число дефисов в HELO
deny condition = ${if match{$sender_helo_name} \
{\N((?>\w+[\-]){4,})\N}{yes}{no}}
hosts = !+relay_from_hosts : *
message = "Много дефисов в HELO"
# Считаем число точек в HELO, если меньше одной - deny
deny condition = ${if !match{$sender_helo_name}{\N\w\.\w\N}{yes}{no}}
!senders = :
hosts = !+relay_from_hosts : *
message = "HELO cannot be without dots"
# Считаем число точек (не меньше одной) в доменном имени
deny condition = ${if !match{$sender_host_name}{\N\w\.\w\N}{yes}{no}}
!senders = :
hosts = !+relay_from_hosts : *
message = "HOSTNAME cannot be without dots"
#Проверяем переданный EHLO
warn log_message = "Check of your EHLO/HELO is failed"
set acl_m3 = 1
!senders = :
!hosts = +relay_from_hosts
!verify = helo
# Deny unless the sender address can be verified.
warn message = "sender verify failed"
!hosts = +relay_from_hosts
!verify = sender/callout=10s
set acl_m3 = 1
delay = 30s
accept domains = +local_domains
endpass
message = unknown user
verify = recipient
accept domains = +relay_to_domains
endpass
message = unrouteable address
verify = recipient
accept hosts = +relay_from_hosts
accept authenticated = *
deny message = relay not permitted
acl_check_mime:
warn decode = default
deny message = Blacklisted file extension detected ($mime_filename)
condition = ${if match \
{${lc:$mime_filename}} \
{\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com|\.vbs|\.cpl)$\N} \
{1}{0}}
deny message = Sorry, noone speaks chinese here
condition = ${if eq{$mime_charset}{gb2312}{1}{0}}
accept
acl_check_content:
deny message = Virus found ($malware_name)
malware = *
warn message = X-Spam-Score: $spam_score ($spam_bar)
hosts = !+relay_from_hosts
spam = nobody:true
warn message = X-Spam-Report: $spam_report
hosts = !+relay_from_hosts
spam = nobody:true
warn message = Subject: * $h_Subject:
hosts = !+relay_from_hosts
spam = nobody
deny message = This message scored $spam_score spam points.
spam = nobody:true
hosts = !+relay_from_hosts
condition = ${if >{$spam_score_int}{120}{1}{0}}
accept
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
# An address is passed to each router in turn until it is accepted. #
######################################################################
begin routers
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT goto FROM alias WHERE \
address='${quote_mysql:$local_part@$domain}' OR \
address='${quote_mysql:@$domain}'}}
virtual_localuser:
driver = accept
condition = ${lookup mysql{SELECT username FROM \
mailbox WHERE \
username='${quote_mysql:$local_part@$domain}'}{yes}{no}}
transport = local_delivery
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
begin transports
remote_smtp:
driver = smtp
local_delivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = /var/mail/$domain/$local_part
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0660
return_path_add
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
######################################################################
# RETRY CONFIGURATION #
######################################################################
begin retry
* quota
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
######################################################################
# REWRITE CONFIGURATION #
######################################################################
begin rewrite
######################################################################
# AUTHENTICATION CONFIGURATION #
######################################################################
begin authenticators
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT username FROM \
mailbox WHERE username = \
'${quote_mysql:$1}' AND password = \
'${quote_mysql:$2}'}{yes}{no}}
server_prompts = :
server_set_id = $2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT username FROM \
mailbox WHERE username = \
'${quote_mysql:$1}' AND password = \
'${quote_mysql:$2}'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1
auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT password FROM \
mailbox WHERE username \
= '${quote_mysql:$1}'}{$value}fail}
server_set_id = $1
# End of Exim configuration file

Это я стянул готовый конфиг с рабочий машины и настроил под себя
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:17:03
uHk
1. MYSQL_TESTCLIENTMYLIST - не вижу объявления этой переменной.
2. av_scanner - этого тоже нету
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:22:50
atrium
copy-past называется

Re: Проблема с EXIM
Добавлено: 2009-08-13 11:28:19
Саша
uHk писал(а):1. MYSQL_TESTCLIENTMYLIST - не вижу объявления этой переменной.
2. av_scanner - этого тоже нету
Я не могу понять откуда взялась эта переменная
MYSQL_TESTCLIENTMYLIST
да и
av_scanner я в принципе тоже поубирал..
если не затруднить подскажите как исправить проблему.\
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:29:02
Саша
atrium писал(а):copy-past называется

Тем не менее((
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:54:15
atrium
MYSQL_TESTCLIENTMYLIST должна содержать запрос к базе в Вашем ACL
# Белые списки
# Принимаем от пользователей (E-Mail'ов), которым мы посылали сообщения (10 дней максимум) 0 - Нет записи, 1 - Принимаем, 2 - Срок истёк.
warn set acl_m19 = ${lookup mysql{MYSQL_TESTCLIENTMYLIST}{$value}{0}}
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:55:59
CrazyPilot
Плохо копипастите...
Саша писал(а):Я не могу понять откуда взялась эта переменная
MYSQL_TESTCLIENTMYLIST
В конфиге был такой макрос прописан. Ищите в оригинале.
Re: Проблема с EXIM
Добавлено: 2009-08-13 11:58:26
Саша
CrazyPilot писал(а):Плохо копипастите...
Да я новичёк ещё руку не набил
CrazyPilot писал(а):В конфиге был такой макрос прописан. Ищите в оригинале.
Ок щас буду разбираться.
Re: Проблема с EXIM
Добавлено: 2009-08-13 12:20:44
Саша
Подскажите как решить вопрос с ошибкой открытие соккекта
UNIX socket (/var/run/sophie)
Код: Выделить всё
2009-08-12 15:56:21 no host name found for IP address 192.168.0.5
2009-08-12 15:56:21 1MbCRJ-0000wu-Ud malware acl condition: unable to connect to sophie UNIX socket (/var/run/sophie). errno=2
2009-08-12 15:56:21 1MbCRJ-0000wu-Ud H=(14fdc7f69f074c0) [192.168.0.5] F=<test4@neonart.ru> temporarily rejected after DATA
Re: Проблема с EXIM
Добавлено: 2009-08-13 12:25:08
CrazyPilot
либо убрать все malware кондишены, либо установить и запустить хламавэ