Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FAQ по Exim MTA

Автор: SashaGAV
Дата сообщения: 19.02.2007 10:32
tankistua


Цитата:

Ищи что-то подобное этому.

hostlist relay_from_hosts = localhost : 192.168.5.0/24



Я так понимаю это работает, если рассыльники находяться в одной локальной сети.
Мне необходимо, чтобы с любой точки планеты можно было отправлять сообщения через мой сервер. Какие адреса / домены надо ставить в этом случае ?
Автор: DarkHost
Дата сообщения: 19.02.2007 11:02

Цитата:
Мне необходимо, чтобы с любой точки планеты можно было отправлять сообщения через мой сервер.

За open relay - смерть через марапупу! Потому что это плодильня спаммеров.
Автор: SashaGAV
Дата сообщения: 19.02.2007 11:12
DarkHost


Цитата:
Цитата:
Мне необходимо, чтобы с любой точки планеты можно было отправлять сообщения через мой сервер.

За open relay - смерть через марапупу! Потому что это плодильня спаммеров.



Так никто не говорит, что мой сервер хочет быть Опен Релеем. Нужно сделать так, чтобы нужные люди путём авторизации отправляли письма, а все остальные - нах.
Автор: tankistua
Дата сообщения: 19.02.2007 11:36
решается это через smtp-аутентификацию читай доки
http://www.exim.org/exim-html-4.66/doc/html/spec_html/ch33.html

много зависит от того, как у тебя хранться логины и пароли пользователей
Автор: SashaGAV
Дата сообщения: 19.02.2007 11:55
tankistua


Цитата:
решается это через smtp-аутентификацию читай доки
http://www.exim.org/exim-html-4.66/doc/html/spec_html/ch33.html

много зависит от того, как у тебя хранться логины и пароли пользователей



логины и пароли в базе MySQL

если я указываю в конфиге require authenticated * - почта вообще не принимается с других почтовых серверов, а юзеры аутентифицировавшись могут слать сообщения.

Указывая в конфиге всего лишь accept autenticated * - все кому ни лень могут соединяться с моим почтовым сервером и без авторизации слать письма в локальные ящики. Такого быть не должно.
Автор: DarkHost
Дата сообщения: 19.02.2007 12:23

Цитата:
Так никто не говорит, что мой сервер хочет быть Опен Релеем. Нужно сделать так, чтобы нужные люди путём авторизации отправляли письма, а все остальные - нах.

Ага вот теперь понятно. Посмотрите предыдущие страницы темы, это уже обсуждалось.
Во-первых, ограничьте relay_from_hosts, а потом настройте авторизацию. Далее, объясняйтесь яснее:
Если bla-bla-bla, то...и лог.
Автор: tankistua
Дата сообщения: 19.02.2007 12:33
SashaGAV

Цитата:
Указывая в конфиге всего лишь accept autenticated * - все кому ни лень могут соединяться с моим почтовым сервером и без авторизации слать письма в локальные ящики. Такого быть не должно.


Помоему ты переработался :)
Твой сервер должен принимать почту для твоих юзеров.

поставь у себя в почтовом смтп-сервер smtp.gu.net и отправь письмо мне на basil@gu.net. Сделай выводы.
Автор: autopilot
Дата сообщения: 19.02.2007 12:40
SashaGAV

Цитата:
Указывая в конфиге всего лишь accept autenticated * - все кому ни лень могут соединяться с моим почтовым сервером и без авторизации слать письма в локальные ящики. Такого быть не должно.

Должно! SMTP-сервер стороннего провайдера, через которой абонет шлет тебе почту, соединится и без авторизации БУДЕТ класть письмо в локальный ящик.

Копать нужно в сторону - если домен отправителя равен твоему домену - требовать авторизацию. Только как описать это условие в конфике EXIM - я так и не понял.

Автор: SashaGAV
Дата сообщения: 19.02.2007 13:21
tankistua

Цитата:
поставь у себя в почтовом смтп-сервер smtp.gu.net и отправь письмо мне на basil@gu.net. Сделай выводы.


да, поставил
интересные вещи получаются.
я в The Bat'e в качестве SMTP-сервера указываю smtp.gu.net, отправляю письмо с ящика (указываю ОТ: ) *@ua.fm (один из моих ящиков) на ящик *@newmail.ru (тоже мой ящик) - и письма спокойно себе ходят. У меня почтовик такое не допускает. Это же Опен Релай собственной персоной.

Расскажу как мне нравиться почтовик newmail.ru своей авторизацией.
Когда ставлю в параметрах SMTP-сервера в The Bat авторизацию, то он (сервер) спрашивает логин пароль при пересылке почты. И если авторизацию убрать, то сервак ессно никому ничего не отсылает, даже в свой родной почтовый ящик на этом же сервере. Т.е. он каким-то местом определяет что я обычное тело, соединяюсь через МУА клиент и говорит: Говори пароль и логин !!! А при общении с другими почтовыми серверами newmail.ru каким-то перцем по другому с ними общается.

Да уж... Копаю инет ...
Автор: hoochie
Дата сообщения: 19.02.2007 13:40
penguen

Цитата:
Комьюнигейт 5.0+Спам фильтр + Каспер.


Цитата:
Лицензир. хозяйства = 0 Сам Комьюнигейт на АСПе 10 есть.

Наглое вранье. Неужели Касперский стал таким добрым? Comminigate Pro - я вообще молчу. Почитай, друг любезный.

Думай, что говоришь, когда говоришь, что думаешь!

Касаемо exim VS CGP. Нечего стравнивать ракету-носитель "Протон" с космической станцией "Мир". Разницу улавливаешь? Баста.
Автор: tankistua
Дата сообщения: 19.02.2007 17:20
SashaGAV
да ладно - такого быть не может. Провайдерский смтп опен релай - это сильно.

киевстар например весь смтп-трафик заворачивает на свой сервер - может у тебя что-то подобное.



Цитата:
Копать нужно в сторону - если домен отправителя равен твоему домену - требовать авторизацию. Только как описать это условие в конфике EXIM - я так и не понял.

Не правильный совет. Это опен-релай. Пользователей из-вне надо аутентифицировать, делается это либо по сети из которой они приходят, либо по логину и паролю. Ссылку я дал, конфиги описаны в теме. Искать надо там. Я у себя такого не делал, плюс ко всему многое зависит от конкретного конфига.

hoochie
Да чего вы на человека накинулись ? Судя по разговорам, возрасту человек небольшого , опыта мало. Себя вспомните пяток лет назад. Я недавно встретил один из своих первых постов - было очень смешно
Автор: Zed1k
Дата сообщения: 20.02.2007 11:38
здравствуйте
решил обучить dspam, скормил ему пачку писем и теперь письма отправленные с моего domen.ru метяться как спам

Цитата:

X-DSPAM-Factors: 15,
*19+15, 0.00400,
*15, 0.00400,
domen, 0.99000,
*domen.ru+Mon, 0.99000,
domen+ru, 0.99000,
Здравствуйте, 0.99000,
*domen.ru, 0.99000,
From*domen.ru, 0.99000,
С+уважением, 0.07771,
уважением, 0.08111,
*19, 0.22826,
*Feb+19, 0.22826,
С, 0.27388,
*Mon+Feb, 0.31579,
*Mon, 0.31579
Subject: *SPAM DETECTED*

в dspam.conf игнорируется

Цитата:

IgnoreHeader X-Spam-Status
IgnoreHeader X-Spam-Score
IgnoreHeader X-Spam-Scanned
IgnoreHeader X-Mailer
IgnoreHeader X-Virus-Scanner-Result
IgnoreHeader Date
IgnoreHeader Envelope-to
IgnoreHeader Delivery-date
IgnoreHeader Received
IgnoreHeader User-Agent
IgnoreHeader Content-Type
IgnoreHeader Content-Transfer-Encoding
IgnoreHeader To

чего не хватает ему тут?
как сделать исключения так называемые?
Автор: verast
Дата сообщения: 20.02.2007 15:35
Здравствуйте,
И опять exim4+mysql+tpop3d. Проблема с tpop3d. при получении почты получаю сообщение:
Feb 20 15:08:15 spam-killer tpop3d[3102]:password: [strogv@tulaprombank.ru; strogv@tulaprombank.ru] has password type md5, but hash is of incorrect length
Feb 20 15:08:15 spam-killer tpop3d[3102]: auth_mysql_new_user_pass: [strogv@tulaprombank.ru; strogv@tulaprombank.ru] failed login with wrong password

Настраивала почтовик согласно рекомендациям ginger.Отправка и доставка почты в ящики пользователе проходит без проблем.
Мои настройки:
1. spam-killer:/home/anti/tpop3d-1.5.2/init.d# which tpop3d
/usr/sbin/tpop3d
2. ldd /usr/sbin/tpop3d
libmysqlclient.so.14 => /usr/lib/libmysqlclient.so.14 (0x4001c000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40124000)
libc.so.6 => /lib/libc.so.6 (0x40151000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40285000)
libm.so.6 => /lib/libm.so.6 (0x4029a000)
libz.so.1 => /usr/lib/libz.so.1 (0x402bc000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
3. cat /etc/tpop3d.conf
listen-address: 200.200.200.85
max-children: 1024
log-facility: mail
log-bad-passwords: yes
auth-mysql-hostname: localhost
auth-mysql-enable: yes
auth-mysql-mail-group: mail
auth-mysql-database: vmail
auth-mysql-username: sqlmail
auth-mysql-password: passwd
auth-mysql-pass-query: SELECT CONCAT(home,'/Maildir'),CONCAT('(crypt)',crypt),'mail','maildir' \
FROM users WHERE id = '$(local_part)' \
AND mbox_host = '$(domain)' \
AND active = 'Y'

3. tail -f /var/log/mysql.log
070220 15:14:39 42 Query SELECT CONCAT(home,'/Maildir'),CONCAT('(crypt)',crypt),'mail','maildir' FROM users WHERE id = 'strogv' AND mbox_host = 'tulaprombank.ru' AND active = 'Y'

4.mysql> describe users;
+-----------+---------------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------------------+-------+
| id | varchar(64) | | PRI | | |
| crypt | varchar(64) | | | | |
| passwd | varchar(64) | | | | |
| uid | int(10) unsigned | YES | | 8 | |
| gid | int(10) unsigned | YES | | 12 | |
| mbox_host | varchar(128) | | PRI | tulaprombank.ru | |
| shell | varchar(32) binary | YES | | /sbin/nologin | |
| home | varchar(128) binary | YES | | /home/vmail/domains | |
| quota | tinyint(4) | YES | | 15 | |
| active | enum('Y','N') | YES | | Y | |
+-----------+---------------------+------+-----+---------------------+-------+
10 rows in set (0.00 sec)

5.mysql> SELECT CONCAT(home,'/Maildir/'),CONCAT('(crypt)',crypt) FROM users WHERE id = 'strogv' AND mbox_host = 'tulaprombank.ru' AND active = 'Y';
+-----------------------------------------------------+-------------------------+
| CONCAT(home,'/Maildir/') | CONCAT('(crypt)',crypt) |
+-----------------------------------------------------+-------------------------+
| /home/vmail/domains/tulaprombank.ru/strogv/Maildir/ | (crypt)CAgviPg2fy24I |
+-----------------------------------------------------+-------------------------+
1 row in set (0.00 sec)

5. Добавляю пользователе след. образом:
mysql> insert into users (id,crypt,passwd,mbox_host,home) valies ('strogv',encrypt('1234567890'), '1234567890','tulaprombank.ru','/home/vmail/domains/tulaprombank.ru/strogv');

Почту получаю клиентом THE Bat.

В форуме на свой вопрос ответа не нашла . Спасибо всем заранее.




Автор: ekomaster22
Дата сообщения: 21.02.2007 09:12
"Нашему почтовому серверу не удается проверить валидность адреса отправителя. Ваш сервер не отвечает более 30 секунд, что
является у нас максимальным таймаутом ожидания ответа от удаленного сервера."

- это мне ответил админ, сервера который заворачивает мою почту назад.

Подскажите, с помощью какой директивы разрешить проверку на существования ящика, и стоит ли это делать вообще?
Автор: hoochie
Дата сообщения: 21.02.2007 10:07
Zed1k
Это тема не по DSPAM, но все же.. Внимательно почитай для чего используются Ignored headers. Это применяется, если DSPAM находится позади фильтров, которые _уже_ добавили в заголовок свои метки. Вот они и должны игнорироваться.
Твоя ошибка в том, что ты кормишь DSPAM только спамом. А нужно также нормальными письмами.
[more=FAQ]Q. I've fed DSPAM thousands of spam, and am only getting marginal accuracy. What's up?
A. Your problem might be that you've fed DSPAM thousands of spam, but have not fed it enough nonspam for it to learn adequately. It's typically a bad practice to feed a statistical filter a grossly unbalanced corpus of mail, and if you're using a version of DSPAM that has a "training buffer" enabled by default, feeding a ton of spam can also cause it to start watering down its results until you feed it more ham. This watering down gets stronger the higher your spam ratio is, in an attempt to prevent false positives - so the more spam you feed it, the worse your accuracy will get. There are a few things you can do to remedy this:
Turn off the training buffer ("Feature tb=5" in dspam.conf) if it is turned on, or lower the buffering level. You'll want to use a value lower than 5, as this is DSPAM's default. A value of 0 will disable this protection entirely. Find a value that gives you the best spam filtering without allowing for too many false positives.
The better solution may be to feed DSPAM enough nonspam to exceed the training threshold (2500 messages). This will not only disengage the statistical sedation feature, but will allow other algorithms to kick in, such as Bayesian Noise Reduction, which only engage after training.
Try deleting your database and retraining using the dspam_train tool, instead of dspam_corpus. dspam_corpus isn't really designed for building highly accurate pretrained databases.
If this doesn't work, or you're showing TI+IC values over 2500 in dspam_stats for your user, another common problem is incorrect training parameters. When a message is retrained in DSPAM, be careful not to specify it as a corpusfed spam, but as an error. Check your commandline arguments, and make sure you're using --source=error and NOT --source=corpus. --source=corpus is for messages that have not been processed by DSPAM. --source=error is for messages that have been processed by DSPAM, and were erroneously classified.

It's important not to specify corpus training on missed spam, because DSPAM only learns corpus messages, and doesn't relearn them. So you'll end up with 1 spam tick mark and 1 innocent tick mark, instead of the correct result: 1 spam tick mark and 0 innocent tick marks.[/more]
Автор: DarkHost
Дата сообщения: 21.02.2007 14:39

Цитата:
"Нашему почтовому серверу не удается проверить валидность адреса отправителя. Ваш сервер не отвечает более 30 секунд, что
является у нас максимальным таймаутом ожидания ответа от удаленного сервера."

- это мне ответил админ, сервера который заворачивает мою почту назад.

Подскажите, с помощью какой директивы разрешить проверку на существования ящика, и стоит ли это делать вообще?


Проверка существования адреса - всего лишь telnet и проверка ответа на "RCPT TO". Попробуй удаленно зателнетиться к себе на сервер и посмотри что он говорит.
Автор: ekomaster22
Дата сообщения: 21.02.2007 15:11

Цитата:
Попробуй удаленно зателнетиться к себе на сервер и посмотри что он говорит.


имеется в виду вот это:

>telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.cit-network.net.
Escape character is '^]'.
220 myhost.ru ESMTP Exim 4.62 Wed, 21 Feb 2007 16:04:01 +0300
RCPT TO:mymail@myhost.ru
503 sender not yet given

?
Автор: DarkHost
Дата сообщения: 21.02.2007 17:09

Цитата:
имеется в виду вот это:

Именно. Заметьте, ваш сервер не ответил отрицанием на существование пользователя, но и не ответил положительно. Поэтому не прошла проверка.
Попробуйте перенести
verify=sender
ниже, чем
veryfy=recipient
Автор: ekomaster22
Дата сообщения: 21.02.2007 21:56
DarkHost

не помогло, правда возможно я не туда это вставлял, могли бы вы указать на моем конфиге?
[more]
Specify your host's canonical name here. This should normally be the
# fully qualified "official" name of your host. If this option is not
# set, the uname() function is called to obtain the name. In many cases
# this does the right thing and you need not set anything explicitly.

# primary_hostname =

# Specify the domain you want to be added to all unqualified addresses
# here. An unqualified address is one that does not contain an "@" character
# followed by a domain. For example, "caesar@rome.ex" is a fully qualified
# address, but the string "caesar" (i.e. just a login name) is an unqualified
# email address. Unqualified addresses are accepted only from local callers by
# default. See the receiver_unqualified_{hosts,nets} options if you want
# to permit unqualified addresses from remote sources. If this option is
# not set, the primary_hostname value is used for qualification.

# qualify_domain =

# If you want unqualified recipient addresses to be qualified with a different
# domain to unqualified sender addresses, specify the recipient domain here.
# If this option is not set, the qualify_domain value is used.

# qualify_recipient =

# the next line is required to start the smtp auth script included
# in DirectAdmin

perl_startup = do '/etc/exim.pl'

# the next line is required to start the system_filter included in
# DirectAdmin to refuse potentiallly harmful payloads in
# email messages

system_filter = /etc/system_filter.exim

# next line to allow incoming email submission port 587
# see also check_recipient second ruleset

daemon_smtp_ports = 25 : 587

# SET SOME MEANINGFUL LIMITS
# OPTIONAL MODIFICATIONS:
# These defaults work for us; you may wish to modify them
# for your environment

message_size_limit = 50M
smtp_receive_timeout = 5m
smtp_accept_max = 100
message_body_visible = 3000
print_topbitchars = true
recipients_max = 16
recipients_max_reject = true

# ALLOW UNDERSCORE IN EMAIL DOMAIN NAME
# domains shouldn't use the underscore character "_" but some
# may. Because John Postel, one of the architects of the Internet,
# said "Be liberal in what you accept and conservative in what you
# transmit, we choose to allow underscore in email domain names so we
# can receive email form domains which use the underscore character
# in their domain name.
# OPTIONAL MODIFICATIONS:
# These defaults work for us; you may wish to modify them
# for your environment

helo_allow_chars = _

# CHANGE LOGGING BEHAVIOR
# We weren't happy with the default Exim logging behavior through
# syslog; it didn't give us enough information. So we turned off
# syslog behavior and changed the logging behavior to give us what we
# felt was more helpful information. You may choose to delete or modify
# this section.
# OPTIONAL MODIFICATIONS:
# These defaults work for us; you may wish to modify them
# for your environment

log_selector = \
+delivery_size \
+sender_on_delivery \
+received_recipients \
+received_sender \
+smtp_confirmation \
+subject \
+smtp_incomplete_transaction \
-dnslist_defer \
-host_lookup_failed \
-queue_run \
-rejected_header \
-retry_defer \
-skip_delivery

syslog_duplication = false

# These options specify the Access Control Lists (ACLs) that
# are used for incoming SMTP messages - after the RCPT and DATA
# commands, respectively.

acl_smtp_rcpt = check_recipient
acl_smtp_data = check_message

# define local lists

addresslist whitelist_senders = lsearch;/etc/virtual/whitelist_senders
addresslist blacklist_senders = lsearch;/etc/virtual/blacklist_senders
domainlist blacklist_domains = lsearch;/etc/virtual/blacklist_domains
domainlist whitelist_domains = lsearch;/etc/virtual/whitelist_domains
domainlist local_domains = lsearch;/etc/virtual/domains
domainlist relay_domains = lsearch;/etc/virtual/domains : localhost
domainlist use_rbl_domains = lsearch;/etc/virtual/use_rbl_domains
hostlist auth_relay_hosts = *
hostlist bad_sender_hosts = lsearch;/etc/virtual/bad_sender_hosts
hostlist bad_sender_hosts_ip = net-lsearch;/etc/virtual/bad_sender_hosts
hostlist relay_hosts = net-lsearch;/etc/virtual/pophosts : 127.0.0.1
hostlist whitelist_hosts = lsearch;/etc/virtual/whitelist_hosts
hostlist whitelist_hosts_ip = net-lsearch;/etc/virtual/whitelist_hosts

# If you want to accept mail addressed to your host's literal IP address, for
# example, mail addressed to "user@[111.111.111.111]", then uncomment the
# following line, or supply the literal domain(s) as part of "local_domains"
# above. You also need to comment "forbid_domain_literals" below. This is not
# recommended for today's Internet.

# DO NOT ALLOW HOST LITERALS
# OPTIONAL MODIFICATIONS:
# These defaults work for us; you may wish to uncomment the line
# below and change the allow_domain_literals line below to true
# to allow domain literals in your environment

# local_domains_include_host_literals

# The following line prevents Exim from recognizing addresses of the form
# "user@[111.111.111.111]" that is, with a "domain literal" (an IP address)
# instead of a named domain. The RFCs still require this form, but it makes
# little sense to permit mail to be sent to specific hosts by their IP address
# in the modern Internet, and this ancient format has been used by those
# seeking to abuse hosts by using them for unwanted relaying. If you really
# do want to support domain literals, remove the following line, and see
# also the "domain_literal" router below.

allow_domain_literals = false

# No local deliveries will ever be run under the uids of these users (a colon-
# separated list). An attempt to do so gets changed so that it runs under the
# uid of "nobody" instead. This is a paranoic safety catch. Note the default
# setting means you cannot deliver mail addressed to root as if it were a
# normal user. This isn't usually a problem, as most sites have an alias for
# root that redirects such mail to a human administrator.

never_users = root

# DO HOST LOOKUP
# OPTIONAL MODIFICATIONS:
# The setting below causes Exim to do a reverse DNS lookup on all incoming
# IP calls, in order to get the true host name. If you feel this is too
# expensive, you can specify the networks for which a lookup is done, or
# remove the setting entirely.

host_lookup = *

# DISALLOW IDENT CALLBACKS
# OPTIONAL MODIFICATIONS:
# Exim may be set to make RFC 1413 (ident) callbacks for all incoming SMTP
# calls. You can limit the hosts to which these calls are made, and/or change
# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls
# are disabled. RFC 1413 calls are cheap and can provide useful information
# for tracing problem messages, but some hosts and firewalls have problems
# with them. This can result in a timeout instead of an immediate refused
# connection, leading to delays on starting up an SMTP session. By default
# we disable callbacks for incoming SMTP calls. You may change
# rfc1413_query_timeout to 30s or some other positive number of seconds to
# enable callbacks for incoming SMTP calls.

rfc1413_hosts = *
rfc1413_query_timeout = 0s

# BOUNCE MESSAGES
# OPTIONAL MODIFICATIONS:
# When Exim can neither deliver a message nor return it to sender, it
# "freezes" the delivery error message (aka "bounce message"). There are also
# other circumstances in which messages get frozen. They will stay on the
# queue forever unless one or both of the following options is set.

# This option unfreezes bounce messages after two days, tries
# once more to deliver them, and ignores any delivery failures.

ignore_bounce_errors_after = 2d

# This option cancels (removes) frozen messages that are older than five days.

timeout_frozen_after = 5d

# TRUSTED USERS
# OPTIONAL MODIFICATIONS:
# if you must add additional trusted users, do so here; continue the
# colon-delimited list

trusted_users = mail:majordomo:apache:diradmin

# SSL/TLS cert and key
tls_certificate = /etc/exim.cert
tls_privatekey = /etc/exim.key

tls_advertise_hosts = *
#auth_over_tls_hosts = *

######################################################################
# ACLs #
######################################################################

begin acl

# ACL that is used after the RCPT command
check_recipient:

# to block certain wellknown exploits, Deny for local domains if
# local parts begin with a dot or contain @ % ! / |
deny domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]

# to restrict port 587 to authenticated users only
# see also daemon_smtp_ports above
accept hosts = +auth_relay_hosts
condition = ${if eq {$interface_port}{587} {yes}{no}}
endpass
message = relay not permitted, authentication required
authenticated = *

# allow local users to send outgoing messages using slashes
# and vertical bars in their local parts.
# Block outgoing local parts that begin with a dot, slash, or vertical
# bar but allows them within the local part.
# The sequence \..\ is barred. The usage of @ % and ! is barred as
# before. The motivation is to prevent your users (or their virii)
# from mounting certain kinds of attacks on remote sites.
deny domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

# local source whitelist
# accept if the source is local SMTP (i.e. not over TCP/IP).
# Test for this by testing for an empty sending host field.
accept hosts = :

# sender domains whitelist
# accept if sender domain is in whitelist
accept sender_domains = +whitelist_domains

# sender hosts whitelist
# accept if sender host is in whitelist
accept hosts = +whitelist_hosts
accept hosts = +whitelist_hosts_ip

# envelope senders whitelist
# accept if envelope sender is in whitelist
accept senders = +whitelist_senders

# accept mail to postmaster in any local domain, regardless of source
accept local_parts = postmaster
domains = +local_domains

# accept mail to abuse in any local domain, regardless of source
accept local_parts = abuse
domains = +local_domains

# accept mail to hostmaster in any local domain, regardless of source
accept local_parts = hostmaster
domains =+local_domains

# OPTIONAL MODIFICATIONS:
# If the page you're using to notify senders of blocked email of how
# to get their address unblocked will use a web form to send you email so
# you'll know to unblock those senders, then you may leave these lines
# commented out. However, if you'll be telling your senders of blocked
# email to send an email to errors@yourdomain.com, then you should
# replace "errors" with the left side of the email address you'll be
# using, and "example.com" with the right side of the email address and
# then uncomment the second two lines, leaving the first one commented.
# Doing this will mean anyone can send email to this specific address,
# even if they're at a blocked domain, and even if your domain is using
# blocklists.

# accept mail to errors@example.com, regardless of source
# accept local_parts = errors
# domains = example.com

# deny so-called "legal" spammers"
deny message = Email blocked by LBL - to unblock see http://www.example.com/
# only for domains that do want to be tested against RBLs
domains = +use_rbl_domains
sender_domains = +blacklist_domains

# deny using hostname in bad_sender_hosts blacklist
deny message = Email blocked by BSHL - to unblock see http://www.example.com/
# only for domains that do want to be tested against RBLs
domains = +use_rbl_domains
hosts = +bad_sender_hosts

# deny using IP in bad_sender_hosts blacklist
deny message = Email blocked by BSHL - to unblock see http://www.example.com/
# only for domains that do want to be tested against RBLs
domains = +use_rbl_domains
hosts = +bad_sender_hosts_ip

# deny using email address in blacklist_senders
deny message = Email blocked by BSAL - to unblock see http://www.example.com/
domains = use_rbl_domains
deny senders = +blacklist_senders

# By default we do NOT require sender verification.
# Sender verification denies unless sender address can be verified:
# If you want to require sender verification, i.e., that the sending
# address is routable and mail can be delivered to it, then
# uncomment the next line. If you do not want to require sender
# verification, leave the line commented out

#require verify = sender

# deny using .spamhaus
deny message = Email blocked by SPAMHAUS - to unblock see http://www.example.com/
# only for domains that do want to be tested against RBLs
domains = +use_rbl_domains
dnslists = sbl.spamhaus.org

# deny using ordb
deny message = Email blocked by ORDB - to unblock see http://www.example.com/
# only for domains that do want to be tested against RBLs
domains = +use_rbl_domains
dnslists = relays.ordb.org

# deny using sorbs smtp list
deny message = Email blocked by SORBS - to unblock see http://www.example.com/
# only for domains that do want to be tested against RBLs
domains = +use_rbl_domains
dnslists = dnsbl.sorbs.net=127.0.0.5

# Next deny stuff from more "fuzzy" blacklists
# but do bypass all checking for whitelisted host names
# and for authenticated users

# deny using spamcop
deny message = Email blocked by SPAMCOP - to unblock see http://www.example.com/
hosts = !+relay_hosts
domains = +use_rbl_domains
!authenticated = *
dnslists = bl.spamcop.net

# deny using njabl
deny message = Email blocked by NJABL - to unblock see http://www.example.com/
hosts = !+relay_hosts
domains = +use_rbl_domains
!authenticated = *
dnslists = dnsbl.njabl.org

# deny using cbl
deny message = Email blocked by CBL - to unblock see http://www.example.com/
hosts = !+relay_hosts
domains = +use_rbl_domains
!authenticated = *
dnslists = cbl.abuseat.org

# deny using all other sorbs ip-based blocklist besides smtp list
deny message = Email blocked by SORBS - to unblock see http://www.example.com/
hosts = !+relay_hosts
domains = +use_rbl_domains
!authenticated = *
dnslists = dnsbl.sorbs.net!=127.0.0.6

# deny using sorbs name based list
deny message = Email blocked by SORBS - to unblock see http://www.example.com/
domains =+use_rbl_domains
# rhsbl list is name based
dnslists = rhsbl.sorbs.net/$sender_address_domain

# accept if address is in a local domain as long as recipient can be verified
accept domains = +local_domains
endpass
     message = "Unknown User"
verify = recipient

# accept if address is in a domain for which we relay as long as recipient
# can be verified
accept domains = +relay_domains
endpass
verify=recipient

# accept if message comes for a host for which we are an outgoing relay
# recipient verification is omitted because many MUA clients don't cope
# well with SMTP error responses. If you are actually relaying from MTAs
# then you should probably add recipient verify here

accept hosts = +relay_hosts
accept hosts = +auth_relay_hosts
endpass
message = authentication required
authenticated = *
deny message = relay not permitted

# default at end of acl causes a "deny", but line below will give
# an explicit error message:
deny message = relay not permitted

# ACL that is used after the DATA command
check_message:
accept

######################################################################
# AUTHENTICATION CONFIGURATION #
######################################################################

# There are no authenticator specifications in this default configuration file.

begin authenticators

plain:
driver = plaintext
public_name = PLAIN
server_condition = "${perl{smtpauth}}"
server_set_id = $2

login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = "${perl{smtpauth}}"
server_set_id = $1


######################################################################
# REWRITE CONFIGURATION #
######################################################################

# There are no rewriting specifications in this default configuration file.

######################################################################
# ROUTERS CONFIGURATION #
# Specifies how remote addresses are handled #
######################################################################
# ORDER DOES MATTER #
# A remote address is passed to each in turn until it is accepted. #
######################################################################

begin routers

# Remote addresses are those with a domain that does not match any item
# in the "local_domains" setting above.

# This router routes to remote hosts over SMTP using a DNS lookup. Any domain
# that resolves to an IP address on the loopback interface (127.0.0.0/8) is
# treated as if it had no DNS entry.

lookuphost:
driver = dnslookup
domains = ! +local_domains
ignore_target_hosts = 127.0.0.0/8
condition = "${perl{check_limits}}"
transport = remote_smtp
no_more

# This router routes to remote hosts over SMTP by explicit IP address,
# when an email address is given in "domain literal" form, for example,
# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
# little-known these days, and has been exploited by evil people seeking
# to abuse SMTP relays. Consequently it is commented out in the default
# configuration. If you uncomment this router, you also need to comment out
# "forbid_domain_literals" above, so that Exim can recognize the syntax of
# domain literal addresses.

# domain_literal:
# driver = ipliteral
# transport = remote_smtp

######################################################################
# DIRECTORS CONFIGURATION #
# Specifies how local addresses are handled #
######################################################################
# ORDER DOES MATTER #
# A local address is passed to each in turn until it is accepted. #
######################################################################

# Local addresses are those with a domain that matches some item in the
# "local_domains" setting above, or those which are passed back from the
# routers because of a "self=local" setting (not used in this configuration).

# Spam Assassin
spamcheck_director:
driver = accept
condition = "${if and { \
            {!def:h_X-Spam-Flag:} \
            {!eq {$received_protocol}{spam-scanned}} \
            {!eq {$received_protocol}{local}} \
            {exists{/home/${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}/.spamassassin/user_prefs}} \
        } {1}{0}}"
retry_use_local_part
transport = spamcheck
no_verify

majordomo_aliases:
driver = redirect
allow_defer
allow_fail
data = ${if exists{/etc/virtual/${domain}/majordomo/list.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/list.aliases}}}}
domains = lsearch;/etc/virtual/domainowners
file_transport = address_file
group = daemon
pipe_transport = majordomo_pipe
retry_use_local_part
no_rewrite
user = majordomo

majordomo_private:
driver = redirect
allow_defer
allow_fail
#condition = "${if eq {$received_protocol} {local} {true} {false} }"
condition = "${if or { {eq {$received_protocol} {local}} \
{eq {$received_protocol} {spam-scanned}} } {true} {false} }"
data = ${if exists{/etc/virtual/${domain}/majordomo/private.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/private.aliases}}}}
domains = lsearch;/etc/virtual/domainowners
file_transport = address_file
group = daemon
pipe_transport = majordomo_pipe
retry_use_local_part
user = majordomo

domain_filter:
driver = redirect
allow_filter
no_check_local_user
condition = "${if exists{/etc/virtual/${domain}/filter}{yes}{no}}"
user = "mail"
file = /etc/virtual/${domain}/filter
file_transport = address_file
pipe_transport = virtual_address_pipe
retry_use_local_part
no_verify

uservacation:
driver = accept
condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/vacation.conf}{yes}{no}}
require_files = /etc/virtual/${domain}/reply/${local_part}.msg
transport = uservacation
unseen

userautoreply:
driver = accept
condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/autoresponder.conf}{yes}{no}}
require_files = /etc/virtual/${domain}/reply/${local_part}.msg
transport = userautoreply
unseen

virtual_aliases_nostar:
driver = redirect
allow_defer
allow_fail
data = ${if exists{/etc/virtual/${domain}/aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/aliases}}}}
file_transport = address_file
group = mail
pipe_transport = virtual_address_pipe
retry_use_local_part
unseen
#include_domain = true

virtual_user:
driver = accept
condition = ${if eq {}{${if exists{/etc/virtual/${domain}/passwd}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/passwd}}}}}{no}{yes}}
domains = lsearch;/etc/virtual/domainowners
group = mail
retry_use_local_part
transport = virtual_localdelivery

virtual_aliases:
driver = redirect
allow_defer
allow_fail
data = ${if exists{/etc/virtual/$domain/aliases}{${lookup{$local_part}lsearch*{/etc/virtual/$domain/aliases}}}}
file_transport = address_file
group = mail
pipe_transport = virtual_address_pipe
retry_use_local_part
#include_domain = true

# This director handles forwarding using traditional .forward files.
# If you want it also to allow mail filtering when a forward file
# starts with the string "# Exim filter", uncomment the "filter" option.
# The check_ancestor option means that if the forward file generates an
# address that is an ancestor of the current one, the current one gets
# passed on instead. This covers the case where A is aliased to B and B
# has a .forward file pointing to A. The three transports specified at the
# end are those that are used when forwarding generates a direct delivery
# to a file, or to a pipe, or sets up an auto-reply, respectively.

userforward:
driver = redirect
allow_filter
check_ancestor
check_local_user
no_expn
file = $home/.forward
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
no_verify

system_aliases:
driver = redirect
allow_defer
allow_fail
data = ${lookup{$local_part}lsearch{/etc/aliases}}
file_transport = address_file
pipe_transport = address_pipe
retry_use_local_part
# user = exim

localuser:
driver = accept
check_local_user
condition = "${if eq {$domain} {$primary_hostname} {yes} {no}}"
transport = local_delivery

# This director matches local user mailboxes.

######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################

# A transport is used only when referenced from a director or a router that
# successfully handles an address.


# Spam Assassin
begin transports

spamcheck:
driver = pipe
batch_max = 100
command = /usr/sbin/exim -oMr spam-scanned -bS
current_directory = "/tmp"
group = mail
home_directory = "/tmp"
log_output
message_prefix =
message_suffix =
return_fail_output
no_return_path_add
transport_filter = /usr/bin/spamc -u ${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}
use_bsmtp
user = mail
# must use a privileged user to set $received_protocol on the way back in!


#majordomo
majordomo_pipe:
driver = pipe
group = daemon
return_fail_output
user = majordomo

# This transport is used for local delivery to user mailboxes in traditional
# BSD mailbox format. By default it will be run under the uid and gid of the
# local user, and requires the sticky bit to be set on the /var/mail directory.
# Some systems use the alternative approach of running mail deliveries under a
# particular group instead of using the sticky bit. The commented options below
# show how this can be done.

local_delivery:
driver = appendfile
delivery_date_add
envelope_to_add
file = /var/mail/$local_part
group = mail
mode = 0660
return_path_add
user = ${local_part}

## for delivering virtual domains to their own mail spool

virtual_localdelivery:
driver = appendfile
create_directory
delivery_date_add
directory_mode = 700
envelope_to_add
file = /var/spool/virtual/${domain}/${local_part}
group = mail
mode = 660
return_path_add
user = "${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}"
quota = ${if exists{/etc/virtual/${domain}/quota}{${lookup{$local_part}lsearch*{/etc/virtual/${domain}/quota}{$value}{0}}}{0}}
lock_retries = 30
lock_fcntl_timeout = 3s

## vacation transport
uservacation:
driver = autoreply
file = /etc/virtual/${domain}/reply/${local_part}.msg
from = "${local_part}@${domain}"
log = /etc/virtual/${domain}/reply/${local_part}.log
no_return_message
subject = "${if def:h_Subject: {Autoreply: ${quote:${escape:$h_Subject:}}} {I am on vacation}}"
text = "\
    ------ ------\n\n\
    This message was automatically generated by email software\n\
    The delivery of your message has not been affected.\n\n\
    ------ ------\n\n"
to = "${sender_address}"
user = mail
    #once = /etc/virtual/${domain}/reply/${local_part}.once

userautoreply:
driver = autoreply
bcc = ${lookup{${local_part}} lsearch {/etc/virtual/${domain}/autoresponder.conf}{$value}}
file = /etc/virtual/${domain}/reply/${local_part}.msg
from = "${local_part}@${domain}"
log = /etc/virtual/${domain}/reply/${local_part}.log
no_return_message
subject = "${if def:h_Subject: {Autoreply: ${quote:${escape:$h_Subject:}}} {Autoreply Message}}"
to = "${sender_address}"
user = mail
#once = /etc/virtual/${domain}/reply/${local_part}.once

# This transport is used for delivering messages over SMTP connections.

remote_smtp:
driver = smtp

# This transport is used for handling pipe deliveries generated by alias
# or .forward files. If the pipe generates any standard output, it is returned
# to the sender of the message as a delivery error. Set return_fail_output
# instead of return_output if you want this to happen only when the pipe fails
# to complete normally. You can set different transports for aliases and
# forwards if you want to - see the references to address_pipe in the directors
# section below.

address_pipe:
driver = pipe
return_output

virtual_address_pipe:
driver = pipe
group = nobody
return_output
user = "${lookup{$domain}lsearch* {/etc/virtual/domainowners}{$value}}"

# This transport is used for handling deliveries directly to files that are
# generated by aliasing or forwarding.

address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add

# This transport is used for handling autoreplies generated by the filtering
# option of the forwardfile director.

address_reply:
driver = autoreply

######################################################################
# RETRY CONFIGURATION #
######################################################################

# This single retry rule applies to all domains and all errors. It specifies
# retries every 15 minutes for 2 hours, then increasing retry intervals,
# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
# hours, then retries every 8 hours until 4 days have passed since the first
# failed delivery.

# Domain Error Retries
# ------ ----- -------


begin retry

* * F,2h,15m; G,16h,1h,1.5; F,4d,8h
[/more]

Там есть примечание:

# By default we do NOT require sender verification.
# Sender verification denies unless sender address can be verified:
# If you want to require sender verification, i.e., that the sending
# address is routable and mail can be delivered to it, then
# uncomment the next line. If you do not want to require sender
# verification, leave the line commented out

#require verify = sender

очень похоже на то, что мне нужно - раскоментировал, заребутил... тот же результат.
Автор: DarkHost
Дата сообщения: 22.02.2007 09:36

Цитата:
не помогло, правда возможно я не туда это вставлял, могли бы вы указать на моем конфиге?


Сразу скажу, некислый конфиг.
primary_hostname вы не указываете? Если я не ошибаюсь, это обязательно(primary_hostname = системному hostname).
qualify_domain я бы тоже на вашем месте указал

Дальше, запустите Exim с ключами дебага, exim -d +all, если я не ошибаюсь, и телнетьтесь к нему. Потом смотрите на каком этапе возникает ошибка.
Автор: verast
Дата сообщения: 22.02.2007 15:40
Здравствуйте, уважаемые админы!
Всех мужчин я с праздником мужским, февральским поздравляю! Быть в жизни на коне, лихими, но а в душе, быть ангелами, желаю!
И очень прошу? ну хоть кто-нибудь обратите внимание на мой вопрос, заданный чуть выше относительно tpop3d. Возможно он был задан не в той теме, но все же !
Автор: ginger
Дата сообщения: 22.02.2007 16:21
verast

Цитата:
Feb 20 15:08:15 spam-killer tpop3d[3102]:password: [strogv@tulaprombank.ru; strogv@tulaprombank.ru] has password type md5, but hash is of incorrect length

Согласно сообщению об ошибке, tpop3d воспринимает пароли как md5, а в вашем случае это crypt, следовательно необходимо поиграться с методом криптования паролей, либо должным образом настроить tpop3d. И вообще, tpop3d пора заменить на Dovecot.
Автор: verast
Дата сообщения: 26.02.2007 08:48
спасибо Ginger за ответ. Противоречие в криптовании я понимала, но вот как должным образом настроить tpop3d не нашла. Вопрос был задан после того, как я все перепробовала и прочитала. Если вы сталкивались с подобной проблемой, подскажите где еще можно почитать о настройке Tpop3d в плане метода криптования. Dovecot следующий этап. Как-то не хочется бросать, если осталось совсем чуть-чуть.
Автор: ginger
Дата сообщения: 26.02.2007 12:01
verast
Для начала покажите нам свой файл конфигурации tpop3d.conf, а так же ваш запрос на добавления почтового пользователя в MySQL.
Tpop3d, мною более не поддерживается, как и многими из присутствующих в этом топике, поэтому все же нашей рекомендацией будет использовать что-то более современное и надежное в плане безопасности, например Dovecot.
Автор: verast
Дата сообщения: 26.02.2007 12:49
все что вы просите показать, уже показано, см. чуть выше в моем вопросе.. Вы по-видимому не заметили, поскольку текс не в тегах, как рекомендуется.

Добавлено:
в протоколе добавления пользователя опечатка в слове value (написано Valies)
Автор: ginger
Дата сообщения: 26.02.2007 15:04
verast

Цитата:
auth-mysql-pass-query: SELECT CONCAT(home,'/Maildir'),CONCAT('(crypt)',crypt),'mail','maildir' \
FROM users WHERE id = '$(local_part)' \
AND mbox_host = '$(domain)' \
AND active = 'Y'

Вы самый настоящий ленивец! И вообще, помоему я приводила пример своего конфига, где как мне кажется этой ошибки нет?
Автор: verast
Дата сообщения: 27.02.2007 13:42
Немного обидно, что вы меня так обозвали, поскольку дело не в лености. Я ваш документ "внимательно читаем ...." взяла как руководство к действию и конфиг полностью скопировала к себе и прежде чем обратиться в форум много перепробовала. Я даже не поняла в чем была проблема, поскольку та ошибка, которая оказалась в приведенном мною конфиге - это результат многих проб с конфигом. Сейчас еще раз полностью скопировала этот параметр в конфиг, удалила лишние пробелы после / и все прошло, хотя такие манипуляции я проводила несколько раз. Спасибо за науку. Пробел в знании mysql и синтаксиса команд.
Автор: alexpogodin
Дата сообщения: 27.02.2007 17:22
Уважаемые!

Наблюдаю серьезную задержку при подключении к Екзиму, до 40 сек. Причем из локальной сети все нормально, как и положено моментально выдается приглашение. Сервер стоит за файрволом в локальной сети, порт 25 мапится на него.
Стал экспериментировать с конфигом. rfc1413_hosts = !* никак ситуацию не изменило (к тому же в конфиге УЖЕ было rfc1413_query_timeout = 0s). А вот комментирование host_lookup = * дало желаемый результат - приглашение выдается моментально.

Теперь вопрос. В конфиге рекомендуют эту опцию оставлять. А чем грозит ее удаление кроме того что в логах я буду видеть IP адреса. Это может зацепить какие-то ACL-и?

С уважением.

Добавлено:
С задержкой разобрался. Пробовал с хоста который имел реверс на несуществующий домен. Все нормально, но ответ на вопрос хотелось бы услышать дабы утолить свой академический интерес .
Автор: georgesitov
Дата сообщения: 28.02.2007 12:26
Подскажите пожалуйста - возникла такая необходимость - всю приходящую посту с определенного адреса (точнее если в адресе встречается какое либо слово - к примеру spam) на любой внутренний адрес пересылать на какойнибудь другой адрес, а изначальному получателю не доставлять.
то есть пришло к примеру с адреса testspam@test но мой внутренний адрес my@corp,
и доставилось в ящик my2@corp ?
Автор: DarkHost
Дата сообщения: 28.02.2007 13:51

Цитата:
Подскажите пожалуйста - возникла такая необходимость - всю приходящую посту с определенного адреса (точнее если в адресе встречается какое либо слово - к примеру spam) на любой внутренний адрес пересылать на какойнибудь другой адрес, а изначальному получателю не доставлять.
то есть пришло к примеру с адреса testspam@test но мой внутренний адрес my@corp,
и доставилось в ящик my2@corp ?


Код: my_redirect_router:
driver = redirect
condition = ${if match{$sender_address}{spam}{1}{0}}
data = my2@corp

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: MS Outlook Возвращает: Не удается доставить.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.