Sziasztok!
Exim4-et használok Debian 6.0 alatt. WEB hosting szerverről van szó, van tehát sok domain, még több e-mail címmel.
Jelen esetben a probléma az, hogy buta egyszerű php programokkal lehet úgy levelet kiküldeni, hogy nincs ellenőrizve a feladó.
Jelen helyzetben tehát üresen hagyott feladóval, bármilyen "belehazudott" e-mail címmel kiküldi a levelet.
Nyilván a fogadó oldali SMTP szerverek beállításaitól függően vagy elfogadják a leveleket, vagy nem. Ez utóbbiak megfigyelésem szerint "frozen" állapottal a mail queue-ban maradnak, az exim pedig próbálkozik velük napokig.
Azt szeretném megoldani, hogy csak létező domain nevében, létező e-mail címmel lehessen levelet küldeni. Az Eximben nem vagyok nagyon jártas, ismerkedek vele.
Természetesen keresgéltem a neten, találtam ilyet headers_sender_verify = yes és ilyet headers_checks_fail = yes, de sehogysem fogadta el az Exim. Még az ACL-ek elé írtam be, a globális részbe.
Ilyen hibaüziket adott:
2011-08-24 10:00:53 Exim configuration error in line 63 of /var/lib/exim4/config.autogenerated.tmp:
main option "headers_sender_verify" unknown
2011-08-24 10:01:19 Exim configuration error in line 63 of /var/lib/exim4/config.autogenerated.tmp:
main option "headers_checks_fail" unknown
A konfig fájlom jelenleg ilyen:
-----------------------------------------------------------------------------------------------------------------------------------
smtp_banner = "${primary_hostname} ESMTP"
POSTGREY_SOCKET = /var/run/postgrey.socket
SPAMCBIN=/usr/bin/spamc
EXIMBIN=/usr/sbin/exim4
log_selector = \
+all_parents \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+tls_cipher +tls_peerdn \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error
# CONFDIR=__ISP_CONFDIR__
# daemon_smtp_port = 25:465
# tls_certificate = CONFDIR/certificate.crt
# tls_privatekey = CONFDIR/certificate.key
# tls_on_connect_ports = 465
.ifdef MAILMAN_ENABLE
MAILMAN_HOME=__MAILMAN_HOME__
MAILMAN_WRAP=__MAILMAN_WRAP__
MAILMAN_USER=__MAILMAN_USER__
MAILMAN_GROUP=__MAILMAN_GROUP__
.endif
trusted_groups = mgrsecure
trusted_users = www-data
domainlist local_domains = lsearch;/etc/exim4/domains
domainlist dummy_domains =
hostlist relay_from_hosts = 127.0.0.1 : xxx.xxx.xxx.xxx
domainlist relay_to_domains = lsearch;/etc/exim4/domains
exim_user = Debian-exim
exim_group = Debian-exim
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
begin acl
acl_check_rcpt:
accept hosts = net-lsearch;/etc/exim4/whitelist
deny hosts = net-lsearch;/etc/exim4/blacklist
message = $host_data
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
verify = recipient
domains = +local_domains
require verify = sender
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
condition = ${if eq{${extract{5}{:}{${lookup{$authenticated_id}lsearch{/etc/exim4/passwd}}}}}{no} {yes}{no}}
condition = ${if eq{${extract{3}{:}{${lookup{${domain:$authenticated_id}}lsearch{/etc/exim4/domains}}}}}{no} {yes}{no}}
control = submission/domain=
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
dnslists = ${readfile {/etc/exim4/dnsblists}{:}}
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient
.ifdef POSTGREY_SOCKET
defer log_message = greylisted host $sender_host_address
set acl_m0 = request=smtpd_access_policy\nprotocol_state=RCPT\nprotocol_name=${uc:$received_protocol}\nhelo_name=$sender_helo_name\nclient_address=$sender_host_address\nclient_name=$sender_host_name\nsender=$sender_address\nrecipient=$local_part@$domain\ninstance=$sender_host_address/$sender_address/$local_part@$domain\n\n
set acl_m0 = ${sg{${readsocket{POSTGREY_SOCKET}{$acl_m0}{5s}{}{action=DUNNO}}}{action=}{}}
message = ${sg{$acl_m0}{^\\w+\\s*}{}}
condition = ${if eq{${uc:${substr{0}{5}{$acl_m0}}}}{DEFER}{true}{false}}
.endif
accept
acl_check_data:
accept
begin routers
dnslookup:
driver = dnslookup
domains = !+dummy_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
self = pass
no_more
disabled_domains:
driver = redirect
condition = ${extract{3}{:}{${lookup{$domain}lsearch{/etc/exim4/domains}}}}
allow_fail = yes
data = :fail: Domain disabled
no_more
disabled_users:
driver = redirect
condition = ${extract{5}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}
allow_fail = yes
data = :fail: User disabled
no_more
local_domains:
driver = redirect
data = ${quote_local_part:$local_part}@${extract{1}{:}{${lookup{$domain}lsearch{/etc/exim4/domains}}}}
cannot_route_message = Unknown user
no_more
.ifdef SA_ENABLE
spamcheck_router:
no_verify
condition = "${if and { {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}}} {1}{0}}"
driver = accept
transport = spamcheck
.endif
group_aliases:
driver = redirect
data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/aliases}}}}
condition = ${if and{\
{exists{/etc/exim4/aliases}}\
{eq {${extract{2}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/aliases}}}}} {group} }\
} {yes} {no} }
redirect_router = a_dnslookup
pipe_transport = address_pipe
aliases:
driver = redirect
data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/aliases}}}}
condition = ${if exists{/etc/exim4/aliases} {yes} {no} }
pipe_transport = address_pipe
local_users:
driver = redirect
condition = ${lookup {$local_part@$domain} lsearch {/etc/exim4/passwd} {yes} {no} }
data = $local_part@$domain
redirect_router = autoreplay
.ifdef MAILMAN_ENABLE
mailman:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
transport = mailman
mailman_isp:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part-$domain/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
transport = mailman_isp
.endif
catchall_for_domains:
driver = redirect
headers_add = X-redirected: yes
data = ${extract{2}{:}{${lookup{$domain}lsearch{/etc/exim4/domains}}}}
file_transport = local_delivery
unknown_users:
driver = redirect
allow_fail = yes
data = :fail: Unknown user
no_more
autoreplay:
driver = accept
condition = ${if exists{${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}/message.txt} {yes} {no}}
retry_use_local_part
transport = address_reply
unseen
localuser:
driver = accept
transport = local_delivery
# Same routers without autoreplay
a_dnslookup:
driver = dnslookup
domains = !+dummy_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
self = pass
no_more
a_disabled_domains:
driver = redirect
condition = ${extract{3}{:}{${lookup{$domain}lsearch{/etc/exim4/domains}}}}
allow_fail = yes
data = :fail: Domain disabled
no_more
a_disabled_users:
driver = redirect
condition = ${extract{5}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}
allow_fail = yes
data = :fail: User disabled
no_more
a_local_domains:
driver = redirect
data = ${quote_local_part:$local_part}@${extract{1}{:}{${lookup{$domain}lsearch{/etc/exim4/domains}}}}
cannot_route_message = Unknown user
redirect_router = a_dnslookup
no_more
a_aliases:
driver = redirect
data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/aliases}}}}
condition = ${if exists{/etc/exim4/aliases} {yes} {no} }
redirect_router = a_dnslookup
pipe_transport = address_pipe
a_local_users:
driver = accept
transport = local_delivery
condition = ${lookup {$local_part@$domain} lsearch {/etc/exim4/passwd} {yes} {no} }
.ifdef MAILMAN_ENABLE
a_mailman:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
transport = mailman
a_mailman_isp:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part-$domain/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : -confirm+* : -join : -leave : -owner : -request : -admin : -subscribe : -unsubscribe
transport = mailman_isp
.endif
a_catchall_for_domains:
driver = redirect
headers_add = X-redirected: yes
data = ${extract{2}{:}{${lookup{$domain}lsearch{/etc/exim4/domains}}}}
file_transport = local_delivery
redirect_router = a_dnslookup
begin transports
remote_smtp:
driver = smtp
hosts_avoid_tls = *
local_delivery:
driver = appendfile
directory = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}/.maildir
maildir_format
delivery_date_add
envelope_to_add
return_path_add
mode = 0660
quota = ${extract{3}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}M
quota_warn_threshold = 75%
use_lockfile = no
no_mode_fail_narrower
user = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}
group = ${extract{2}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}
address_pipe:
driver = pipe
ignore_status
return_output
use_shell
address_reply:
driver = autoreply
headers = ${readfile{${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/passwd}}}}/message.txt}}
to = $sender_address
.ifdef MAILMAN_ENABLE
mailman_isp:
driver = pipe
command = MAILMAN_WRAP '${if def:local_part_suffix {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} {post}}' $local_part-$domain
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP
mailman:
driver = pipe
command = MAILMAN_WRAP '${if def:local_part_suffix {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} {post}}' $local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP
.endif
.ifdef SA_ENABLE
spamcheck:
debug_print = "T: spamassassin_pipe for $local_part@$domain"
driver = pipe
command = EXIMBIN -oMr spam-scanned -bS
use_bsmtp
transport_filter = SPAMCBIN
home_directory = "/tmp"
current_directory = "/tmp"
user = Debian-exim
group = Debian-exim
return_fail_output
message_prefix =
message_suffix =
.endif
begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
begin rewrite
.ifdef MAILMAN_ENABLE
\N^(.*<)?([^<]*)@([^>]*).*$\N "${if exists{MAILMAN_HOME/lists/${sg{$2}{-$3.*}{-$3}}/config.pck} {${sg{$0} {-$3} {}}} {$0} }" S
\N^(.*<)?([^<]*)@([^>]*).*$\N "${if exists{MAILMAN_HOME/lists/${sg{$2}{-$3.*}{-$3}}/config.pck} {${sg{$0} {-$3} {}}} {$0} }"
.endif
begin authenticators
cram:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${extract {6} {:} {${lookup{$1}lsearch{/etc/exim4/passwd}}}}
server_set_id = $1
plain:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_condition = ${if and{{!eq{$3}{}} {eq {$3} {${extract {6} {:} {${lookup{$2}lsearch{/etc/exim4/passwd}}}}}}} {yes} {no} }
server_set_id = $2
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if and{{!eq{$2}{}} {eq {$2} {${extract {6} {:} {${lookup{$1}lsearch{/etc/exim4/passwd}}}}}}} {yes} {no} }
server_set_id = $1
-----------------------------------------------------------------------------------------------------------------------------------
Hogyan és mit kellene beállítani ahhoz, hogy ellenőrizze le a feladó létezését, mielőtt kézbesíti a levelet?
Előre is köszi!
- 4937 megtekintés
Hozzászólások
> Azt szeretném megoldani, hogy csak létező domain nevében, létező e-mail címmel lehessen levelet küldeni.
Pld ha a feladó billg@microsoft.com akkor az rendben van? (létező domain, létező email cím)
- A hozzászóláshoz be kell jelentkezni
Igazat megvallva már az is nagy előrelépés lenne :)
- A hozzászóláshoz be kell jelentkezni
Senki sem tud ebben segíteni? :(
- A hozzászóláshoz be kell jelentkezni
Csinálj egy SQL-es listát azokról a domainekről, amiket a webhosting szerver kezel. Elsőre lődd be, hogy CSAK smtp-vel küldhetnek (phpmailer kiváló lehet) levelet, bármennyire is fájó ez a weboldal készítőknek. Második állítsd be az acl-eknél, hogy:
warn senders = ${lookup mysql{INSERT INTO sender_addres_log (sender_address, logtime) VALUES (....)}}
accept sender_domains = ${lookup mysql{SELECT domain FROM allowed_sender_domains WHERE domain = ${quote_mysql:$sender_address_domain}}}}
endpass
deny message = Relaying denied
Persze a saját egyéb rule-jaid is legyenek benne amit szeretnél. A kimenő feladók ilyen naplózása pedig azért hasznos, mert sokkal egyszerűbb lesz visszakeresni.
Hasonló szigort épp ősszel készülök bevezetni több gépen is. :)
- A hozzászóláshoz be kell jelentkezni
Na ezért fogom lecserélni az exim-et. Egyszer beállítottam, azóta nem kellet hozzányúlnom, elfelejtettem ezeket a beállításokat. De ha egyszer bele kell piszkálni, akkor meg leszek lőve :)
Szóval, nálam ha nem stimmel a feladó email címe, akkor nem küldi el. Valószínűleg valamelyik acl szabály tiltja :)
acl_check_rcpt
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
require verify = sender
accept domains = +local_domains
endpass
verify = recipient
accept domains = +relay_to_domains
endpass
verify = recipient
accept hosts = +relay_from_hosts
accept authenticated = *
deny message = relay not permitted
- A hozzászóláshoz be kell jelentkezni
Köszi!
Ezt próbáltam beilleszteni, lecserélve vele a sajátom erre vonatkozó részét, de nem igazán tiltotta :(
Hogyan lehetne ezt igazán jól tesztelni? Előző hozzászólásomban mutattam egy php szkriptet, de ugyanúgy viselkedik, ha shellből küldök egy mailt. Nem tudom belehamisítani a tényleges feladó címet, mindig a root@srvname.srvdomain.hu lesz az. Nyilván ha csinálok egy usert, akkor pedig a user@srvname.srvdomain.hu lesz a feladója... :S
Amúgy mire akarod lecserélni az eximet? Sajnos nekem ezt kell használni, fizetős web hosting szoftver erre épül, rendszeresen frissül, át lehet térni más SMTP-re, de nem látható anomáliákat okozhat esetleg egy-egy frissítés... ahol lehet mondjuk Postfixet használtam, használok, ahhoz képest hajmeresztő ez az Exim :O
- A hozzászóláshoz be kell jelentkezni
up
- A hozzászóláshoz be kell jelentkezni
az acl_check_rcpt: úgy kezdődik, hogy accept hosts whitelist, ez azt jelenti, hogy aki benne van a whitelist-ben, annál nem nézi a további feltételeket. ezután később hiába van már require verify = sender (ami azt csinálná, amit szeretnél), ha korábban az accept miatt már befejezte az acl ellenőrzését.
- A hozzászóláshoz be kell jelentkezni
Hát magában a whitelistben nincsen semmi, 0 a hossza.
De kommenteztem a sort, exim restart, de úgy sem volt hatással semmi semmire.
Aztán kipróbáltam azt, hogy az acl_check_rcpt: után egyből bemásoltam a require verify = sender sort (meghagyván ugyanezt az eredeti helyén is).
Itt kicsit tanácstalan lettem....
Nézegettem a maileket, amiket mindig sikeresen kiküldtem ezzel a kis php teszt kóddal:
<?php
$to = "letezo_cim@eztfigyelem.hu";
$subject = "Proba";
$message = "Hello! Proba level.";
$from = "ize@valami.hu";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail sent.";
?>
Nos, úgy néz ki, hogy mivel a szervernek is van saját host és domain neve, valamint root-ként konzolból indítgattam ezt a php-t, a valós cím, ahonnan a levél küldve lett, mindig a root@srvname.srvdomain.hu lett, a mail kliens programok pedig az itt beállított "from" címet mutatják. Ezt hiába törlöm ki, írom át totál marhaságra, mint akár ema!il*cim#.comcom, ezzel a feladóval érkezik meg akkor a levél. Azaz amit itt "from"-nak meg tudok adni, az amolyan "megjelenítendő név", bármi lehet. Annyi, hogy ha nincs benne kukac, akkor hozzáteszi a feladói "baromság" végére a @srvname.srvdomain.hu-t. De akkor is a valós feladó az a root, nyilván, mert az ő nevében futtatom a php-t.
Ez után próbálkoztam a tiltásokkal, egyáltalán lássak valami tiltást, de sehogy sem sikerült. Alapvetően a blacklist fájllal játszottam, kommentezve is volt, meg nem is a whitelist sor, de ezt sem igazán látom át. Beleírtam a srvhost.srvdomain.hu, alá srvdomain.hu, sőt, root@srvhost.srvdomain.hu, illetve localhost címeket is, mindet új sorba, exim restart, de a root@srvhost.srvdomain.hu mindig is tudott leveleket kiküldeni, azok mindig megérkeztek.
Komolyan úgy kezdem érezni, mintha nem azt a fájlt venné konfignak, amit szerkesztek :S - Pedig ebben a fájlban van dnsbl használat is, na az működik szépen, tehát biztosan a jó konfigot szerkesztem, csak hát...
Valami tipp?
SQL szintre addig nem is lépnék, amíg sima szöveges fájl szinten nem tudok tiltani.... :(
- A hozzászóláshoz be kell jelentkezni
[off]
nem akarok kukacoskodni, de a php-t nem lenne jobb valami www,nobody stb userként futtatni inkább?
[/off]
- A hozzászóláshoz be kell jelentkezni
Komolyan úgy kezdem érezni, mintha nem azt a fájlt venné konfignak, amit szerkesztek :S
Van benne olyan is, hogy debug mód (-d). Akkor irgalmatlan mennyiségű üzenettel örvendeztet meg, amiből egyébként elég jól lehet dekódolni, hogy a konfig fájlban hol téved rossz irányba.
- A hozzászóláshoz be kell jelentkezni
Hosszú évek Eximes tapasztalata, hogy a Debianos config mindenre jó, de arra nem, hogy teljes és részletes megértés nélkül módosíts benne bármit.
Ha hostingod van, valahol illő lennie egy adatbázisnak, hogy kinek milyen domainjei vannak. Innentől az ACL-ekben berakhatod egy acl_mvalamennyi változóba, ha nem felelt meg a lookupolt domain listának, majd egy dummy routerben vagy az SMTP transportban felülcsaphatod.
- A hozzászóláshoz be kell jelentkezni
ha valami ehhez hasonlot be tudnal allitani az adott virtualhost-ra, akkor mar nyeregben lennel, legalabbis, akkor a 'mail from' utan mar garantalt valid email cimed lenne:
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f bela @aaa.fu"
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
Nos, mint kiderítettem, ez a sor így ahogy van, minden domain tulajdonosának a php.ini-jében megvan.
Attól tartok, a gond nem is itt van, hanem inkább valami visszaellenőrzésféle nem zajlik le minden esetben. De igazából nem tudom megítélni, hogy mitől lehet. A lényeg, hogy látni ilyeneket a queue-ban:
31m 1.4K 1R4rDl-0005f7-Mn <> *** frozen ***
www-data@sajatserverdoamin.hu
21m 1.4K 1R4rNS-0007JA-1S <> *** frozen ***
www-data@sajatserverdoamin.hu
11m 1.4K 1R4rX7-0001mf-5H <> *** frozen ***
www-data@sajatserverdoamin.hu
1m 1.4K 1R4rgn-0003bT-6u <> *** frozen ***
www-data@sajatserverdoamin.hu
Ezek mitől lehetnek? Mit lehet tenni, hogy ezek ne is maradjanak itt. Úgy tudom - lehet, hogy rosszul - hogy ami frozen levél, annak kézbesítésével már nem is foglalkozik a jövőben az Exim. Ha ez tényleg így van, akkor felesleges is lenne letárolni a queue-ban...
Van valami tippetek ez ellen?
- A hozzászóláshoz be kell jelentkezni
Mit lehet tenni, hogy ezek ne is maradjanak itt.
a) megoldás: írsz egy scriptet, ami cronból minden frozen levelet kidob a kukába (-Mrm)
b) megoldás: beállítod a timeout_frozen_after paramétert, hogy mennyi idő után dobja ki a kézbesíthetetlen leveleket
c) megoldás: megoldod, hogy a www-data@domain cím valós legyen, és a rá érkező leveleket kérdezés nélkül dobja az exim a kukába:
localpartlist discard_accounts = mailer-daemon : discard : postmaster : www-data
domainlist discard_domains = domain1 : domain2 : domain3
begin routers
discard:
driver = redirect
domains = +discard_domains
condition = ${if match_local_part{$local_part}{+discard_accounts}}
data = :blackhole:
- A hozzászóláshoz be kell jelentkezni
Ezer köszönet, próbálkozom egy sort!
- A hozzászóláshoz be kell jelentkezni
Nos, köszönöm a segítséget, teszt üzemben megy a dolog, egyelőre jónak tűnik.
a) - elvetettem, mert egységes megoldás lenne jó, több szerver van ugyanis, van olyan, amelyik már 1000 queueban levéltől rendesen belassul, majd cserélve lesz, de akkor is, addig is. Egy feltört joomla után néhány perc alatt elérheti ezt a mennyiséget frozen levelekkel. Így mondjuk 1, esetleg 5 percenként kellene futtatni, ami meg általában felesleges, meg jobb lenne eximen belül megoldani ezt.
b) E mellett döntöttem, a fentebb írt okok miatt 1 percre állítottam be a default 7 napot. Meglátjuk.
c) Jobban megnézve úgy tűnik, hogy bár szép lenne, jó lenne, de akkor jönnek létre ezek a levelek, ha a feladóhoz olyan címet beírva küldik ki, mely nem létező feladó és a címzett sem fogadja el - valószínű, mert nem létezik.
Meg tudtok erősíteni abban, hogy egy átmeneti (4xx) hibakóddal visszautasított levél nem lesz frozen állapotú ugye? Azt nem szeretném, hogy szürkelistázás, vagy éppen megtelt postafiók miatt elbukjam a későbbi újraküldést.
Jó lenne persze az authentikált SMTP még lokálisan is, persze. Csak ettől egyrészt nem védene meg, másrészt iszonyat gondokat generálna, mert nem 10-20 domain van szerverenként. Ezeket mind átírattatni szinte lehetetlen...
- A hozzászóláshoz be kell jelentkezni
c) Jobban megnézve úgy tűnik, hogy bár szép lenne, jó lenne, de akkor jönnek létre ezek a levelek, ha a feladóhoz olyan címet beírva küldik ki, mely nem létező feladó és a címzett sem fogadja el - valószínű, mert nem létezik.
Azt ugye vágod, hogy rengeteg site nem fogad be olyan From mezővel levelet, amelyre nem tudna egy bounce-ot visszaküldeni? Tehát ha a www-data@domain címre kívülről rápróbálva elhajtod a usert (mert nincs ilyen mailcím), akkor ne is akarjál ilyen From mezővel leveleket kiküldeni, mert spamnek fogják tekinteni egy halom helyen!
- A hozzászóláshoz be kell jelentkezni
miert akarna barki is pl. egy noreply@ cimre raprobalni? Foleg, hogy az ilyen levelekben le is szoktak irni, hogy erre a cimre ne valaszoljon, mert automata kuldte...
- A hozzászóláshoz be kell jelentkezni
Nem ember fog próbálni válaszolni...
Ugyanis vannak f.szok, akik úgy konfigurálják mail szerverüket, hogy callouttal visszanéznek, és be sem fogadják azokat a leveleket, amiknek nem kézbesíthető a feladójuk.
Ill. vannak helyek, akik ilyet ugyan nem tesznek, de ha nem jön össze a kézbesítés, akkor próbálnak bounce-ot visszaküldeni. Ez ide ugye nem fog menni. Ekkor a levelet, ami bejött hozzájuk, elküldik mindenféle spamgyűjtő organizációhoz, hogy tessék küldtek nekünk valami szemetet, a feladó pedig nem létezik, ergó az a host, ahonnan jött, az egy spammer host, tessék felvenni a listára. Vagy csak szimplán maguknak építenek egy ilyen blacklistet, és több levelet nem fogadnak el a te ip címedről.
- A hozzászóláshoz be kell jelentkezni
igen, ez valoban egy eleg dzsardzsar gyakorlat: az egyik otromba fals pozitiv hibat vet, a masik meg meg ra is tesz egy lapattal. LOL, egyesek spam elleni megoldasainak precizitasa (na meg az eredmenye is) vetekszik a baltaval vegzett agymutetevel. Azt hiszem, inditok egy sorozatot "Hogyan _NE_ szurjunk spamet" cimmel... :-)
- A hozzászóláshoz be kell jelentkezni
Nincs localhost meg www-data kivétel, authentikálni kell levélküldéshez, és emellett a php mail() függvény is mehet a többi tiltott közé.
--
Discover It - Have a lot of fun!
- A hozzászóláshoz be kell jelentkezni
Attól tartok, kicsit ide tartozik ez is, van ugyanis olyan helyzet, amikor SPAM levél érkezik úgy, hogy a feladóhoz be van hamisítva valami cím, de a return-path üresen van hagyva.
Így néz ki:
Return-path: <>
Lehet ez ellen védekezni valahogy? Az lenne a lényeg, hogy ha nincs mögötte valós feladó, ne fogadja el. Ez egybevág azzal, amit szerettem volna e topik indításakor is csinálni.
Mutatnék egy levelet.
A levél egy, a szerveren hostolt domain egyik postafiókjába érkezett, így néz ki:
-------------------------------------------------------------------
Return-path: <>
Envelope-to: user@hostoltdomain.hu
Delivery-date: Mon, 12 Sep 2011 04:51:00 +0200
Received: from Debian-exim by szerver.szerverdomain.hu with local (Exim 4.69)
id 1R2wbs-0006e2-J7
for user@hostoltdomain.hu; Mon, 12 Sep 2011 04:51:00 +0200
X-Failed-Recipients: iloya40@aol.com
Auto-Submitted: auto-replied
From: Mail Delivery System
To: user@hostoltdomain.hu
Subject: Mail delivery failed: returning message to sender
Message-Id:
Date: Mon, 12 Sep 2011 04:51:00 +0200
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
iloya40@aol.com
SMTP error from remote mail server after RCPT TO::
host mailin-04.mx.aol.com [205.188.103.2]: 550 5.1.1 :
Recipient address rejected: aol.com
------ This is a copy of the message, including all the headers. ------
Return-path:
Received: from [220.123.149.39] (helo=localhost)
by szerver.szerverdomain.hu with esmtpa (Exim 4.69)
(envelope-from )
id 1R2evL-0003L2-6O
for iloya40@aol.com; Sun, 11 Sep 2011 09:57:55 +0200
From: user@hostoltdomain.hu
To: iloya40@aol.com
Subject: You have to see this stock alert!
Message-Id:
Date: Sun, 11 Sep 2011 09:57:55 +0200
Sonora Resources (S U RE.O_B) is today's most profitable silver play! The
yellow metal jumped 90% from November 2008 to April 2011, but silver surged
FOUR TIMES HIGHER - up 390% in that same span.
S U RE.O_B - get yours.
Market: $.43
Target: $2.50
Don't miss out, buy your shares on Monday, September 12th.
-------------------------------------------------------------------
Nekem ez valami bounce-spam-nek rémlik, belehamisították a hostolt domain usert a feladóba, neki pattant vissza az, amit nem is ő küldött el. Szerintem ezzel a legelső "return-path"-szal meg lehetne fogni, de tudja fene.
Egyrészt mit gondoltok erről, másrészt van-e lehetősége arra, hogy az ilyen "<>" leveleket alapból ne fogadja az Exim?
Köszi előre is!
- A hozzászóláshoz be kell jelentkezni