» »

Postfix MX lookup

Postfix MX lookup

kronik ::

Namen imam narediti filter, ki bo za vsak email preveril, ce je posiljateljev IP enak SMTP serverju od domene. (primer: mail poslje uporabnik z imenom janez@siol.net, server preveri mx za siol.net in dobi odgovor da je ta server mailhub.siol.net, preveri njegov IP - dobi odgovor 193.189.160.211, 193.189.160.25, nato pa pogleda ce je mail prisel iz tega naslova. Ce ni ga rejecta) Ko se mail rejecta pa bi posiljateljev IP dodal na iptables za recimo eno uro.

No zanima me, ce ma kdo slucajno kaj podobnega ze realiziranega, da nebom odkrival tople vode. mail.najdi.si ima to, upam da bo kak admin prebral ta post 8-)

EDIT: ce obstaja SPFrecord, bi preveril samo tega.
  • spremenil: kronik ()

Bakunin ::

to ne bo slo, ker streznik za prihodno posto (MX) pri vecini ni enak tistemu za odhodno posto (smtp.*.TLD).


dober nacin preverjanja posiljatelja pa je to:

address_verify_map = btree:/var/tmp/verify

smtpd_recipient_restrictions =
.......
reject_unverified_sender


obstaja vec nacinov da se resis spama ipd.... ce kaj rabis > ZS.

Zgodovina sprememb…

  • spremenil: Bakunin ()

kronik ::

Pod smtpd_recipient_restrictions imam na tone stvari dodanih, tud razne blackliste, ampak spam se vedno prihaja skozi. Vidim, da bi bila edina pametna resitev blokiranje porta 25 pri navadnih uporabnikih, smtp protokol pa je itak za pokopat :|
Verjetno pa ne obstaja kak seznam IPjev, katere uporabljajo ISPji za delivering? Najraje bi blokiral vse domene, ki niso na white listi pa srecno, ker ni nobenega reda v tem smtp svetu >:D

Bakunin ::

a si probal greylisting ?


lahkopa probas se tole:

/etc/postfix/client_access
dsl.siol.net 554 Uporabite streznik mail.siol.net za odhodno posto ali si uredite 'povratni naslov' za vas IP.
dial-up.volja.net 554 Uporabite streznik smtp.volja.net za odhodno posto.
dial-up.arnes.si 554 Uporabite streznik mail.arnes.si za odhodno posto.
dsl.sinfonika.si 554 Uporabite streznik smtp.moj.net za odhodno posto.
adsl.tpnet.pl 554 get reverse IP (PTR) or use your ISPs SMTP server

smtpd_client_restrictions =
reject_unknown_client
check_client_access hash:/etc/postfix/client_access


smtpd_helo_restrictions = hash:/etc/postfix/helo_checks

helo_checks:
imestreznika.domena.org 551 Bogus HELO
xxx.xxx.xxx.xxx 551 Bogus HELO
[xxx.xxx.xxx.xxx] 551 Bogus HELO



potem lahko se kje dodas:

...
check_sender_mx_access cidr:/etc/postfix/sender_mx_access

sender_mx_access:
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
127.0.0.0/8 REJECT Domain MX in loopback network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

smtpd_data_restrictions =
reject_multi_recipient_bounce
reject_unauth_pipelining
permit

kar se tice "blacklist" pa imam te:

reject_rbl_client relays.ordb.org
reject_rbl_client list.dsbl.org
reject_rbl_client sbl-xbl.spamhaus.org
reject_rhsbl_sender bogusmx.rfc-ignorant.org




potem so tu se:

disable_vrfy_command = yes
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
smtpd_error_sleep_time = 0s
smtpd_hard_error_limit = 20
smtpd_soft_error_limit = 10

unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550

owner_request_special = no
show_user_unknown_table_name = no

Zgodovina sprememb…

  • spremenil: Bakunin ()

kronik ::

Slisi se dobro ja, samo vecina spama mi prihaja iz nekih cudnih drzav. Je pa res, da je 100% spama v angleskem jeziku, bo treba kak slovar includat :)) Thunderbird ima odlicn junk mail filter, bi se ga splacalo uporabit v postfixu.

Bakunin ::

a se NIMAS spamassassin instaliran ?

Zgodovina sprememb…

  • spremenil: Bakunin ()

DSI ::

Instaliraj si amavisd-new, spamassassin, + njegove module (razor,pyzor,dcc,SPF_check...) tle maš en howto, ki opisuje ravno to

kronik ::

Ne nocem tega met, hocem da mi postfix v trenutku rejecta vsak nelegitimen mail.

b ::

To lahko naredis, ampak bos potem tudi 100% izgubil kaksen legitimen mail... Za bit 100% je najbolje, da ti jih spamassassin taga (spamassassin poganjas skozi amavisd-new) in jih ti potem meces v poseben folder, vsake tolk pa jih na hitro pregledas. Bistveno manj moznosti, da zgubis pomemben mail.

Ce ti pa to ni pomembno, uporabi spamhaus xbl+sbl ter blokiraj drzave, od kjer ne dobivas maila. Obstaja en blocklist, sam ga trenutno ne najdem. Jaz tega ne uporabljam, ker se mi zdi overkill.

Sicer pa, default install latest spamassassin-a ter kaksen tweak najde spam z vec kot 99% natancnostjo, vsaj zame.

kronik ::

Fora je v tem, da spamerji na case precekirajo aktivne emaile in ce ga bo takrat postfix rejectal bo email izbrisan iz seznamov, ce pa ga sprejme pa bo spama vedno vec in vec. Fino bi bilo, ce bi bil SPF obvezen za vse email ponudnike. Domene, ki tega ne podpirajo bi preprosto rejectal. Hja zgleda mi res nebo preostalo druga kot, da instaliram se antispam programje.
Za antivirus pa mam en filtercek, ki sumljivim datotekam spremeni koncnice - najbolsa resitev 8-)

DSI ::

Lej sej to v amavisd.conf naštimaš ali naj ti rejecta mail ali ne. Naštimaš lahko kdaj (glede na spam level) naj ti rejecta mail, kdaj naj ga spusti itd. Jaz imam naprimer tako maile z spam levelom do 12 mi spusti čez vendar doda zadevi predpono [SPAM]. Ostale pa mi shranjuje v poseben mailbox. Od časa do časa pa spammassassin naučim (komanda:sa-learn) kaj je spam in kaj ni). možnosti je pri amavisu in spammassassinu ogromno. Naštimaš si ga pač takoda tebi odgovarja. Drugače pa je bil amavis prvotno mišljen kot mail virus scanner (AMaViS - A Mail Virus Scanner)

Bakunin ::

kronik

ne mi reci da nimas :

# Reject unknown local/virtual recipients at the SMTP port.
local_recipient_maps = proxy:unix:passwd.byname $alias_maps $virtual_maps

amavis nima kaj "rejectat". Ce je kaj sumljivo, potem se ali oznaci kot spam ali pa zavrze.
ponavadi so e-naslovi posiljateljev lazni oz. dobijo tvoj "warning message" nedolcni lastniki e-naslovov, ki jih je spamer uporabil za posiljanje.


b:
ce je kaj z RBL, potem je tukaj.

kronik ::

Lej sej to v amavisd.conf naštimaš ali naj ti rejecta mail ali ne.


Ok nisem vedel, da lahko tam nastavis to, jaz sem mislil, da postfix v vsakem primeru sprejme mail, nato pa ga outputa amavisu, le ta pa ga potem izbrise ali pa dostavi v mailbox. Jaz zelim, da se mail rejecta pred ukazom data, samo ce bolje pomislim to niti ni mozno, ker potem niti n e more prepoznati spam besedila :D Super bi bilo, ce bi se ob zaznavi spama izpisalo user uknown on virtual alias table, da bi spamerju dalo vedet, da tega naslova sploh ni vec.

Bakunin ::

> Jaz zelim, da se mail rejecta pred ukazom data,

morda s tem ?

kronik ::

To ja, super.

kronik ::

Evo, spet jaz :))
Postfix mi deluje kot se spodobi, rejectam ves spam in to brez uprabe externega spam filtra. Rad pa bi blokiral se vse uporabnike, ki imajo v hostih dsl,cable,ppp ... vglavnem domace uporabnike. Nasel sem primer:

/^....-[0-9a-f]*\.dsl\.mediaways\.net/ 554 Spam not tolerated here!

ampak to deluje samo za doticno domeno, moj filter ala

/^*\.dsl\.*/ 554 Spam not tolerated here!

pa seveda ne deluje :) Sumim, da se mora vedno obvezno navesti ime domene na koncu? Ali pa (upam) mene zeza ta regexp.

Morebitni predlogi so dobrodosli 8-)

Bakunin ::

preberi se enkrat moje drugo sporocilo v tej temi:


morda bi slo tako:

/etc/postfix/client_access
.dsl. 554 get reverse IP (PTR) or use your ISPs SMTP server

kronik ::

To meni ne deluje, je pa res da mam staro verzijo postfixa (2.0) - ne javi nobene napake, maila pa tudi ne rejecta.

Bakunin ::

2.0 ni tako stara verzija...

cisto butasto vprasanje - si pognal postmap ?

kronik ::

Sem ja :))
V logih ni nobene napake, testni mail pa je sprejelo, kljub temu, da imam v mojem hostname besedico .cable. (testiral sem od doma) in ja nastavil sem dami blokira .cable. in .dsl.

v main.cf pa zgleda da vrstica takole:
...
check_client_access hash:/etc/postfix/maps/access_client,
...

EDIT:
ok nasel resitev... v access_client dodamo:
/^(dhcp|dialup|ppp|dsl|cpe|cable)[^\.]*[0-9]/ REJECT get reverse IP (PTR) or use your ISPs SMTP server

potem pa popravimo main.cf in spremenimo
check_client_access hash:/etc/postfix/maps/access_client,
v
check_client_access regexp:/etc/postfix/maps/access_client,

Zadeva deluje, hvala zaenkrat ;)

Zgodovina sprememb…

  • spremenil: kronik ()

b ::

Narobe imas regex narejen.

/^*\.dsl\.*/ 554 Spam not tolerated here!

To zgoraj pomeni:

^* (matchni zacetek stringa, * je verjetno irelevanten, ker ^ ni quantifiable)
\.dsl (to matchne .dsl)
\.* (0 ali vec pik)

Matchnes torej vsak hostname, ki vsebuje .dsl na zacetku in za tem 0 ali vec pik.

Isces verjetno tole:
/\.dsl\./

To matchne vsak hostname, v katerem se pojavi ".dsl."

ali ce hoces bit natancen:
/^.*\.dsl\..*$/ (^ in $ sta zacetek in konec stringa, na zacetku in koncu stringa je lahko karkoli (.*), nekje v stringu pa je tudi ".dsl.")

To oboje bi ti moralo delat.

kronik ::

Ja mas prav ja, tisti regext rejecta samo hoste, ki imajo na zecetku to besedo. Sem potem spremenil v:
/^(.*)(dhcp|dial|ppp|dsl|cable|hsd1)(.*)/ REJECT bla bla..

in dela.

Zgodovina sprememb…

  • spremenil: kronik ()

Self-Defence ::

A lahko čist neki na vsporednem tiru vprašam.

Torej tebi če dobiš mail iz nekdo@nekje.net postfix pogleda ker IP je in nato nazaj če se ta IP reversa v nekje.net.
Kaj se pa zgodi če je več domen ne enem strežniku, sej ne moreš met revers narjen za več domen oz. kako je to potem rešeno?

By the way Mercury Mail Server se spomnem da je imel to možnost da je pogledal že ob vstopu če user@domena.net res obstaja na strežniku in če ne, dropne povezavo. Če kej pomaga.

Hvala za info. in LP

kronik ::

Vazno je samo, da ima IP reverse naslov, ni vazno kaksen je (I think:\ )

Self-Defence ::

Aha, ker sej tut domači IPji imajo revers(npr. BSN-**-**-***.dsl.siol.net.). Sicer je malo grd ampak je pa. Ti pa potem sfiltriraš vn vse kar ima dsl, cable, ipd. notr.

Ker vem, da so pri nas imeli probleme z maili ki niso prihajal ker je postfix preveril IP domene in nazaj resolval in če ta ni bila enaka kot pošiljateljova je pošto označilo kot spam in jo zbrisalo.
Zdej pa nevem kako je to potem rešeno če je več domen na enem strežniku. Ker revers je lahko samo en, a ne? Potem bi v takem primeru postfix vseeno zbrisalo sporočila(če je tako nastavljen)?

Hvala in LP

Bakunin ::

ta "rule" je na "IP" (client) nivoju in nima veze z posiljateljevo domeno ipd.


Postfix preveri IP oz. povratni IP STREZNIKA(?) ki je vzpostavil smtp povezavo.
Ce ugotovi, da ta ni dsl/cable/dialup, potem sele dovoli nadaljno (smtp) komunikacijo (MAIL FROM:,....RCPT TO:,....DATA...)

gre samo zato da ne KOMUNICIRAS (kaj sele sprejemas e-posto) iz IP, ki so ocitno "neki" domaci (okuzeni?) PCji.
vsak resen e-postni streznik in upravitelj si (mora?) uredi svoj unikaten povratni IP naslov (nekaj.imepodjetja.tld)....

tako se pac resi seme od plevela....

Zgodovina sprememb…

  • spremenil: Bakunin ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Spam

Oddelek: Pomoč in nasveti
345698 (4155) Matko
»

[Ubuntu server] mail poslan iz serverja zazna kot vsiljeno pošto (strani: 1 2 )

Oddelek: Omrežja in internet
798820 (7790) shorvat
»

Postfix Relay access denied

Oddelek: Programska oprema
61876 (1794) jype
»

SMTP Relay; delovanje boot, ki to izkoriscajo

Oddelek: Omrežja in internet
152038 (1835) BigWhale
»

blacklisted: list.dsbl.org

Oddelek: Omrežja in internet
152267 (2066) Bakunin

Več podobnih tem