PDA

Bekijk Volledige Versie : [hoe] exim fallback server



nzyme
23/12/06, 16:27
heeft iemand een tipje over hoe ik een fallback mailserver moet inrichten ? En dan met name welke bestanden ik van de DA-host moet halen, aangzien daar alle users/domains defined zijn. Ik zal periodiek een en ander moeten overzetten om de users/domains in sync te houden, maar welke bestanden...
En welke instellingen in exim(.conf) ..

Wido
23/12/06, 16:57
Draait de fallback ook DirectAdmin? Je kan met Postfix namelijk in 10 minuten een fallback opzetten.

Je hebt daarvoor alleen je /etc/virtual/domains nodig.

nzyme
23/12/06, 17:02
hmz, go on :) alls postfix makkelijker is is dat natuurlijk veeel beter :)

Wido
23/12/06, 17:20
Je kan bij Postfix een file opgeven in de main.cf voor alle domeinen waarvoor hij relayed.

Maak een cron die elk uur de domains file van je DA server haalt en je Postfix reload en je bent klaar.

Ik weet alleen zo niet meer welke syntax je moet hebben in je main.cf

nzyme
23/12/06, 17:28
Je kan bij Postfix een file opgeven in de main.cf voor alle domeinen waarvoor hij relayed.

Maak een cron die elk uur de domains file van je DA server haalt en je Postfix reload en je bent klaar.

Ik weet alleen zo niet meer welke syntax je moet hebben in je main.cf

ah ok, gaat ik dat eens ff uitproberen. Thnx :)

nzyme
24/12/06, 23:55
hm, wil nog niet echt lukken dit..

clean debian Sarge installatie aangevuld met apt-get install postfix.

Heb de webpagina van postfix bekeken (over fallback mx) en die zeggen dat ik slechts dit nodig heb in mijn main.cf: (plus wat kleine aanvullingen)


relay_domains = $mydestination mijndomein.nl
smtpd_recipient_restrictions = permit_mynetworks,reject _unauth_destination,che$
relay_recipient_maps = hash:/etc/postfix/relay_recipients
relayhost = mijnMX1hostip
relay_domains = /etc/virtual_email_users
myhostname = mx2.mijndomein.nl

En dan /etc/init.d/postfix restart

nu pak ik de laatste system backup van DA en daar zie ik een virtual.gz met daarin het mapje virtual die alle users bevat. Plus een bestand 'domains' met daarin op iedere regel een van de domeinen die ik host.
Dan moet ik iedere map (die op een klant slaat) in gaan en daar uit het passwd bestand de naam van de mailbox halen om op die manier alleen echte mailadressen toe te laten op deze (backup) mailserver:


info:$1$A3mINesV$1E15TheHhkGib9Fy05LOg6

probleem is nu echter dat ik geen id heb hoe ik verder moet...

post jouw main.cf maar eens Wido ;)

ju5t
25/12/06, 01:33
We hebben het volgende in acl_check_rcpt:


################################################## ############
# RELAY #
################################################## ############

accept local_parts = postmaster : abuse : hostmaster
domains = +relay_to_domains

accept domains = +local_domains
endpass
verify = recipient

accept domains = +relay_to_domains
endpass
verify = recipient

################################################## ###########
# DO NOT PERMIT RELAY #
################################################## ###########
deny message = Relay not permitted for $domain\nPlease read http://website.com/antispam/
domains = !+relay_to_domains


En dit onderin:


################################################## ####################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
################################################## ####################
begin routers

manual_route:
condition = "${if and { \
{!def:h_X-Spam-Flag:} \
{!eq {$received_protocol}{spam-scanned}} \
{!eq {$received_protocol}{local}} \
} {1}{0}}"

transport = remote_smtp
driver = manualroute
domains = ! +local_domains : +relay_to_domains
route_data = ${lookup{$domain} lsearch{/etc/exim/manual_routes}}

################################################## ####################
# TRANSPORTS CONFIGURATION #
################################################## ####################
begin transports

remote_smtp:
driver = smtp
transport_filter = /usr/bin/spamc

################################################## ####################
# RETRY CONFIGURATION #
################################################## ####################
begin retry

# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h


Hier moet je al een stuk verder mee kunnen komen als het goed is. Dit is dan wel voor Exim.

relay_to_domains is de file met waar op elke newline een domein staat waar voor gerelayed mag worden.

/etc/exim/manual_routes heeft op elke regel de domeinnaam met daarachter een dubbele punt met daarachter het IP adres waar gerelayed heen wordt.

nzyme
26/12/06, 13:59
als ik dit goed lees check je dus niet of de bewuste mailbox ook echt bestaat... (maar je hebt wel een spamfilter)

en dit is gewoon "apt-get install exim" en dan het bewerken van "acl_check_rcpt" ? (+ natuurlijk de relay_to_domains en manual_routes)

ju5t
28/12/06, 12:22
Ja daar komt het wel vrij aardig op neer. Spam en virus check zit erin, maar verder is het niet zo bijzonder.

Teun
28/12/06, 14:25
Handig topic :) ben zelf ook met zoiets bezig, als je nog iets wil weten nzyme -> mag je me gerust pm'en ofzo.

Wido
28/12/06, 14:29
De relay_domains in Postfix moeten ook werken.

De file /etc/virtual/domains moet je genoeg aan hebben.

Een stukje pseudo code:


#!/bin/sh

scp root@server1.domein.tld:/etc/virtual/domains /etc/postfix/domains
/etc/init.d/postfix reload


In je main.cf zet je dan:

relayhost =
relay_domains = /etc/postfix/domains

De main.cf van mijn MX20

myhostname = mx20.pcextreme.nl
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mx20.pcextreme.nl, localhost
relay_domains = /etc/postfix/fallback_mx
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

body_checks = pcre:/etc/postfix/body_checks
header_checks = pcre:/etc/postfix/header_checks

smtpd_delay_reject = no
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_hostname, reject_non_fqdn_hostname
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_unauth_pipelining, reject_non_fqdn_recipient
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client

Ik denk dat je daar wel uit komt.

nzyme
28/12/06, 21:33
moet relayhost hierboven niet het ip bevatten van je primaire MX record ?

edit:
iig, ik heb het bovenstaande min of meer toegepast en ik check het steeds met dnsreport en mijn tweede server laat zich nu wel zien :)


mail.weites.com:
220 hellfish.weites.com ESMTP Exim 4.54 Thu, 28 Dec 2006 21:54:57 +0100
mail2.weites.com:
220 vizitor.weites.com ESMTP Postfix

alleen zit ik hier nog mee:


ERROR: I could not complete a connection to one or more of your mailservers:
mail2.weites.com: Timed out [Last data sent: RCPT TO: ]


......