Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dodatkowy serwer pocztowy

6 views
Skip to first unread message

LFC

unread,
Mar 3, 2020, 8:40:02 AM3/3/20
to
W domenie jest zapisany jeden serwer pocztowy, widoczny w widoku
zewnętrznym i wewnętrznym
Chciałby postawić drugi serwer, żeby trochę poeksperymentować z inną
konfiguracją i może uruchomić coś nowocześniejszego niż sendmail z
obsługą bazodanową i jakimś webmailem
Pytanie brzminastępująco jeżeli w widoku wewnętrznym dns wpiszę go jako
kolejny serwer pocztowy:
@ IN MX 10 poczta.domena.pl
@ IN MX 20 mail.domena.pl

dalej oczywiści adresy IP

Zakładam, ze od strony zewnętrznej nic się nie zmieni, natomiast
interesuje mnie, jaki będzie efekt w widoku wewnętrznym, czyli co się
stanie jeżeli użytkownik na serwerze podstawowym skieruje pocztę do
usera zapisanego w tym drugim i na odwrót, albo zwyczajnie się pomyli i
wpisze błedny adres mailowy z prawidłowoą domeną.

Dotychczasowy układ działa na sendmailu + dovecot z różnymi milterami a
myślę o postfiksie z dovecot i roundcube + mysql + dodatki typu
spamassasin czy clamav.
Czy po wpisaniu w domenę, tak jak myślę host mail.domen.pl będzie szansa
poeksperymentowac bezboleśnie z nowym ukłądem?

LFC

Lemat

unread,
Mar 3, 2020, 9:40:43 AM3/3/20
to
W dniu 03.03.2020 o 14:36, LFC pisze:
"Użytkownik" czyli człowiek z outlookiem, thunderbirdem nie używa
rekordów MX, używa tylko A.
"Client" czyli inny serwer pocztowy używa rekordów MX i on będzie
wybierał serwer według priorytetu w MX. Jeżeli twoja 10 będzie zawsze
dostępna to 20 nie otrzyma poczty w ogóle. Masz inne serwery w LANie?


--
Pozdrawiam
Lemat

Piotr Lechowicz

unread,
Mar 3, 2020, 10:03:35 AM3/3/20
to
W dniu 2020-03-03 o 14:36, LFC pisze:

> w widoku wewnętrznym dns wpiszę go jako kolejny serwer pocztowy:
> @    IN MX    10    poczta.domena.pl
> @    IN MX    20    mail.domena.pl

> co się stanie jeżeli użytkownik na serwerze podstawowym skieruje pocztę do usera zapisanego w tym drugim i na odwrót

Chyba nie do końca widzę twoją koncepcję: chcesz mieć innych użytkowników w tej samej domenie na zapasowym niż na podstawowym?
IMHO to się rozmija z ideą zapasowego MX, który z założenia powinien (musi?) mieć dostęp do info o adresach w domenie z podstawowego, ale sam nie hostuje skrzynek pocztowych userów - jest tylko (buforującym) forwarderem.

, albo zwyczajnie się pomyli i wpisze błedny adres mailowy z prawidłowoą domeną.
jw, podstawowy ma całą bazę adresów w domenie i powinien odrzucić tego maila z kodem 511 user unknown.

> a myślę o postfiksie z dovecot i roundcube + mysql + dodatki typu spamassasin czy clamav.
Informacyjnie: mam taką konfigurację z sendmailem jako MTA (tylko bez sa).

> Czy po wpisaniu w domenę, tak jak myślę host mail.domen.pl będzie szansa poeksperymentowac bezboleśnie z nowym ukłądem?
Eksperymentowanie byłoby bezbolesne bez ruszania DNSa, bo jak coś skopiesz w testowych konfigach to z dużym prawdopodobieństwem pogubisz potrzebne maile.
Zawsze możesz eksperymentować karmiąc testówkę z ręki.
DNS to ostania rzecz, jaką bym zmieniał przy implementacji backup MXa.

Piotr

Andrzej A. Filip

unread,
Mar 3, 2020, 11:19:05 AM3/3/20
to
Lemat <#@lemat.priv.pl> pisze:
> […]
> "Client" czyli inny serwer pocztowy używa rekordów MX i on będzie
> wybierał serwer według priorytetu w MX. Jeżeli twoja 10 będzie zawsze
> dostępna to 20 nie otrzyma poczty w ogóle. […]

A spam to pies? :-)

--
Andrzej A. Filip

LFC

unread,
Mar 3, 2020, 3:40:02 PM3/3/20
to
W dniu 2020-03-03 o 16:03, Piotr Lechowicz pisze:
> W dniu 2020-03-03 o 14:36, LFC pisze:
>
>> w widoku wewnętrznym dns wpiszę go jako kolejny serwer pocztowy:
>> @    IN MX    10    poczta.domena.pl
>> @    IN MX    20    mail.domena.pl
>
>> co się stanie jeżeli użytkownik na serwerze podstawowym skieruje
>> pocztę do usera zapisanego w tym drugim i na odwrót
>
> Chyba nie do końca widzę twoją koncepcję: chcesz mieć innych
> użytkowników w tej samej domenie na zapasowym niż na podstawowym?
> IMHO to się rozmija z ideą zapasowego MX, który z założenia powinien
> (musi?) mieć dostęp do info o adresach w domenie z podstawowego, ale sam
> nie hostuje skrzynek pocztowych userów - jest tylko (buforującym)
> forwarderem.
>
> , albo zwyczajnie się pomyli i wpisze błedny adres mailowy z prawidłowoą
> domeną.
> jw, podstawowy ma całą bazę adresów w domenie i powinien odrzucić tego
> maila z kodem 511 user unknown.
>
>> a myślę o postfiksie z dovecot i roundcube + mysql + dodatki typu
>> spamassasin czy clamav.
> Informacyjnie: mam taką konfigurację z sendmailem jako MTA (tylko bez sa).
>

Chętnie się zapoznam ponieważ lubie sendmaila. Historycznie to był
pierwszy serwer pocztowy, który postawiłem dawno temu i po ustawieniu
pierwszej w miarę poprawnej konfiguracji z użytkownikami systemowymi
(później wpadłem na to, żeby im dać shell /bin/false) w zasadzie ja
powielałem w kolejnych rozwiązaniach dodając tylko po kolei autoryzację
sasl, potem spamassassin, dalej clamav, certyfikat Diffiego-Helmanna, a
w końcu regex-milter. Jakoś mi nie przeszkadza, że nie rozumiem tysiąca
iinych dostepnym w konfiguracji opcji.
Słabi mnie tylko mała odporność na różne wybiegi spamerstwa
Z ciekawości czemu bez SA

LFC


LFC

unread,
Mar 4, 2020, 3:20:02 AM3/4/20
to
W dniu 03.03.2020 o 15:40, Lemat pisze:

>
> "Użytkownik" czyli człowiek z outlookiem, thunderbirdem nie używa
> rekordów MX, używa tylko A.
> "Client" czyli inny serwer pocztowy używa rekordów MX i on będzie
> wybierał serwer według priorytetu w MX. Jeżeli twoja 10 będzie zawsze
> dostępna to 20 nie otrzyma poczty w ogóle. Masz inne serwery w LANie?
>
>

Pocztowych nie. Faktycznie uśiwadomiłem soobie, że wpisanie drugiego
MX-a nic nie daje. Wystarczy wpisanie A i będzie można potestować różne
rozwiązania niczym nie ryzykując

LFC

LFC

unread,
Mar 5, 2020, 1:20:02 AM3/5/20
to
W dniu 03.03.2020 o 16:03, Piotr Lechowicz pisze:

> Informacyjnie: mam taką konfigurację z sendmailem jako MTA (tylko bez sa).
>

Podzielisz się jakimś HowTo, bo w sieci nie udało mi się znaleźć tego
typu opisu, który mógłbym zaimplementować na Centosie 6.


LFC

Piotr Lechowicz

unread,
Mar 5, 2020, 4:55:02 PM3/5/20
to

W dniu 2020-03-05 o 07:18, LFC pisze:
Nie mam gotowca.
System mamy identyczny, więc konfigi wklejam "na żywca" (pomijam oczywiste oczywistości).

Generalnie konfiguracja opiera się o Dovecota z bazą userów w MySQL.

I. Od strony sendmaila:

1. uwierzytelnianie w MSA przy wysyłaniu idzie standardowo przez sasla:

[]# cat /etc/sasl2/Sendmail.conf
pwcheck_method:saslauthd

który jest skonfigurowany do odpytywania dovecota przez imap:

[]# cat /etc/sysconfig/saslauthd
MECH=rimap
FLAGS="-c -O 127.0.0.1"

2. LDA - dodałem nowy mailer:

[]# cat /usr/share/sendmail-cf/mailer/dovecot.m4
# 4 virtual mail users
Mdovecot, P=/usr/bin/sudo,
F=l59DFMPn,
S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
M=51200000,
U=virtmail:virtmail,
T=DNS/RFC822/X-Unix,
A=/usr/bin/sudo /usr/libexec/dovecot/dovecot-lda -d $u

dopisany w /etc/mail/sendmail.mc:

MAILER(smtp)dnl
MAILER(dovecot)dnl

i uruchamiany z poziomu mailertable:

example.pl dovecot:dovecot


Tak to działa:
- przy przychodzącej wiadomości do nieistniejącego usera

Mar 2 16:08:40 sendmail[392]: 022F8YF7000392: from=<horacio...@grupomap.com.ar>, proto=ESMTP, daemon=MTA, relay=zfish.mxout.godns.net [76.74.198.66]
Mar 2 16:08:41 dovecot: auth: mysql: Connected to /var/lib/mysql/mysql.sock
Mar 2 16:08:41 dovecot: auth: sql(kulaga.marian): unknown user
Mar 2 16:08:41 sendmail[396]: 022F8YF7000392: to=<glinieck...@example.pl>, delay=00:00:01, xdelay=00:00:00, mailer=dovecot, pri=122973, relay=dovecot, dsn=5.1.1, stat=User unknown
Mar 2 16:08:42 sendmail[396]: 022F8YF7000392: 022F8gF6000396: DSN: User unknown

Tu jest dodatkowy narzut w postaci DSNa zamiast odrzucania maila bezpośrednio w sesji SMTP.
Jeszcze nie analizowałem jak to usprawnić.

- przy wysyłaniu z próbą autoryzacji danymi nieistniejącego usera

Mar 2 16:13:15 dovecot: auth: mysql: Connected to /var/lib/mysql/mysql.sock
Mar 2 16:13:15 dovecot: auth: sql(gliniecki.norbert,127.0.0.1): unknown user
Mar 2 16:13:20 dovecot: imap-login: Disconnected (auth failed, 1 attempts): user=<gliniecki.norbert>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Mar 2 16:13:20 saslauthd[7498]: do_auth : auth failure: [user=gliniecki.norbert] [service=smtp] [realm=example.pl] [mech=rimap] [reason=remote server rejected your credentials]
Mar 2 16:13:20 sendmail[485]: 022FD9D1000485: ppp78-36-115-222.pppoe.komi.dslavangard.ru [78.36.115.222] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA



II. Od strony Dovecota

1. widoczny w definicji mailera user virtmail to zwykły user systemowy z prawem 700 do folderu /home/virtmail z mailboxami

[]# cat /etc/passwd|grep virtmail
virtmail:x:1000:1000:4 mail virtual users:/home/virtmail:/sbin/nologin

2. /etc/dovecot/conf/10-auth.conf

auth_username_format = %Ln
auth_mechanisms = plain login
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=1000 gid=1000 home=/home/virtmail/%d/%n
}

Jak widać struktura folderów ma układ /home/virtmail/domena/user - to mój wybór, tu jest pełna dowolność na etapie wyboru konfiguracji.


3. /etc/dovecot/conf/10-mail.conf

mail_location = maildir:~/Maildir
mail_privileged_group = mail
first_valid_uid = 100
first_valid_gid = 100
mail_uid = 100
mail_gid = 100
mbox_write_locks = fcntl


4. użyty w 10-auth.conf skrypt:

driver = mysql
connect = host=/var/lib/mysql/mysql.sock dbname=xxx user=yyy password=zzz

password_query = SELECT userid AS username, domain, password FROM users WHERE userid = '%n' or userid = ( select userid from aliases where alias = '%n' )
user_query = SELECT home, uid, gid FROM users WHERE userid = '%n' or userid = ( select userid from aliases where alias = '%n' )

# For using doveadm -A:
iterate_query = SELECT userid AS username, domain FROM users



III. Od strony bazy:

CREATE TABLE `users` (
`userid` varchar(128) NOT NULL,
`domain` varchar(128) NOT NULL,
`password` varchar(256) NOT NULL,
`home` varchar(255) NOT NULL,
`uid` int(11) NOT NULL,
`gid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `aliases` (
`id` int(11) NOT NULL,
`alias` varchar(128) NOT NULL,
`domain` varchar(128) NOT NULL,
`userid` varchar(128) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Hasła w bazie są w formacie Dovecota {schema}$typ$salt$hash, np:
{MD5-CRYPT}$1$xxxxxxxx$yyyyyyyyyyyyyyy
Można je łatwo generować:
[]# doveadm pw -s md5-crypt
Większość haseł mam w SHA512-CRYPT z typem $6$ - od Centos 6.4 (chyba) wszedł jako domyślny systemowy i hasła z kont systemowych można było przenieść do bazy 1:1.

W bazie mam osobno userid i domenę - redefiniując zapytania do bazy i konfig mailera można łatwo zmienić format loginów na userid@domena



To tak na szybko.
Cała reszta konfiguracji sendmail/dovecot/miltry/roundcube raczej bez zmian.


goo-...@ciach.net

unread,
Mar 6, 2020, 4:56:56 AM3/6/20
to
W dniu czwartek, 5 marca 2020 22:55:02 UTC+1 użytkownik Piotr Lechowicz
> Generalnie konfiguracja opiera się o Dovecota z bazą userów w MySQL.

Tak z ciekawości - na ile skrzynek i aliasów jest twój system?

LFC

unread,
Mar 6, 2020, 7:20:03 AM3/6/20
to
W dniu 05.03.2020 o 22:50, Piotr Lechowicz pisze:
>
>
>
> To tak na szybko.
> Cała reszta konfiguracji sendmail/dovecot/miltry/roundcube raczej bez
> zmian.
>
>

Tak z ciekawości 2 pytania:
1. czemu nie dorzuciłeś do configu sendmaila milterów do obsługi
spamassassina, clamava ew. regexa?
2. Zamierzam posadzić ten zestaw na I3 4 gen + 8GB RAM + RAID 1 na
dyskach 1000GB, ze 40 kont pocztowych - poleci z luzem?

Tak mi się jeszcze narzuciło teraz- a co z aliasami? Będzie tak samo jak
z userami shellowymi?

LFC

Piotr Lechowicz

unread,
Mar 6, 2020, 9:12:48 AM3/6/20
to
W dniu 2020-03-06 o 13:05, LFC pisze:
> W dniu 05.03.2020 o 22:50, Piotr Lechowicz pisze:
>>
>>
>>
>> To tak na szybko.
>> Cała reszta konfiguracji sendmail/dovecot/miltry/roundcube raczej bez
>> zmian.
>>
>>
>
> Tak z ciekawości 2 pytania:
> 1. czemu nie dorzuciłeś do configu sendmaila milterów do obsługi spamassassina, clamava ew. regexa?

Mam ustawione miltry: dnsbl, milter-regex i clamav oraz mocno antyspamowo skalibrowany access.
Nie opisywałem, bo uznałem to za oczywistość niezwiązaną z przejściem na Dovecot/MySQL.
SA celowo nie uruchamiałem, bo testuję skuteczność obecnego zestawu filtrów.

> 2. Zamierzam posadzić ten zestaw na I3 4 gen + 8GB RAM + RAID 1 na dyskach 1000GB, ze 40 kont pocztowych - poleci z luzem?

Myślę, że spokojne i dużym zapasem.
Ja mam system na wirtualce z 4 rdzeniami/4.8GB RAM i poza tematami pocztowymi robi jeszcze kilka innych rzeczy.
Obecnie mam 25 kont i 50 adresów/aliasów, ale serwer pełni także rolę filtrującego backup MXa dla kilku innych MTA (teraz ok 250 kont, w szczycie było ok 400).
Max obciążenie jakie system miał przy zalewie spamu to 40k messages/24h.
Średnio dziennie wychodzi ok 6k total, w tym max 1k dobrego.
Statystyki robi mi http://sareport.darold.net/

>
> Tak mi się jeszcze narzuciło teraz- a co z aliasami? Będzie tak samo jak z userami shellowymi?
Tzn?
Aliasy są w bazie, tak samo jak konta userów.
Nie używam pliku aliases dla kont wirtualnych.

>
> LFC
0 new messages