Konfiguracja EXIM - plik configure
Z pAmIęTnIkA nIeGrZeCzNeGo AnIołkA
Zabieramy siê za konfiguracje naszego EXIMA:##########################################################
# Runtime configuration file for Exim #
##########################################################
##########################################################
# MAIN CONFIGURATION SETTINGS #
##########################################################
# nazwa naszego Hosta
primary_hostname = domena.pl
# Tutaj wpisujemy domeny jakie mamy i nasz EXIM bedzie obs³ugiwa³
domainlist local_domains = domena.pl : domena1.pl : domena2.pl
domainlist relay_to_domains =
# Którym hostom pozwalamay na relaying, poni¿ej mamy sieæ lokaln± z
mask± 24-bitowa
hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/24
# ustawienia dla list ACL
acl_smtp_data = acl_check_data
# nasz Arcavir
av_scanner = arcavird
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_auth = acl_check_auth
# filtr tematów wiadomo¶ci
system_filter = /etc/exim/filtr_tematow
message_body_visible = 5000
system_filter_file_transport = address_file
system_filter_reply_transport = address_pipe
never_users = root : nobody
# Zadanie lookupu od hosta
host_lookup = *
# ¯±danie odpowiedzi od sendera wg, standardu rfs 1413
rfc1413_hosts = *
rfc1413_query_timeout = 30s
# Po dwóch dniach usuwa b³edne wiadomo¶ci
ignore_bounce_errors_after = 2d
# Ustawienia dla TLS
tls_advertise_hosts = *
tls_certificate = /etc/exim/cert/exim.crt
tls_privatekey = /etc/exim/cert/exim.key
tls_dhparam = /etc/exim/cert/dhparam.pem
# po 3 dniach usuwa wiadmosci frozen ze spool
timeout_frozen_after = 3d
check_log_space = 3M
#######################################################
# ACL CONFIGURATION #
# Specifies access control lists for incoming SMTP mail #
#######################################################
# Listy ACL
begin acl
acl_check_data:
# zabraniamy na przesy³anie plików com,vbs,bat,pif,scr
#wiadomo dlaczego
deny message = $found_extension files are not accepted here
demime = com:vbs:bat:pif:scr
deny message = Niedozwolony zalacznik MIME ($demime_reason)
demime = *
condition = ${if >{$demime_errorlevel}{2}{1}{0}}
# po znalezieniu wirusa przez Arcavir zostaje nam ¶lad w logu
deny message = Wiadomosc zawiera wirusa {$malware_name}
malware = *
accept
# Autoryzacja
acl_check_auth:
accept encrypted = *
accept hosts = *
accept condition = ${if eq{${substr_0_5:$smtp_command_argument}}(PLAIN}{yes}{no}}
accept condition = ${if eq{${substr_0_8:$smtp_command_argument}}{LOGIN}{yes}{no}}
acl_check_rcpt:
# Bia³a lista - u¿ywajac systemu RBL (czarnych list ) zdarza siê ¿e
# umieszczone na nich s± hosty z których otrzymujemy wiadomo¶ci, np.
# o2.pl, onet.pl, a tak¿e hosty uslugodawców internetu np. orange.pl.
# U¿ytkownicy nie mog¿ wtedy korzystaæ z poczty za po¶rednictwem po³±czeñ
# od operatorów komórkowych, dodajemy wiêc do tej listy zaufane hosty,
# lub domeny, jeden/judna w wierszu w formacie IP, IP/maska, *.domena
accept hosts = /etc/exim/listy_acl/bialalista :
deny local_parts = ^.*[@%!/|] : ^\\.
require verify = sender
# Dodatkowa opcja - mamy pewn± grupê userów w domenie np.
# domena.pl i chcemy wyslaæ do wszystkich wiadomo¶æ, mo¿na poprostu
# dodac odbiorców w programie pocztowym, ale mo¿na te¿ zrobiæ alias do
# np. wszyscy@domena.pl, poni¿szy wpis powoduje to ¿e do
# wszyscy@domena.pl mo¿e tylko wyslaæ osoba która znajduje siê na li¶cie
# wszyscy@domena.pl, zabezpiecza to przez masowym docieraniem spamu na
# konta u¿ytkowników
deny
message = "Nie jestes uprawniony aby wyslac poczte na ten adres"
condition = ${if exists{/etc/exim/${local_part}@${domain}}{1}{0}}
senders = ! /etc/exim/${local_part}@${domain}
# Definicja w³asnej Czarnej listy
deny
message = "Tych klientow nie obslugujemy"
hosts = /etc/exim/listy_acl/czarnalista :
# Ustawienia RBL, najbardziej extremalna z tej listy jest
# sbl-xbl.smaphaus.org, na niej jest o2.pl onet.pl
deny
message = rejected because $sender_host_address jest na czarnej liscie $dnslist_domain\n$dnslist_text
dnslists = bl.spamcop.net : sbl-xbl.spamhaus.org : relays.ordb.org : dnsbl.njabl.org : dnsbl.sorbs.net
#
deny
dnslists = blockholes.mail-abuse.org : relays.ordb.org : sbl-xbl.spamhaus.org : dialup.mail-abuse.org :
bl.spamcop.net : dnsbl.njabl.org : dnsbl.sorbs.net
warn message = X-Warning: $sender_host_address is in a black list at $dnslist_domain
dnslists = dialups.mail-abuse.org
############################################################
# Bez komentarza, wiadomo o co chodzi
accept domains = +local_domains
endpass
message = nieznany uzytkownik
verify = recipient
accept domains = +relay_to_domains
endpass
message = nieznany adres
verify = recipient
accept hosts = +relay_from_hosts
# Akceptujemy tylko autoryzowanych u¿ytkownikow
accept authenticated = *
# Je¿eli wysy³aj±cy ma z³e has³o lub login to w przypadku np. Outlook
# Express w monicie blêdu poka¿e mu sie tekst ponizej
deny
message = authentication PLAIN or LOGIN required - relay not permitted
###########################################################
# 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 = 127.0.0.0/8
no_more
# Ustawienia aliasów, celowo ustawiony plik aliasów ma
# format $domain, z tego powodu ze jezeli nasz Exim obs³uguje
# kilka domen musimy rozgraniczyc konta userów do danej domeny
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/exim/$domain}}
file_transport = address_file
pipe_transport = address_pipe
# Ustawienia dla pliku .forward w katalogu u¿ytkownika
userforward:
driver = redirect
check_local_user
file = $home/.forward
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
# vacation - automatyczna odpowied¼
uservacation: driver = accept require files = /var/mail/vacation/${local_part}/vacation.msg
condition = ${if or {{match {$h_precedence:} {(?i)junk|bulk|list}} {eq {sender_address} {}}} {no} {yes}}
senders = " ! ^.*-request@.*:\
! ^.*@list*.*:\
! ^owner-.*@.*:\
! ^postmaster@.*:\
! ^listmaster@.*:\
! ^mailer-daemon@.*\
! ^root@.*"
no_expn
transport = vacation_reply
unseen
no_verify
# Lokalne skrzynki pocztowe
localuser:
driver = accept
check_local_user
transport = local_delivery
############################################################
# TRANSPORTS CONFIGURATION #
############################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
############################################################
begin transports
# Ustawienia transportu wiadomo¶ci, dodamy tu sobie stopkê z informacj±
# ¿e poczta byla skanowana antyvirem
# do tego celu ¶wietnie nadaje siê maly programik altermime, opis
# konfiguracji w dalszej czêsci
remote_smtp:
debug_print = "T: remote_smtp for @local_part@$domain"
driver = smtp
transport_filter = /usr/local/bin/sh.stopka $sender_address
# gdzie trafiaj± moje maile ? odpowiedz poni¿ej wraz z dopisaniem stopki.
local_delivery:
driver = appendfile
transport_filter = /usr/local/bin/sh.stopka $sender_address
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = users
# dalsze ustawienia pliku .forward
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
# transport dla vacation
vacation_reply:
driver = autoreply
file = /var/mail/vacation/$local_part/vacation.msg
file_expand
from = System Automatycznej Odpowiedzi
<$original_local_part@orginal_domain>
log = /var/mail/vacation/$local_part/vacation.db
once_repeat = 7d
subject = ${if def:h_Subject: {Re: ${quote:${escape:${length_50:$h_Subject:}}} (autoreply)} {Informacja} }
text = "\
Witaj $h_from\n\n\
Ta wiadomosc zostala wygenerowana automatycznie\n\
Tekst ponizej zawiera informacje od uzytkownika:\n\
===================================================\n\n\
"
to = "$sender_address"
#############################################################
# RETRY CONFIGURATION #
#############################################################
# Te ustawienia powoduj± ¿e np. je¿eli pad³ jaki¶ serwer odbiorcy do
# którego piszesz to po czasie jaki tu jest ustawiony wiadomo¶æ bêdzie
# powtórnie wys³ana
begin retry
# 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
##############################################################
# AUTHENTICATION CONFIGURATION #
##############################################################
# Ustawienia autoryzacji pwcheck.
begin authenticators
fixed_plain:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_condition = ${if pwcheck{$2:$3}{1}{0}}
server_set_id = $2
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if pwcheck{$1:$2}{1}{0}}
server_set_id = $1
# I to by bylo na tyle pozostaje generacja certyfikatów dla TLS
openssl req -new -x509 -days 365 -nodes -out /etc/exim/cert/exim.crt -keyout /etc/exim/exim.key openssl dhparam -out /etc/exim/dhparam.pem 1024