[megoldva] Exim4 + Greylistd elsőre átenged bizonyos spam-eket ("no IP address found for host")

Fórumok

Megörököltem egy Debian Lenny-t futtató szerver felügyeletét. A szerver egy kisebb cég levelezését viszi egy Exim4+Greylist+Clamav kombóval. Sajnos mail szervert még nem adminisztráltam, így az Exim konfigurálása is elég kínai nekem, de olvasok szorgalmasan.
Azt már látom, hogy egy Spamassassin hiányzik a szerverről, ez lesz az első amit felteszek.

Ami miatt a topic-ot nyitottam, az az, hogy elég rendesen kapják a spam-eket a dolgozók és ez annak köszönhető, hogy a Greylistd-n késleltetés nélkül átenged bizonyos fajta küldőket.

/var/log/exim4/mainlog:

2012-07-12 06:30:21 no IP address found for host host-190-130-227-86.ecutel.net.ec (during SMTP connection from [190.130.227.86])
2012-07-12 06:30:22 1SpB2k-0008LB-Cj <= guisezv9@porterorlin.com H=(host-190-130-227-86.ecutel.net.ec) [190.130.227.86] P=esmtp S=1659 id=HSHICI-DJNIMS-22@rbets
sfrhhfahbsuisv.deltamar.net T="We invite you to a remote job 100 euro per hour helping sick people" from for dolgozo1@ceg.hu
2012-07-12 06:30:22 1SpB2k-0008LB-Cj => dolgozo1 R=localuser T=local_delivery DT=0s
2012-07-12 06:30:22 1SpB2k-0008LB-Cj => dolgozo2 R=localuser T=local_delivery DT=0s
2012-07-12 06:30:22 1SpB2k-0008LB-Cj => dolgozo3 R=localuser T=local_delivery DT=0s
2012-07-12 06:30:22 1SpB2k-0008LB-Cj Completed

A "no IP address found" üzenet a közös jellemzője ezeknek a spam-eknek, ami nem teljesen világos nekem, mert ez az egyébként dinamikusnak tűnő cím, oda-vissza feloldható. Az adott IP most bukkant fel először a log-okban, így szerintem a Greylist-nek elsőre vissza kellett volna utasítania, ahogy a többi próbálkozónál:

/var/log/exim4/mainlog:

2012-07-12 06:30:48 SMTP connection from [67.181.106.74] (TCP/IP connection count = 1)
2012-07-12 06:30:51 H=c-67-181-106-74.hsd1.ca.comcast.net [67.181.106.74] F= temporarily rejected RCPT : ordinalsd
15@axsone.com please try later
2012-07-12 06:30:51 H=c-67-181-106-74.hsd1.ca.comcast.net [67.181.106.74] incomplete transaction (connection lost) from
2012-07-12 06:30:51 unexpected disconnection while reading SMTP command from c-67-181-106-74.hsd1.ca.comcast.net [67.181.106.74]

A /var/lib/greylistd/ könyvtárban levő állapottároló fájlokban sem szerepel az IP, tehát nem lehet visszatérő vendég.
Az Exim konfigurációban lenne valami hiba, vagy van valami spammer trükk, amivel átlépik a Greylist-et?

/etc/exim4/exim4.conf vonatkozó részlete:

######################################################################
# ACL CONFIGURATION #
######################################################################

begin acl

check_connect:
accept

check_helo:
accept

check_mail:
accept

check_recipient:
accept hosts = :
deny !hosts = : +relay_hosts
!authenticated = *
domains = !+local_domains : !+relay_domains : @mx_any
message = 550 Unable to handle ${domain}
deny local_parts = ^.*[@%!/|] : ^\\.
accept recipients = postmaster@+local_domains
deny senders = :
condition = ${if >{$rcpt_count}{1}{yes}{no}}
message = One recipient per bounce, please
defer !hosts = : +relay_hosts
condition = ${if >{$rcpt_count}{10}{yes}{no}}
message = Max 10 recipients, please

deny !hosts = : +relay_hosts
!verify = sender
message = Unable to route to sender address
deny message = Unable to verify recipient
!verify = recipient

defer message = $sender_address please try later
!senders = : /etc/exim4/greylist_white_senders
hosts = !+relay_hosts : !/etc/greylistd/whitelist-hosts : /etc/exim4/greylist_sender_hosts
!authenticated = *
domains = +local_domains
condition = ${readsocket{/var/run/greylistd/socket}\
{--grey $sender_host_address $sender_address $local_part@$domain}\
{10s}{}{false}}

accept domains = +local_domains
accept hosts = +relay_hosts
accept hosts = +auth_relay_hosts
endpass
message = Relaying denied
authenticated = *
deny message = Relaying denied

check_message:
accept hosts = : 127.0.0.1
deny !verify = header_sender
message = Can't currently route to any sender in the header lines
deny message = Malformed MIME container ($demime_reason)
demime = *
condition = ${if >{$demime_errorlevel}{0}{yes}{no}}
deny message = This message contains unwanted $found_extension attachments
demime = ade : adp : bas : bat : chm : cmd : com : cpl : crt : exe : \
hlp : hta : inf : ins : isp : js : jse : lnk : mdb : mde : \
msc : msi : msp : mst : pcd : pif : reg : scr : sct : shs : \
shb : url : vb : vbe : vbs : wsc : wsf : wsh : eml : app : \
fxp : prg : mdw : mdt : ops : ksh : csh
deny set acl_m0 = clamd: /var/run/clamav/clamd.ctl
message = This message contains malware $malware_name
demime = *
malware = */defer_ok
accept

Hozzászólások

A /etc/exim4/greylist_sender_hosts file-ba nézz bele, hogy van-e benne +include_unknown felsorolva. Ha nincs akkor a hosts = listához add hozzá. Sajnos a greylisting egyre kevésbé hatékony, de azért még mindíg jelentős. Érdemes valamilyen dns blacklist alapján is szürkelistázni esetleg.

Az /etc/exim4/greylist_sender_hosts -ban nem volt ilyen:

! 127.0.0.0/8
! *.hu
! *.ac.uk

Betettem a greylist ACL-jéhez:

hosts = !+relay_hosts : !/etc/greylistd/whitelist-hosts : /etc/exim4/greylist_sender_hosts : +include_unknown

Most várom a "no IP"-s vendégeket :) Köszönöm!
Egyébként ez a "no IP address found for host" attól lehet, hogy nincs MX rekordja az adott IP-nek?

A szabalyozo szervek mar regen "betiltottak" a greylist hasznalatat ugy ahogy van, ezert mint ahogy irtad a spamassasin feltetele erosen javasolt, es a greylistnek jo helye lesz a macska mellett :)

--------------------------------------------------------------------------------------
Viacom Informatikai Kft. Egyedi fejlesztesu, felho alapu webhosting szolgaltatasok. Hureg, Lir, AS.

Aha értem, akkor azért használja még a fél világ? :) Egyébként sehol sem találok ilyesmire utalást, viszont ilyet igen:

"The current SMTP specification (RFC 5321) clearly states that "the SMTP client retains responsibility for delivery of that message" (section 4.2.5) and "mail that cannot be transmitted immediately MUST be queued and periodically retried by the sender." (section 4.5.4.1)."

Jobb MTA-kkal lehet szelektíven is alkalmazni, sőt a juzer ekszpíriensz miatt csak úgy érdemes.

Soha nem allitottam hogy nem mukodik a greylist, vagy nincs meg e technikai alapja, ellenben egy rfc modositasban (ne kerdezd melyik volt mar, legalabb egy eve volt mar hogy lattam) leirjak hogy az email ideiglenes elutasitasa a kuldo mail server kepessegeinek felmerese erdekeben erosen nem ajanlott mivel:
- lassitja az email forgalmat
- egyre kevesbe valik be, a spammereknek nem kell olyan orbitalis bonyolult dolgokat csinalnia hogy atjussanak rajta.
Emellett "a fel vilag hasznalja" csak mult idoben igaz, ma mar toredeke az elterjedese a par evvel ezelottinek, es szerencsere az alkalmazott helyek szama folyamatosan csokken.

--------------------------------------------------------------------------------------
Viacom Informatikai Kft. Egyedi fejlesztesu, felho alapu webhosting szolgaltatasok. Hureg, Lir, AS.

ha esszel hasznalod a szurkelistat, akkor meg ma is jo azok ellen, akik ellen kitalaltak. De mivel eloretoroben van az olcso vps-ekrol (valamilyen mta-val) spammelok szama, mig a zombik visszaszoruloban vannak, ezert szubjektiven erezheted ugy, hogy nem annyira hatekony a greylisting.

Emellett "a fel vilag hasznalja" csak mult idoben igaz, ma mar toredeke az elterjedese a par evvel ezelottinek,

gondolom, a viacom a vilag levelezesenek ~2/3-an rajta tartja a kezet, es ebbol a statisztikabol ideztel ... :-)

Miert kell nekem sajnalnom a Klubradiot?

Standard greylist, tehát nem várom meg a lekerülést és még így is érezhető a javulás. A vétlen felkerülők így informalodhatnak a tobbieket meg a spamassassin jo esellyel megfogja. Aki a bayes db szerint nem spam, annak 3-4 blacklisten is fenn kell lennie, tehat false pozitivra relativ kicsi az esely es azok is csak spam mappaba mennek, nem a kukaba.

A lekerules megvarasa ellen szol, hogy 2-3 het is lehet mire kiporog a cim es a fenti smtp rfc-ben 4-5 napig javasoljak az ujrakuldest.

Nem jó helyre írtam? Valószínűleg így van, mert jönnek a no IP és no hostname spam-ek ugyanúgy :(


check_recipient:
accept hosts = :
deny !hosts = : +relay_hosts
!authenticated = *
domains = !+local_domains : !+relay_domains : @mx_any
message = 550 Unable to handle ${domain}
deny local_parts = ^.*[@%!/|] : ^\\.
accept recipients = postmaster@+local_domains
deny senders = :
condition = ${if >{$rcpt_count}{1}{yes}{no}}
message = One recipient per bounce, please
defer !hosts = : +relay_hosts
condition = ${if >{$rcpt_count}{10}{yes}{no}}
message = Max 10 recipients, please

deny !hosts = : +relay_hosts
!verify = sender
message = Unable to route to sender address
deny message = Unable to verify recipient
!verify = recipient

defer message = $sender_address please try later
!senders = : /etc/exim4/greylist_white_senders
hosts = !+relay_hosts : !/etc/greylistd/whitelist-hosts : /etc/exim4/greylist_sender_hosts : +include_unknown
!authenticated = *
domains = +local_domains
condition = ${readsocket{/var/run/greylistd/socket}\
{--grey $sender_host_address $sender_address $local_part@$domain}\
{10s}{}{false}}

accept domains = +local_domains
accept hosts = +relay_hosts
accept hosts = +auth_relay_hosts
endpass
message = Relaying denied
authenticated = *
deny message = Relaying denied

Jó helyre írtad elvileg. A reverse-et nem tudja feloldani, azért mondja hogy no IP address found for host X. Próbáld meg, hogy a felsorolás elejére teszed és fullos restartot csinálj. Győződj is meg róla ps-el, hogy tényleg újraindult-e az exim. Esetleg a kivételekhez felvehetsz egy külön '!hosts = ' kezdetű sort és a greylistázandóknak pedig maradjon a 'host = ' és azt kezd a +include_unknown -al, nálunk úgy van és megy.

A felsorolás elejére áttétel meghozta a sikert:

2012-07-12 23:56:11 no IP address found for host 186-203-220-145.ded.intelignet.com.br (during SMTP connection from [186.203.220.145])
2012-07-12 23:56:11 failed to find host name for 186.203.220.145: accepted by +include_unknown
2012-07-12 23:56:11 H=(c953bdcc.virtua.com.br) [186.203.220.145] F=<scarfingz@realliving.com> temporarily rejected RCPT <mail@ceg.hu>: scarfingz@realliving.com please try later
2012-07-12 23:56:12 H=(c953bdcc.virtua.com.br) [186.203.220.145] incomplete transaction (connection lost) from <scarfingz@realliving.com>
2012-07-12 23:56:12 unexpected disconnection while reading SMTP command from (c953bdcc.virtua.com.br) [186.203.220.145]

Azt hiszem ez a szabály lehet felelős, ezt kell megemésztenem:
2. Negated items in lists
http://www.exim.org/exim-html-current/doc/html/spec_html/ch10.html

Köszönöm a segítséget!