Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam,
Chciałbym kilku systemowym użytkownikom uniemożliwić wysyłanie maili w świat przez Postfix.
Strasznie męczę się z dokumentacją Postfixa i mimo różnych prób serwer ciągle przepuszcza maila wysyłane przez nieporządanych userów.
Bardzo proszę o instrukcję jak taką prostą weryfikacją wprowadzić.
Próbuję z smtpd_recipient_restrictions, i w tej chwili mam to tak ustawione:
/etc/postfix/main.cf:
... smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/blockedsenders permit_sasl_authenticated permit_mynetworks reject_unauth_destination ..
/etc/postfix/blockedsenders:
test@mail.pakamera.com.pl reject test@pakamera.com.pl reject
Nie chcę, żeby można było wysyłać maile z adresu test@mail.pakamera.com.pl
Ale to nie działa.
Pozdrawiam
Offline
I jeszcze jedno - mam wrażenie, że pewne ograniczenia, które wprowadzam w main.cf nie obowiązują w ogóle gdy wysyłam maila z przy użyciu polecenia "mail" (a nie łącząc się z serwerem smtp po porcie 25). Ustawiłem na przykład w main.cf "reject" wszystkiego, przy próbie łączenia przez smtp mail został odrzucony, ale wysłanie z command line powiodło się. Jak to zablokować?
W ogóle nie chciałbym, żeby można było wysyłać maile przez polecenie "mail".
Offline
A ja to widzę tak - problemu nie ma.
Wystarzy rozdzielić bazy haseł dla serwera smtp (Postfixa), i serwera Pop/imap.
Wtedy bedzie można sprawdzać posztę przez pop/imap, ale wysylać przez postfixa będą mogli tylko ci użytkownicy, którzy istnieją w bazie postfixa.
I nie jest to na kilka godzin z dokumentacją, bo skrzynka pocztowa jest rozwiązaniem kompleksowym, ale skutecznym rozwiązaniem dość idiotycznego problemu.
Innym rozwiązaniem jest np spamassassin i blacklist, dzięki temu taki user dostanie np 50 punktów extra i i jego mail można zatrzymać.
Nie wiem, jak numer ze spamassassinem zalatwic w Postfixie, ale w Qmailu i qmail-sacnner sprawa jest banalna.
Pomijajac, że skoro np Qmail ma plik konfiguracyjny, gdzie można banować adresy i domeny, to Postfix pewnie też ma jakieś rozwiązanie blacklisty.
Co do filtru, który u Ciebie nie działa, przypuszczam, że Postfix nie stosuje filtra, który użyłeś, o ile wysylający przejdzie poprawnie proces autoryzacji.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-04-01 10:07:47)
Offline
Jacekalex napisał(-a):
A ja to widzę tak - problemu nie ma.
Wystarzy rozdzielić bazy ahseł dla serwera smtp (Postfixa), i serwera Pop/imap.
Wtefy bedzie można sprawszać posztę przez pop/imap, ale wysylać przez postfixa będą mogli tylko ci użytkownicy, którzy istnieją w bazie postfixa.
I nie jest to na kilka godzin z dokumentacją, bo skrzynka pocztowa jest rozwiązaniem kompleksowym, ale skutecznym rozwiązaniem dość idiotycznego problemu.
Innym rozwiązaniem jest np spamassassin i blacklist, dzięki temu taki user dostanie np 50 punktów extra i i jego mail można zatrzymać.
Nie wiem, jak numer ze spamassassinem zalatwic w Postfixie, ale w Qmailu i qmail-sacnner sprawa jest banalna.
Pomijajac, że skoro np Qmail ma plik konfiguracyjny, gdzie można banować adresy i domeny, to Postfix pewnie też ma jakieś rozwiązanie blacklisty.
Co do filtru, który u Ciebie nie działa, przypuszczam, że Postfix nie stosuje filtra, który użyleś, o ile wysylający przejdzie poprawnie proces autoryzacji.
To by było na tyle
;-)
Ok, ale którzy to są "ci użytkownicy, którzy istnieją w bazie postfixa"?
Bo według mnie to wszyscy userzy.
Chciałbym, żeby funkcja mail w php nie wysyłała maila. Teraz wystarczy palnąć w skrypcie: mail('jakub@pakamera.com.pl', 'tttt', 'sdfsdfsdfsd'); i mail wysłany
z adres www-data@mail.pakamera.com.pl. Tak być nie może, muszę to zablokować i w żaden sposób nie mogę. Czy ktoś sobie z tym poradził?
Offline
Wyłącz funkcję mail() w php?
Offline
A ci userzy jak te maile wysylają, przez interfejs www, czy przez smtp?
Bo jeśli funkcja mail, w php, a Postfix ma ustawiony adres serwera www z php jako adres, z którego przyjmuje wszystkie maile (tzw relay adres), to wtedy wszystkie filtry przepuszczą takiego maila.
Wystarczy zlikwidować adres relay, wymusić autoryzację, tylko wtedy php mail też musi przejść proces autoryzacji.
Ale żeby w skrypcie php filtrować uzytkowników, którzy mogą wysylać maile, to już trzeba załatwić w tym skrypcie.
Choć np roudcube wysyła przez smtp z uwierzytelnieniem, ale nie wiem, co tam masz za skrypt php, że taki straszny z tym problem.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-04-01 10:08:34)
Offline
Jacekalex napisał(-a):
A ci userzy jak te maile wysylają, przez interfejs www, czy przez smtp?
Bo jeśli funkcja mail, w php, a Postfix ma ustawiony adres serwera www z php jako adres, zktórego przyjmuje wszystkie maile (tzw relay adres), to wtedy wszystkie filtry przepuszczą takiego maila.
Wystarczy zlikwidować adres relay, wymusić autoryzcję, tylko wtedy php mail też musi przejść proces autoryzacji.
Ale żeby w skrypcie php filtrować uzytkowników, którzy mogą wysylać maile, to już trzeba załatwić w tym skrypcie.
Choć np roudcube wysyła przez smtp z uwierzytelnieniem, ale nie wiem, co tam masz za skrypt php, że taki straszny z tym problem.
To by było na tyle
;-)
Mistrzu, swoje pytanie kieruję do tych, którzy ZNAJĄ SIĘ na konfiguracji postfixa.
Skrypt mam prosty:
<?php mail('jakub@pakamera.com.pl', 'asdasdasdasd', 'sdfsdfsdfsd'); ?>
:-) i chcę, żeby to nie wysyłało maili.
Rozwiązanie z wyłączeniem funkcji "mail" działa, ale to trochę z armatą na mrówkę.
Offline
Może to zawiera odp: ftp://control.slupsk.pl/pub/Linux/Postfix-virtual-antirelay.pdf
Mistrzu, swoje pytanie kieruję do tych, którzy ZNAJĄ SIĘ na konfiguracji postfixa.
I dlatego w pierwszym poście nie napisaleś nawet, że chodzi o wysyłanie przez relaya?
Napisałbym conieco, ale nie chcę flame robić....
To by bylo na tyle
;-)
Offline
Jacekalex napisał(-a):
Może to zawiera odp: ftp://control.slupsk.pl/pub/Linux/Postfix-virtual-antirelay.pdf
Mistrzu, swoje pytanie kieruję do tych, którzy ZNAJĄ SIĘ na konfiguracji postfixa.
I dlatego w pierwszym poście nie napisaleś nawet, że chodzi o wysyłanie przez relaya?
Napisałem o tym w drugim poście.
Offline
@kubak z tego co pamietam i skleroza mi tej wiedzy nie usunela ;) to funkcja mail() kozysta z sendmaila, to go wylacz, i tak jak milyges napisal mozesz wylaczyc funkcje mail() w konfigu php
Offline
funkcję mail wyłączyłem
a jak wyłączyć sendmaila?
usunąć skrypt?
Offline
killall sendmail? i z runlevel usunac (init.d)?
Offline
jezoo napisał(-a):
killall sendmail? i z runlevel usunac (init.d)?
ja mam postfixa, więc sendmail nie chodzi jak daemon
Offline
Może skorzystaj z jednej z restrykcyjnych powłok takich jak rbash ( info w man bash ) czy ibsh, tam będziesz mógł określić co moga uruchamiać uzytkownicy co nie oraz wiele innych rzeczy.
Ostatnio edytowany przez ba10 (2011-07-01 13:30:39)
Offline
Jeżeli funkcja mail używa polecenia sendmail, to może zamiast tego pliku wykonywalnego sendmail podłożyć skrypt napisany np w perlu, który najpierw będzie sprawdzał kto wysyła i do kogo wysyła, i co wysyła, a potem odpalał właściwe polecenie wysłania maila?
Zmiana nazwy pliku sendmail wykonalna, można potem porzeźbić w tym skrypcie,
żeby sprawdzał, co trzeba, i powinno ruszyć.
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2011-07-01 13:41:34)
Offline
kubak napisał(-a):
jezoo napisał(-a):
killall sendmail? i z runlevel usunac (init.d)?
ja mam postfixa, więc sendmail nie chodzi jak daemon
Jak masz go wylaczonego, to wylacz rowniez funkcje mail i kozystaj z smtp lub soketow w php, mozesz rowiniez wykozystac skrypty z pear'a do wysylania maili i masz po problemie, kolo loguje sie z danymi takimi jakie sa w bazie dla postfixa i tyle, dodajesz kolumne 'allow' i przed wyslaniem sprawdzasz czy jest 1 czy 0 i czesc piesni.
a temat uwazam za zamkniety. :P
Offline
jezoo napisał(-a):
kubak napisał(-a):
jezoo napisał(-a):
killall sendmail? i z runlevel usunac (init.d)?
ja mam postfixa, więc sendmail nie chodzi jak daemon
Jak masz go wylaczonego, to wylacz rowniez funkcje mail i kozystaj z smtp lub soketow w php, mozesz rowiniez wykozystac skrypty z pear'a do wysylania maili i masz po problemie, kolo loguje sie z danymi takimi jakie sa w bazie dla postfixa i tyle, dodajesz kolumne 'allow' i przed wyslaniem sprawdzasz czy jest 1 czy 0 i czesc piesni.
a temat uwazam za zamkniety. :P
Tak robię.
Ale jest jeszcze komenda "exec". Tej bałbym się blokować.
Offline
mozesz spokojnie zablokowac :) z reszta jezeli zastosujesz ta funkcje to masz polowe problemu z glowy, po drugie exec() mozesz rowniez zablokowac poniewaz
php.info napisał(-a):
When allowing user-supplied data to be passed to this function, use escapeshellarg() or escapeshellcmd() to ensure that users cannot trick the system into executing arbitrary commands.
Ostatnio edytowany przez jezoo (2011-07-02 11:25:33)
Offline
@Jezoo
kubak napisał(-a):
Mistrzu, swoje pytanie kieruję do tych, którzy ZNAJĄ SIĘ na konfiguracji postfixa.
przecież z powyższego cytytu jasno wynika, że to, że autor wątku nie wie co to w serwerze pocztowym znaczy relay*, i nie wie, jak skonfigurować php (w php.ini nie musi być sendmalil, można dać dowolny skrypt)
grep -i sendmail php.ini ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = ; to the sendmail binary. These parameters will always replace the value of
To za to wszystko jest Postfix winien, i te straszne Hamy na dugu, które nie chcą powiedzieć, jak Postfix ma się domyśleć, o co Jaśnie Panu chodzi.
Tylko że Postfix ma prawdopodobnie ustawione przyjmowanie wszystkich maili z danego adresu IP, a już na pewno nie obsłuży autoryzacji przy wysyłaniu maila z localhosta poleceniem sendmail.
A to, że ktoś nie potrafi pomyśleć, i skonfigurować odpowiednio php,
i wymyśleć rozwiazania z zastąpieniem sendmaila innym rozwiązaniem obsługującym kontrolę dostępu czy np autoryzację, to jest wina Postfixa i nasza :P
To by bylo na tyle
;-)
Offline
@Jacekalex masz racje
dodam tylko, ze przypomnialem sobie tez swoja akcje z postfixem, rowniez mialem podobny problem, ze byle kto mogl wysylac maile z serwera, ale wystarczylo G zapytac i wszystko stalo sie jasne :)
Offline
Jacekalex napisał(-a):
@Jezoo
kubak napisał(-a):
Mistrzu, swoje pytanie kieruję do tych, którzy ZNAJĄ SIĘ na konfiguracji postfixa.
przecież z powyższego cytytu jasno wynika, że to, że autor wątku nie wie co to w serwerze pocztowym znaczy relay*, i nie wie, jak skonfigurować php (w php.ini nie musi być sendmalil, można dać dowolny skrypt)
Gratuluję dedukcji i umiejętności czytania ze zrozumieniem!
"Chamy" pisze się przez "ch". Chyba, że chodziło Ci o szynkę.
Dzięki wszystkim za pomysły. PHP jest rozwiązany.
Nie potrafię jeszcze porządnie rozwiązać problemu shella (np. dla tych, którzy mają dostęp ssh) i użycia w nim polecenia "mail". Jasne, mogę je wyłączyć, ale nie chcę wyłączać dla wszystkich. Spróbuję z rbash / ibash.
Offline
Jeśli dajesz Ludziom dostęp ssh i powłokę shell, to ja radziłbym każdemu userowi zrobić chroot/jaila,
w tym wątku: http://forum.dug.net.pl/viewtopic.php?id=18643 jest conieco na ten temat, a do kernela dorzuciić grsecurity i paxa (są w jednej łacie), żebyś nie musiał co chwila tego serwera naprawiać.
A jeśli porobisz userom z dostepem shell chrooty, to sam zdecydujesz, jakie polecenia będą w nich dostępne.
Jednak kontrolę dostępu do funkcji mail w php trzeba będzie zrobić w konfiguracji php, przez jakiesmoduły, lub w skrypcie, ktory zastąpi polecenie sendmail.
To by było na tyle
;-)
Offline
Strony: 1