Sziasztok!
Adott egy szerver, amin Postfix, és webszerver (PHP-val) is fut. Az a problémám, hogy a localhost:25-re telnetelve hitelesítés nélkül is lehet levelet küldeni PHP kódból (SwiftMailerrel), vagy simán TCP socket nyitásával.
A következőket szeretném mind elérni:
- a localhost:25-ön keresztül ne lehessen levelet küldeni (helyette ott az 587-es, submission port, hitelesítéssel mehet a küldés)
- Lehetőleg nem iptables-szel szeretném megoldani, mert ágyúval verébre módszernek tűnik
- a 25-ös portot csak az internet felől érkező kliensek érjék el
Main.cf részlet:
mynetworks =
smtpd_recipient_restrictions = reject_unauth_destination, check_policy_service unix:private/policy-spf
Amikkel eddig próbálkotam, de nem működtek:
- main.cf
authorized_submit_users = root
ésauthorized_submit_users = !www-data, static:all
- ugyanúgy engedi a küldést - main.cf
inet_interfaces = aaa.bbb.ccc.ddd
, ahol az aaa.bbb.ccc.ddd az eth0 IP címe - ekkor az amavis nem tudta a Postfixnek eljuttatni az átengedett levelet - master.cf-ben átállítottam, hogy csak az eth0 IP címén figyeljen, de ez nem oldja meg a problémát: ha ismeri valaki az IP címet, akkor ezen a porton továbbra is hitelesítés nélkül tud küldeni
Ha a kérdés megválaszolásához kellenek még sorok a konfigurációs fájlokból, kérlek, hogy jelezzétek!
Válaszaitokat előre is köszönöm!
szerk: hibák javítva, kiegészítések.
- 2415 megtekintés
Hozzászólások
Neked inkabb az smtpd_sender_restrictions kell es/vagy a mynetworks beallitasa kell. Amugy a gepen keletkezo levelek (pl. cron jobok kimenete) biztos, hogy nem kellenek?
- A hozzászóláshoz be kell jelentkezni
Hmm, nem rossz, köszönöm. A mynetworks szándékosan üres, de még így is megengedte a küldést a 127.0.0.1:25-re érkező kérés esetén.
A cron jobok kimenete viszont kelle, tehát lehet, hogy végül mégis az iptables mellett kell maradjak, mert azzal megadható az UID is. www-data szűrve lenne, a többi processz küldhetne.
Sajnos ugyanis a kiszolgált weboldalakon a felhasználók SFTP-n írhatják a PHP kódokat, ezért jó lenne egy plusz réteggel védeni az SMTP kiszolgálót. Tudom, a legjobb az lenne, ha külön szerverre kerülne a web és a php interpreter, de ez egyelőre nem megvalósítható.
- A hozzászóláshoz be kell jelentkezni
Jobb ötlet:
25-ös port tíltása HA nem root user aki a portot nyitotta. Erre kínál megoldást az iptables. UID-ra, GID-ra is. Külön tíltható csak az apache user/csoport.
A topiknyitónak pedig: nem ágyúval verébre, inkább a legelegánsabb megoldás, egy korrekten belőtt tűzfal.
- A hozzászóláshoz be kell jelentkezni