Postfix SMTP auth kintről kifele nem megy

Adott az alábbi Postfix Debina GNU/Linux Sarge rendszeren:

main.cf
--------------
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
mydomain = sajatdomain.hu
myhostname = mail.sajatdomain.hu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = sajatdomain.hu, server.sajatdomain.hu, localhost.sajatdomain.hu, localhost
relayhost =
mynetworks = 127.0.0.0/8 192.168.10.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/

smtpd_require_helo=yes
smtpd_helo_restrictons=reject_invalid_hostname
smtpd_sender_restriction=reject_unknow_address

smtpd_recipient_restriction=permit_mynewtworks,check_relay_domains,
reject_rbl_client = relays.ordb.org,
reject_rbl_client = blackholes.easynet.nl,
reject_rbl_client = cbl.abuseat.org,
reject_rbl_client = proxies.blackholes.wirehub.net,
reject_rbl_client = bl.spamcop.net,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = opm.blitzed.org,
reject_rbl_client = dnsbl.njabl.org,
reject_rbl_client = list.dsbl.org,
reject_rbl_client = multihop.dsbl.org,
reject_rbl_client = psbl.surriel.com,
reject_rbl_client = dnsbl.sorbs.net,
reject_rbl_client = dynablock.njabl.org,
reject_rbl_client = ralays.ordb.org,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = blcakholes.wirehub.net

maps_rbl_domains =
sbl.spamhaus.org,
relay.ordb.org,
list.dsbl.org,
dynablock.wirehub.net,
blackholes.wirehub.net,
relays.visi.com,
dialups.visi.com

smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
local_recipient_maps =
smtp_tls_note_starttls_offer = yes
smtpd_use_tls = yes

smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
------------

A szerver egyetlen domaint szolgál ki a sajatdomain.hu levelezését kezeli.
A dolgozók szerették volna ha kivülről is tudnának smtp azonosítás után
levelet küldeni. A fenti "smtpd_ ..., stb" sorokat ilesztettem a
beállítások végére. A dolog félig működik: Lehet hálózaton kivülről
levelet küldeni, de csak a sajatdomain.hu címekre. Hálózaton kivülre
nem lehet küldeni "kintről". A belső hálóról ugyanakkor lehet küldeni bárhová,
mint az korábban is működött. Persze lett egy szépséghibája, most már
belső hálón is csak azonosítás után lehet küldeni, de ezt beállítottuk
a dolgozok kliensein hamar.

Viszont a hálózaton kivülről a hálózaton kivülre levélküldés kellene,
mert az nem megy. Arra gondoltam, hogy ez csak a /etc/postfix/main.cf
egy helyes, helytelen vagy hiányzó beállítása hozhatja helyre, ezért
csak azt másoltam fent be. Van valakinek ötlete?

Hozzászólások

smtpd_client_restrictions és smtpd_recipient_restrictions a te barátod.

pl.:
smtpd_client_restrictions = permit_sasl_authenticated, reject
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
esetleg még belerakhatod pl. client restrictionsba legelőre, hogy permint_mynetworks, és akkor $mynetworks hálózaton belüli kliensnek nem kell autentikálni.

----------------------------------
feel the beat - it's everywhere!

Utolsó helyre beírtam a client sort:

smtpd_client_restrictions = permit_sasl_authenticated,reject

A recipient sor pedig már volt, így egészítettem ki
(az első négy sor valójában egy sor):

smtpd_recipient_restriction=permit_mynetworks,
check_relay_domains,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client = relays.ordb.org,
reject_rbl_client = blackholes.easynet.nl,
reject_rbl_client = cbl.abuseat.org,
reject_rbl_client = proxies.blackholes.wirehub.net,
reject_rbl_client = bl.spamcop.net,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = opm.blitzed.org,
reject_rbl_client = dnsbl.njabl.org,
reject_rbl_client = list.dsbl.org,
reject_rbl_client = multihop.dsbl.org,
reject_rbl_client = psbl.surriel.com,
reject_rbl_client = dnsbl.sorbs.net,
reject_rbl_client = dynablock.njabl.org,
reject_rbl_client = ralays.ordb.org,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = blcakholes.wirehub.net

Ahogy írtad. Ettől sajnos nem megy.

Közben belenéztem a master.cf-be. Abba is tettem egy
plusz sort amikor elkészítettem a smtp azonosítást:

smtps inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_sender=yes
-o smtpd_recipient_restritions=permit_sasl_authenticated,reject
-o broken_sasl_auth_clients=yes

Mivel itt is szabályok vannak, gondolom ide kell új
valami újabb szabály. Próbáltam a fenti
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
sorral, sikertelenül. De lehet ide kell valami amire nem gondoltam.

A permit_mynetwork, az valószínűleg azért nem működött, mert
el volt írva, mynewtwork, mint fentebb. Ezt most vettem észre.
Az irodából még nem volt idő próbálni, de szerintem ezt rendben
lesz.

A ...clinet... pedig sajnos egyenlőre kevés.

"Persze lett egy szépséghibája, most már belső hálón is csak azonosítás után lehet küldeni, de ezt beállítottuk a dolgozok kliensein hamar. "
Azóta kintről jönnek levelek?
A sasl -nek olvass utána.

Küzdek ezzel az SMTP/AUTH-tal, de nem megy.
1soproni:
Kintről jönnek a levelek.

Bentről lehet kifele küldeni. Csak kintről kifele nem lehet. Most már agyon konfigoltam a postfixet. Telnetben és levelező kliensben is azt mondja, ha kintről jövök az smtpd szerverre és rcpt to: mezőt kinti címre adom meg, hogy Access denied.

Az egész master cf-et bemásolom hátha találtok olyan szabályt ami meg tiltja.

master.cf
---------
smtp inet n - y - - smtpd -o content_filter=smtp-amavis:[127.0.0.1]:10024

pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - - 300 1 qmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

smtps inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_sneder=yes
-o smtpd_recipient_restritions=permit_sasl_authenticated,reject
-o broken_sasl_auth_clients=yes

smtp-amavis unix - - y - 2 smtp -o smtp_data_done_timeout=1200 -o diable_dns_lookup=yes
127.0.0.1:10025 inet n - n - 100 smtpd
-o content_filter=
-o local_recipient_maps
-o myhostname=sajatdomain.hu
-o smtpd_helo_restriction=
-o smtpd_sender_restrictions=
-o smtpd_client_restrictions=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes

------------

main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no

mydomain = sajatdomain.hu
myhostname = mail.sajatdomain.hu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = sajatdomain.hu, server.kalotherm.hu, localhost.kalotherm.hu, localhost
relayhost =
mynetworks = 127.0.0.0/8 192.168.10.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/

smtpd_require_helo=yes
smtpd_helo_restrictons=reject_invalid_hostname
smtpd_sender_restriction=permit_sasl_authenticated,reject_unknow_address

smtpd_recipient_restriction=permit_mynetworks,permit_sasl_authenticated,
reject_rbl_client = relays.ordb.org,
reject_rbl_client = blackholes.easynet.nl,
reject_rbl_client = cbl.abuseat.org,
reject_rbl_client = proxies.blackholes.wirehub.net,
reject_rbl_client = bl.spamcop.net,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = opm.blitzed.org,
reject_rbl_client = dnsbl.njabl.org,
reject_rbl_client = list.dsbl.org,
reject_rbl_client = multihop.dsbl.org,
reject_rbl_client = psbl.surriel.com,
reject_rbl_client = dnsbl.sorbs.net,
reject_rbl_client = dynablock.njabl.org,
reject_rbl_client = ralays.ordb.org,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = blcakholes.wirehub.net

maps_rbl_domains =
sbl.spamhaus.org,
relay.ordb.org,
list.dsbl.org,
dynablock.wirehub.net,
blackholes.wirehub.net,
relays.visi.com,
dialups.visi.com

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_use_tls = yes
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 3

local_recipient_maps =
smtpd_tls_auth_only = no

smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem

smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/random

------------

A mynetworks még szűri hogy honnan lehet levelt küldeni.
Vigyázz vele mert kíváló open-relay szervert lehet így gyártani :-D

vagy szedd ki ezt a sort vagy írd át
mynetworks = 127.0.0.0/8 192.168.10.0/24

erre
mynetworks = *

-----------
A válaszok már készen állnak, csak jól kell kérdeznie.

No ezt ne!!! A mynetworks jó úgy ahogy volt!

Tesztelni így lehetne telnet segítségével:

perl -MMIME::Base64 -e ‘print encode_base64(”\0username\@servername.hu\0password”)’

A generált karaktersor kell majd.

openssl s_client -starttls smtp -crlf -connect 1.2.3.4:25

vagy

openssl s_client -crlf -connect 1.2.3.4:465

ehlo host.domein.hu

AUTH PLAIN “idejön_az_amit_a_perl_sor_visszaadott”
mail from: user@host.domain.hu
rcpt to: another.user@anotherhost.anotherdomain.hu

data

Subject: “subject”

text text text

.

quit

(mail body end line first character must be a dot!)

c

kurdakis: Pont hogy ezzel csinálsz Open-relay-t...

A lényeg hogy a restrictions részek szűrik, hogy kinek, mikor, mit engedünk.
Ennek alapján minden ami:
- permit -> engedélyezett, és nem nézi tovább
- reject -> tiltott, és nem nézi tovább
- check -> egy másik listában/táblában/stb. keresi meg. Ha nem tudja eldönteni, akkor tovább keres.

Pl. nálad:
smtpd_recipient_restriction=permit_mynewtworks,
check_relay_domains,
reject_rbl_client = relays.ordb.org,
...

Címzett_megkötések = saját_hálóból_bárkinek_engedélyezve,
relay_domain-ek_ellenőrzése, (szerintem neked nincs ilyened)
rbl_kliens_tiltása relays.ordb.org alapján,
....
--
Debian Linux rulez... :D

reject_rbl_client = relays.ordb.org,
reject_rbl_client = blackholes.easynet.nl,
reject_rbl_client = cbl.abuseat.org,
reject_rbl_client = proxies.blackholes.wirehub.net,
reject_rbl_client = bl.spamcop.net,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = opm.blitzed.org,
reject_rbl_client = dnsbl.njabl.org,
reject_rbl_client = list.dsbl.org,
reject_rbl_client = multihop.dsbl.org,
reject_rbl_client = psbl.surriel.com,
reject_rbl_client = dnsbl.sorbs.net,
reject_rbl_client = dynablock.njabl.org,
reject_rbl_client = ralays.ordb.org,
reject_rbl_client = sbl.spamhaus.org,
reject_rbl_client = blcakholes.wirehub.net

azért ebben van jópár duplikált és pár rosszul írt cím (pl. az utolsó, blcakholes?)

nálam így néz ki és működik (persze auth után):
main.cf
master.cf
(a masterben a defaulthoz képest csak a cyrus van megadva, illetve a submission asszem alapból tiltva volt)

----------------------------------
feel the beat - it's everywhere!

egy sikertelen kuldes logjat be tudnad masolni? hatha az segit...

A megoldás: két helyen hiányzott két karatker:

smtpd_recipient_restriction
smtpd_recipient_restrictions

smtpd_client_restriction
smtpd_client_restrictions

Csak többesszámban műkszik!

Persze az rbl sorok miatt kellett még a check_relay_domains, de
ez eredetileg benne volt, csak közben szedtem ki:

smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated, check_relay_domains
reject_rbl_client = relays.ordb.org,
...

Az eredeti célhoz is kellett a smtpd_client_restricons is, ahogy írtátok nekem fentebb. Szóval a kapcsolók jók voltak,
csak volt ott két elírás, azért nem ment a levelezés egy része.

Mindenkinek köszönöm aki időt fordított rá és/vagy hozzá szólt.
Minden hozzászólás ötletet adott és arra sarkalt, hogy ne adjam
fel!