Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: exim: users

my server is used as an open relay, need help

 

 

exim users RSS feed   Index | Next | Previous | View Threaded


v.augustin at multiartstudio

May 2, 2002, 9:57 AM

Post #1 of 2 (191 views)
Permalink
my server is used as an open relay, need help

This is a multi-part message in MIME format.
--
hi out there,
i need some help with my configuration of exim 4,
i checked the internet, but now im more confused than before...
im an absolut beginner in mail... working nights on compiling exim4 and
set up a working configuration with exim4 and postgres and
courier-imap... its working now! (be very happy :))

but now my problem is... my server was ...or is still used as an open
relay, and i see the spam in the logfile... can anybody help me how to
setup acl or authentication that denies relying over my smtp-host? im
hosting some domains on it, and have some mx-entrys to a fixed ip...(i
got five ips and exim is working fine with just one of it :)
ok what i want to do is checking the sender against his helo_name
($sender_helo_name) listed in my domaintable in the postgres database...
authentication with smtp is working fine with this conditions.. but i
dont know exactly how acl works....
can anybody help me? could send me a sample acl?
that would be greatful :)

especially i got the problem that most parts of exim4-spec is using
invalid syntax... and unknown keywords (? i tried out but still errors
with most of them)

i appended my exim4-config to the mail, i will try, whis is my first
posting to the list....

...working hard ...
volker


--
#### etc/configure for exim4 #####

###make connection to postgres
hide pgsql_servers = localhost::PORT/DATABASE/USER/PASSWD

#i dont need this, i think so :), my default hostname is fine :)
#primary_hostname = tomcat.mydomain.de

####looking up my domains in a postgres database... yeah i need 5 days till i know how to do so....
domainlist local_domains = @:${lookup pgsql{SELECT domain FROM domain WHERE aktiv=1 and localdomain=0}{$value}fail}

domainlist relay_to_domains = *
hostlist relay_from_hosts = 127.0.0.1

acl_smtp_rcpt = acl_check_rcpt

###thats cool.... lol
#host_reject_connection = *

# qualify_domain =
# qualify_recipient =
# allow_domain_literals

###has no effect....:
tls_certificate = /home/Exim/etc/ca.crt
tls_privatekey = /home/Exim/etc/ca.key
tls_verify_hosts = *

###doesnt work for exim4! hmpf!!!
#tls_verify_ciphers = DES-CB3-SHA:IDEA-CBC-MD5
#auth_over_tls_hosts = *

never_users = root

host_lookup = *

rfc1413_hosts = *
rfc1413_query_timeout = 30s

# sender_unqualified_hosts =
# recipient_unqualified_hosts =
# percent_hack_domains =

ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d

######ACL#######
begin acl

acl_check_rcpt:

####oh oh what does all this mean? i figured out some conditions ... , they are working....hmmmm, but i dont know exactly what they will really do....(???????)
# trying to verify sender and set up a condition, but relaying is still possible :((
accept hosts = :
deny local_parts = ^.*[@%!/|]
require condition = "${if and { \
{!eq{$sender_helo_name}{}} \
{!eq{$domain}{}} \
{eq{$sender_helo_name}{${lookup pgsql{SELECT domain FROM domain WHERE domain='$sender_helo_name' limit 1}{$value}fail}}} \
} {yes}{no}}"

accept local_parts = postmaster
domains = +local_domains
require verify = sender


# trying to verify sender and set up a condition, but relaying is still possible :((
accept domains = +local_domains
endpass
message = unknown user
verify = sender : recipient
require condition = "${if and { \
{!eq{$sender_helo_name}{}} \
{!eq{$domain}{}} \
{eq{$sender_helo_name}{${lookup pgsql{SELECT domain FROM domain WHERE domain='$sender_helo_name' limit 1}{$value}fail}}} \
} {yes}{no}}"



# trying to verify sender and set up a condition, but relaying is still possible :((
accept domains = +relay_to_domains
require condition = "${if and { \
{!eq{$sender_helo_name}{}} \
{!eq{$domain}{}} \
{eq{$sender_helo_name}{${lookup pgsql{SELECT domain FROM domain WHERE domain='$sender_helo_name' limit 1}{$value}fail}}} \
} {yes}{no}}"
# endpass
message = unrouteable address
verify = recipient : sender

#hmmmm... is this my problem , i try all my acl with auth-smtp with netscape, but in the logfiles i see a lot of relaying mails
accept authenticated = *

# trying to verify sender and set up a condition, but relaying is still possible :((
accept hosts = +relay_from_hosts
# senders = mydomain [at] anotherhostwithanothersmt\.de
# require condition = "${if and { \
# {!eq{$sender_helo_name}{}} \
# {!eq{$domain}{}} \
# {eq{$sender_helo_name}{${lookup pgsql{SELECT domain FROM domain WHERE domain='$sender_helo_name' limit 1}{$value}fail}}} \
# } {yes}{no}}"
deny message = relay not permitted



########ROUTERS########
begin routers

###the system aliases....it seems that i should not delete this section? hmmm....
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
user = exim
file_transport = address_file
pipe_transport = address_pipe

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

###for local-users with shell account
localuser:
driver = accept
domains = @
check_local_user
transport = local_delivery

###ok , working fine, im looking for local domains with a registered mailbox account in the database
virtual_known_local_user:
driver = accept
domains = ${lookup pgsql {select domain from domain where domain='$domain' and id=(select domain_id from account where name='$local_part' and domain_id=(select id from domain where domain='$domain' and aktiv=1 and localdomain=0)and aktiv=1 and is_alias=0) and aktiv=1 and localdomain=0}{$value}fail}
transport = virtual_delivery


###this is working fine if the rcpt is to a local domain, but not in the database now...
######this is only because im just figuring out how to manage aliases with postgres ;)
virtual_local_user:
driver = accept
domains = ${lookup pgsql {select domain from domain where domain='$domain' and aktiv=1 and localdomain=0 limit 1}{$value}fail}
transport = virtual_delivery

###i think thats ok
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more


#######TRANSPORTS########
begin transports
remote_smtp:
driver = smtp
###do i need some acls here?
###what the hell is the syntax for exim 4??????

#mail for local users delivered into a maildir
local_delivery:
driver = appendfile
create_directory = true
directory_mode = 700
directory = /home/2nd/spool/Maildir/.localhost/${local_part}/
user = exim
group = $local_part
maildir_format
mode = 0660
delivery_date_add
envelope_to_add
return_path_add

virtual_delivery:
driver = appendfile
create_directory = true
directory_mode = 700
directory = /home/2nd/spool/Maildir/.virtual/${domain}/${local_part}/
user = exim
group = exim
maildir_format
mode = 0660
delivery_date_add
envelope_to_add
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

# 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 6 hours until 4 days have passed since the first
# failed delivery.

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

* * F,2h,15m; G,16h,1h,1.5; F,4d,6h



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

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

begin rewrite
#no rewrites for now....


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

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

begin authenticators

###this fixed plaintext-authentication is working fine with netscape :)
#plain_fixed:
# driver = plaintext
# public_name = PLAIN
# client_send = \
# "^username^password"
# server_condition = \
# ${if and {{eq{$2}{send}}{eq{$3}{mail}}}{yes}{no}}

###this postgres-based plaintext-authentication is working fine with netscape :)
db_plain_auth:
driver = plaintext
public_name = PLAIN
client_send = \
"^username^password"

server_condition = "${if and { \
{!eq{$2}{}} \
{!eq{$3}{}} \
{eq{$3}{${lookup pgsql{SELECT passwd FROM account WHERE account='$2' limit 1}{$value}fail}}} \
} {yes}{no}}"


### i didnt test the md5-section , just write it in
md5_fixed:
driver = cram_md5
public_name = CRAM-MD5
#here i am using 'send' and 'mail' as user and password ;-)
client_name = "send"
client_secret = "mail"

### i didnt test the login-section
login_fixed:
driver = plaintext
public_name = LOGIN
server_prompts = "User Name : Password"
client_send = \
"^username^password"
#here i am using 'send' and 'mail' as user and password ;-)
server_condition = \
${if and {{eq{$1}{send}}{eq{$2}{mail}}}{yes}{no}}



# End of Exim configuration file
--


Jochen.Erwied at mbs-software

May 3, 2002, 7:05 AM

Post #2 of 2 (184 views)
Permalink
Re: my server is used as an open relay, need help [In reply to]

Thursday, May 02, 2002, 6:57:09 PM, you wrote:

> but now my problem is... my server was ...or is still used as an open
> relay, and i see the spam in the logfile... can anybody help me how to
> setup acl or authentication that denies relying over my smtp-host? im

I'd start with a minimalist version of acls, maybe with a flat file
instead of using postgres. Especially if you're a beginner, you
shouldn't start with the most complex things.

> hosting some domains on it, and have some mx-entrys to a fixed ip...(i
> got five ips and exim is working fine with just one of it :)

Putting a mailserver to work without knowing what you're doing is
quite a risk, don't you think so?

Here's the setup I'm using (without TLS, though):

acl_smtp_rcpt = check_recipient

domainlist local_domains = /etc/exim/local_domains
domainlist relay_domains = partial-lsearch;/etc/exim/relay_domains
hostlist relay_hosts = localhost : 10.0.0.0/8 : 192.168.100.0/24 : 192.168.2.0/24

check_recipient:
accept hosts = :
accept recipients = postmaster [at] mbs-software : [and some more]
accept domains = +local_domains
accept domains = +relay_domains
accept hosts = +relay_hosts
deny message = relay not permitted

File local_domains:
localhost
mbs-software.de
ues-klebetechnik.de
klebetechnik.de

File relay_domains:
*.mbs-software.de
*.ues-klebetechnik.de
*.klebetechnik.de

exim users RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.