Portál AbcLinuxu, 10. května 2025 04:29

Dotaz: Iptables, zakázať apache prístup na porty postfixu

21.4.2015 20:12 Peter
Iptables, zakázať apache prístup na porty postfixu
Přečteno: 445×
Odpovědět | Admin
Dobrý deň vám prajem.

Na jednom serveri mám nainštalovaný apache aj postfix a potrebujem zakázať aby apache (samozrejme pomocou php) mohol posielať maily či už cez ten lokálny postfix alebo cez hocijaký iný. Preto mám otázku či bude stačiť toto:
iptables --policy OUTPUT DROP
iptables --table filter --append OUTPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --table filter --append OUTPUT --match state --state INVALID --jump DROP
iptables --table filter --append OUTPUT --protocol TCP --match multiport --destination-port 25,465,587 --match owner --uid-owner 48 --jump DROP
iptables --table filter --append OUTPUT --jump ACCEPT
Vopred vám veľmi pekne ďakujem za odpovede.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.4.2015 21:46 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vzhledem k tomu, ze PHP vola binarku sendmail, Ti hrani s firewallem moc nepomuze. Viz sendmail_path v php.ini.
21.4.2015 22:34 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Je-li takhle nakonfigurovaný (což na linuxu IIRC defaultně je), tak to naopak znamená, že tazatel žádné hraní s firewallem nepotřebuje.
21.4.2015 23:26 Peter
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Toto som trošičku nepochopil
22.4.2015 08:35 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Pokud to PHP posílá pomocí /usr/bin/sendmail, tak ten je s největší pravděpodobností (nemáte-li nainstalovaných víc MTA současně, což nedává moc smysl) součástí právě toho postfixu a řídí se jeho konfigurací.
22.4.2015 10:47 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Omlouvám se, nějak jsem se zamotal v původním dotazu, pochopil jsem ho tak, že jde o to, aby z PHP skriptů šlo odesílat maily jen prostřednictvím postfixu (kde jsou třeba nějaké kontroly a politiky) a ne jakkoli jinak (čímž by se obešly). Pokud jde o to, aby mail nešlo poslat vůbec, tak se toho samozřejmě bude muset pozakazovat víc.
21.4.2015 23:29 Peter
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Funkciu mail mám zakázanu. A neviem o inej možnosti než použiť nejakú SMTP knižnicu, ale to, že o nej neviem neznamená, že neexistuje, preto sa pýtam.
22.4.2015 08:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu

Samozřejmě že existuje. Stačí navázat rovnou TCP spojení a SMTP komunikaci implementovat sám. Protokol není až tak složitý a pokud potřebujete jen poslat e-mail, je to v podstatě úplně triviální.

Spíš bych zpochybnil ten navrhovaný přístup ve stylu "chci zakázat navazovat TCP spojení na port 25 uživateli, pod kterým běží Apache". Místo toho bych doporučil povolit navazování takových spojení právě jen tomu postfixu a nikomu jinému. Obecně: explicitními výjimkami vymezovat, co má být povoleno; ne povolit všechno a výjimkami určovat, co zakážu.

22.4.2015 07:45 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle mě je to zapsáno dobře, v podstatě stačí jenom ten předposlední řádek. Jen bych tam osobně napsal spíše skupinu než uživatele, ale tady je to jedno.

Co se týče 1. příspěvku, je to celkem jedno, protože fitrování je prováděno na základě vlastníka procesu, což se při spouštění procesu přirozeně dědí. Dokud server nespustí nějakou setuid binárku, není čeho se obávat.

Jiným řešením by mohlo být použítí cgroups na novějších jádrech s čerstvými iptables, ale výše uvedené je jednodušší.
22.4.2015 10:43 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Binarka sendmail v postfixu pres postdrop vytvori file v maildrop adresari. Ten si pak vyzvedne proces s pravy uz beziciho postmaster daemona. Tam nekde se panackovi prava puvodniho apache/PHP procesu ztrati.
Kazdopadne vypnuti mail() zadnym zpusobem nebrani exec(sendmail) a podobne.
22.4.2015 18:59 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
V takovém případě by pomohla úprava práv toho sendmailu.
23.4.2015 13:43 Kriegel
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
co tohle?
23.4.2015 13:58 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
To bude asi lepší. :)
22.4.2015 19:36 j
Rozbalit Rozbalit vše Re: Iptables, zakázať apache prístup na porty postfixu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak uz bylo receno, vuci lokalnimu posilani to iptables neresi. Vuci vzdalenemu ano.

Lokalne lze vyuzit tisic a jeden zpusob jak mail odeslat, a pokud nechces tydny resit, kde nechal tesar diru, tak ten apache spust nekde extra a tomu stroji zakaz komunikaci na smtp porty uplne.

Jen bych chtel videt, co to bude za silenej web, ze kteryho nejde poslat mail ...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.