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

Do znających sendmaila - dlaczego z opcją delay_checks tak się dzieje?

4 views
Skip to first unread message

LFC

unread,
Apr 14, 2020, 12:40:02 PM4/14/20
to
Zasięgałem tu porad w kwestii konfiguracji sendmaila. Szczególnie
chciałęm osiągnąć aby "roaming users" mogli wysyłać pocztę ze swoich
domowych laptopów/internetów.
Stanęło na STARTTLS, porcie 587 i opcji delay_checks, a w pliku access
za poradnikiem konfiguracji antyspamowej sendmaila
To: domena.pl OK
Connect:domena.pl OK
Było RELAY, jak dałem OK.
Po odpaleniu takiej konfiguracji godzina spokoju a potem:

Apr 14 13:33:04 host sendmail[4126]: STARTTLS=server,
relay=[58.58.185.75], version=TLSv1/SSLv3, verify=NO,
cipher=DHE-RSA-AES128-GCM-SHA256, bits=128/128
Apr 14 13:33:07 host sendmail[4126]: AUTH=server, relay=[58.58.185.75],
authid=us...@domena.pl, mech=LOGIN, bits=0
Apr 14 13:33:12 host sendmail[4126]: 03EBX0DG004126:
from=<j-ev...@domena.pl>, size=1195, class=0, nrcpts=1,
msgid=<v016c324.1mucm...@domena.pl>, proto=ESMTP, daemon=MSA,
relay=[58.58.185.75]
Apr 14 13:33:17 host sendmail[4126]: 03EBX0DH004126:
from=<j-ev...@domena.pl>, size=1132, class=0, nrcpts=1,
msgid=<ed6b4raa.hvf1b...@domena.pl>, proto=ESMTP, daemon=MSA,
relay=[58.58.185.75]

Potem otwiera połączenie, też TLs z serwerem docelowym i śle do jakiegoś
usera z tego serwera:

Apr 14 13:33:14 mpwik sendmail[4137]: STARTTLS=client,
relay=hotmail-com.olc.protection.outlook.com., version=TLSv1/SSLv3,
verify=OK, cipher=ECDHE-RSA-AES256-GCM-SHA384, bits=256/256
Apr 14 13:33:15 mpwik sendmail[4137]: 03EBX0DG004126:
to=<dave_g...@hotmail.com>, delay=00:00:05, xdelay=00:00:03,
mailer=esmtp, pri=121195, relay=hotmail-com.olc.protection.outlook.com.
[104.47.10.33], dsn=2.0.0, stat=Sent
(<v016c324.1mucm...@mpwikzdw.com.pl>
[InternalId=84911503470524,
Hostname=DB5EUR03HT...od.protection.outlook.com] 9023 bytes in 0.368,
23.938 KB/sec Queued mail for delivery -> 250 2.1.5)

I dalej sieje po różnych adresach email - prawdziwych i fikcyjnych.
Dochodza podobne połączenia z innych IP - istny sajgon
Nie rozumiem mechanizmu.

Mało tego, ze się uwiesza i spamuje to jeszcze otwiera połączenia ipv6
choć support dla ipv6 jest wyłączony, a na inpucie ipv6 jest drop.
Wszystkie adresy email w domenie należą do userów systemowych z
/bin/false, ale authid dla faktycznego usera autoryzującego się w sieci
lokalnej wygląda authid=user.
Mam rozumieć, że dysponuje hasłami niektórych userów i się autoryzuje,
czy też wykorzystuje jakąś dziurę w sendmailu.
Zresztą, gdyby się autoryzował, to mógłby wysyłać jako ten user, a on
spamuje z fikcyjnych kont niby z domeny - coś jakby aktywować opcję
relay_local_from albo relay_mail_from,
Jak tylko wyłączę tą opcję delay_checks wraca spokój i normalna praca
sendmaila.
Wyłączyłem FEATURE dnsbl zen.spamhaus i można wysłać pocztę z
dynamicznego, ale to oznacza, że ze spamerskimi nalotami trzeba będzie
walczyć na piechotę.

LFC

Piotr Lechowicz

unread,
Apr 14, 2020, 5:29:44 PM4/14/20
to
W dniu 2020-04-14 o 18:27, LFC pisze:
> Zasięgałem tu porad w kwestii konfiguracji sendmaila. Szczególnie chciałęm osiągnąć aby "roaming users" mogli wysyłać pocztę ze swoich domowych laptopów/internetów.
> Stanęło na STARTTLS, porcie 587 i opcji delay_checks, a w pliku access za poradnikiem konfiguracji antyspamowej sendmaila
> To: domena.pl    OK
> Connect:domena.pl    OK

Tego Connect: bym nie robił...
Uwierzytelnienie ma być jedynym warunkiem dopuszczającym relay

> Było RELAY, jak dałem OK.
> Po odpaleniu takiej konfiguracji godzina spokoju a potem:
>
> Apr 14 13:33:04 host sendmail[4126]: STARTTLS=server, relay=[58.58.185.75], version=TLSv1/SSLv3, verify=NO, cipher=DHE-RSA-AES128-GCM-SHA256, bits=128/128> Apr 14 13:33:07 host sendmail[4126]: AUTH=server, relay=[58.58.185.75], authid=us...@domena.pl, mech=LOGIN, bits=0

Niżej twierdzisz, że masz wyłącznie userów systemowych; powinno być authid=user
Ten j-evans14@ poniżej to rzeczywisty user, czy fake?
Bo nie wiem czy logi przerabiasz konsekwentnie czy wyrywkowo: raz user@domena, potem j-evans14@domena; raz host, potem mpwik...

> Apr 14 13:33:12 host sendmail[4126]: 03EBX0DG004126: from=<j-ev...@domena.pl>, size=1195, class=0, nrcpts=1, msgid=<v016c324.1mucm...@domena.pl>, proto=ESMTP, daemon=MSA, relay=[58.58.185.75]
> Apr 14 13:33:17 host sendmail[4126]: 03EBX0DH004126: from=<j-ev...@domena.pl>, size=1132, class=0, nrcpts=1, msgid=<ed6b4raa.hvf1b...@domena.pl>, proto=ESMTP, daemon=MSA, relay=[58.58.185.75]
>

Przyjrzałbym się konfiguracji SASLa, bo może przechodzi każde uwierzytelnienie, nawet na fałszywe dane...

> Potem otwiera połączenie, też TLs z serwerem docelowym i śle do jakiegoś usera z tego serwera>
> Apr 14 13:33:14 mpwik sendmail[4137]: STARTTLS=client, relay=hotmail-com.olc.protection.outlook.com., version=TLSv1/SSLv3, verify=OK, cipher=ECDHE-RSA-AES256-GCM-SHA384, bits=256/256
> Apr 14 13:33:15 mpwik sendmail[4137]: 03EBX0DG004126: to=<dave_g...@hotmail.com>, delay=00:00:05, xdelay=00:00:03, mailer=esmtp, pri=121195, relay=hotmail-com.olc.protection.outlook.com. [104.47.10.33], dsn=2.0.0, stat=Sent (<v016c324.1mucm...@mpwikzdw.com.pl> [InternalId=84911503470524, Hostname=DB5EUR03HT...od.protection.outlook.com] 9023 bytes in 0.368, 23.938 KB/sec Queued mail for delivery -> 250 2.1.5)
>
> I dalej sieje po różnych adresach email - prawdziwych i fikcyjnych.

Jak już się uwierzytelnił, to może - tak to ma działać.
Jak się uporasz z tym bałaganem, to możesz ustawić limity dla loginów/adresów IP nadawców.

> Dochodza podobne połączenia z innych IP - istny sajgon

Uwierzytelnienie tymi samymi danymi co w logu, czy za każdym razem innymi?
Pokazałeś jeden wpis z logów - pokaż więcej...

> Nie rozumiem mechanizmu.
>
> Mało tego, ze się uwiesza i spamuje to jeszcze otwiera połączenia ipv6 choć support dla ipv6 jest wyłączony, a na inpucie ipv6 jest drop.

Pokaż te logi z IPv6.

> Wszystkie adresy email w domenie należą do userów systemowych z /bin/false, ale authid dla faktycznego usera autoryzującego się w sieci lokalnej wygląda authid=user.
> Mam rozumieć, że dysponuje hasłami niektórych userów i się autoryzuje

Może tak być, jeżeli hasła masz słabe.
Ponownie pytanie: w logu przy uwierzytelnieniu tych spamów są dane rzeczywistych userów czy fejki?

, czy też wykorzystuje jakąś dziurę w sendmailu.
> Zresztą, gdyby się autoryzował, to mógłby wysyłać jako ten user, a on spamuje z fikcyjnych kont niby z domeny - coś jakby aktywować opcję relay_local_from albo relay_mail_from,

A nie masz FEATURE(relay_entire_domain) albo innego podobnego wynalazku?
Sprawdziłeś całe sendmail.mc?

> Jak tylko wyłączę tą opcję delay_checks wraca spokój i normalna praca sendmaila.
> Wyłączyłem FEATURE dnsbl zen.spamhaus i można wysłać pocztę z dynamicznego, ale to oznacza, że ze spamerskimi nalotami trzeba będzie walczyć na piechotę.

Czyli potwierdzasz, że problem z relay wynika z włączenia uwierzytelnienia?

>
> LFC
>

Możesz ewentualnie jeszcze spróbować zapytać na comp.mail.sendmail.
Udziela się tam (chociaż tu też czasem zagląda) specjalista od sendmaila: Andrzej Adam Filip <an...@onet.eu>

LFC

unread,
Apr 15, 2020, 2:20:02 AM4/15/20
to
W dniu 14.04.2020 o 23:29, Piotr Lechowicz pisze:

>
> Tego Connect: bym nie robił...
> Uwierzytelnienie ma być jedynym warunkiem dopuszczającym relay
>

Poszedłem za radą
https://www.sendmail.org/~ca/email/doc8.12/cf/m4/anti_spam.html#delay_check



>
> Niżej twierdzisz, że masz wyłącznie userów systemowych; powinno być
> authid=user

Właśnie

> Ten j-evans14@ poniżej to rzeczywisty user, czy fake?

Fake

> Bo nie wiem czy logi przerabiasz konsekwentnie czy wyrywkowo: raz
> user@domena, potem j-evans14@domena; raz host, potem mpwik...

Nie wyszła mi anonymizacja

Widziałeś w logu najpierw linia z authid a po niej j-evans

>
> Przyjrzałbym się konfiguracji SASLa, bo może przechodzi każde
> uwierzytelnienie, nawet na fałszywe dane...
>

W /usr/lib64/sasl2 jest Sendmail.conf, a w nim
pwcheck_method: saslauthd
mech_list: login plain

Taki sam plik jest w /etc/sasl2


>
>> Nie rozumiem mechanizmu.
>>
>> Mało tego, ze się uwiesza i spamuje to jeszcze otwiera połączenia ipv6
>> choć support dla ipv6 jest wyłączony, a na inpucie ipv6 jest drop.
>
> Pokaż te logi z IPv6.
>

Nie loguję całego ruchu, jak zobaczyłem charakterystyczne linie w
netstat -tuan, to zatrzymałem sendmaila i przywróciłem pierwotny konfig

>
> Może tak być, jeżeli hasła masz słabe.
> Ponownie pytanie: w logu przy uwierzytelnieniu tych spamów są dane
> rzeczywistych userów czy fejki?
>

Tu może tak być, bo zwykle, jak daję nowego usera, to hasło jest takie
samo. Serwer jest linuksowy usery systemowe z /bin/false, więc sami nie
mogą zmienić hasła. Powinni dać mi swoją propozycję do zmiany, ale "kto
by pamiętał o tym"
Uczciwie powiem, że nie robiłem wilekiej analizy tego, co w logach, ale
widziałem tam w postaci authid=us...@domena.pl 2 faktycznych userów.
Spróbuję zmienić ich hasła i próba.

Nie kumam tego, załóżmy, autoryzuje się jako user1, a potem śle pocztę z
fikcjnego adresu z domeny


>
> A nie masz FEATURE(relay_entire_domain) albo innego podobnego wynalazku?
> Sprawdziłeś całe sendmail.mc?
>


divert(-1)dnl
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf
package is
dnl # installed and then performing a
dnl #
dnl # make -C /etc/mail
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
dnl #
dnl # Do not advertize sendmail version.
dnl #
dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnl
dnl #
dnl # default logging level is 9, you might want to set it higher to
dnl # debug the configuration
dnl #
dnl define(`confLOG_LEVEL', `9')dnl
dnl #
dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
dnl define(`SMART_HOST', `smtp.your.provider')dnl
dnl #
define(`confDEF_USER_ID', ``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A p')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
dnl define(`confAUTH_OPTIONS', `A p y')dnl
dnl #
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH.
dnl #
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN
PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # cd /etc/pki/tls/certs; make sendmail.pem
dnl # Complete usage:
dnl # make -C /etc/pki/tls/certs usage
dnl #
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.key')dnl
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
dnl #
dnl define(`confDONT_BLAME_SENDMAIL', `groupreadablekeyfile')dnl
dnl #
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(`delay_checks')dnl
dnl FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`no_default_msa')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl #
dnl # The following limits the number of processes sendmail can fork to
accept
dnl # incoming messages or process its message queues to 20.) sendmail
refuses
dnl # to accept connections once it has reached its quota of child
processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl #
dnl # Limits the number of new connections per second. This caps the
overhead
dnl # incurred due to forking new sendmail processes. May be useful against
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP
address
dnl # limit would be useful but is not available as an option at this
writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl
dnl #
dnl # The -t option will retry delivery if e.g. the user runs over his
quota.
dnl #
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl #
dnl # For using Cyrus-IMAPd as POP3/IMAP server through LMTP delivery
uncomment
dnl # the following 2 definitions and activate below in the MAILER
section the
dnl # cyrusv2 mailer.
dnl #
dnl define(`confLOCAL_MAILER', `cyrusv2')dnl
dnl define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback
address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Family=inet, Port=smtp, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or
redirected find
dnl # this useful.
dnl #
DAEMON_OPTIONS(`Family=inet, Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587
followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook
Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Family=inet, Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6
loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # enable both ipv6 and ipv4 in sendmail:
dnl #
dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you
want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl #
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl #
LOCAL_DOMAIN(`localhost.localdomain')dnl
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
dnl MASQUERADE_AS(`mpwikzdw.com.pl')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com
as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
dnl MAILER(cyrusv2)dnl
INPUT_MAIL_FILTER(`spamassassin',
`S=unix:/var/run/spamass-milter/spamass-milter.sock, F=,
T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name},
{if_name}, {if_addr}')dnl
define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher},
{cipher_bits}, {cert_subject}, {cert_issuer}')dnl
dnl FEATURE(`dnsbl', `zen.spamhaus.org', `"550 Mail from "
$`'&{client_addr} " refused - see http://www.spamhaus.org/zen/"')dnl
INPUT_MAIL_FILTER(`clmilter',
`S=local:/var/run/clamav/clamav-milter.sock, F=, T=S:4m;R:4m')dnl
INPUT_MAIL_FILTER(`milter-regex', `S=unix:/var/spool/milter-regex/sock,
T=S:30s;R:2m')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

Sorry za przydługą wstawkę, ale na tym konfigu pracuję. Wczoraj
wyłączyłem dnsbl zen.spamhaus bo pozwala wtedy relayować ze świata.
Looknij na niego, może znajdziesz w nim coś niedobrego, bo ja śledziłem
go wiele razy i nic nie znajduję.
>
> Czyli potwierdzasz, że problem z relay wynika z włączenia uwierzytelnienia?
>

Uwierzytelnianie sasl stosuję od dawna. Problem pojawia się, gdy
aktywuję opcję delay_checks. Przynajmniej tak to wygląda.


Nadmieniam, ze nie zajmuję się tym zawodowo.
Znam trochę linuksa i kiedyś dawno temu postawiłem serwer pocztowy w
firmie i to się przyjęło, a teraz firma już nie umie pracować bez serwera.
Dbanie o ten serwer to jest tylko wycinek moich obowiązków.
Z każdej jakiejś akcji spamowo wirusowej w przeszłości pozostawały nowe
zabezpieczenia, które musiałem na cito aktywować.
Generalnie nie zajmuję się nim o ile nie muszę, a ostatnio niestety
muszę, bo modna stała się praca zdalna, a tu nie można było wysyłać
poczty z domu, bo dnsbl wysyłał hosty na drzewo.

LFC



0 new messages