Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Hermes
http://forum.freesco.pl/viewtopic.php?f=24&t=15770
Strona 1 z 2

Autor:  Maciek [ wtorek, 7 sierpnia 2007, 18:48 ]
Tytuł:  Hermes

W greckiej mitologii Hermes był posłańcem Zeusa, przekazującym informacje i polecenia ojca bogów i ludzi.
Serwerowy hermes to posłaniec między zdalnymi serwerami smtp a naszym, który ma zadanie przekazywać informacje, ale nie w taki prosty sposób - część z nich ma do nas nie dotrzeć (spam). Jest to specyficzny smtp proxy.
Zalety:
- greylisting (tworzy listę i odmawia połączenia z błędem 421, dostarcza pocztę niezwłocznie po następnym kontakcie, zatrzymuje większość spamerów);
- throttle (opóźnienia, które nie przeszkadzają normalnym serwerom, ale wprowadzają w błąd spamboty);
- korzystanie z serwerów black- i whitelist (z balansowaniem restrykcyjności);
- automatyczne czyszczenie bazy programu;
- łatwa konfiguracja;
- brak apetytu na zasoby serwera;
- łatwa współpraca z każdym serwerem smtp;
Wady:
- greylisting jest bez wyjątków (denerwujące dla klientów), ale da się to obejść.
Instrukcja:
1. instalujemy pakiet http://nnd-linux-router.one.pl/pkg/herm ... pkg.tar.gz
2. Konfigurujemy plik /etc/hermes/hermes.conf - wpisujemy server_host = "twoja.domena.pl lub localhost" i hostname = "twoja.domena.pl".
Resztę ustawień możemy zostawić domyślnie.
3. Dopisujemy do /etc/rc.d/exim uruchamianie serwera na porcie 2525 (odpowiedni wpis ma wyglądać tak: /usr/sbin/exim -bd -q15m -oX 2525).
4. W standardowym pliku firewalla szukamy linii z: $i -A INPUT -p tcp -i $EXTIF --dport 25 -j ACCEPT i dodajemy pod spodem identyczną, ale z portem 2525 (Potrzebne to jest wtedy, jeśli chcemy aby z zewnątrz ktoś łączący się np. outlookiem nie musiał wpadać w greylisting, dajemy mu możliwość połaczenia z obejściem hermesa) i restartujemy firewall
5. Restartujemy exima i startujemy hermesa.
6. Klienci naszego serwera, którzy łączą się na porcie 465 nic nie muszą zmieniać w ustawieniach swoich programów, ci którzy używają standardowego portu 25 będą musieli w swoich programach zmienić na 2525 - to pozwoli uniknąć denerwującego greylistingu autoryzowanym klientom. W przeciwnym wypadku może się zdarzyć, że co jakiś czas będą musieli wysłać mail drugi raz po paru minutach - jeśli hermes wrzuci ich do greylisty.

I to wszystko... mam nadzieję, że się komuś przyda. Nie miałem możliwości potestować tego na serwerze dostającym spam. Ale powinno się sprawdzić.

Autor:  Maciek [ niedziela, 12 sierpnia 2007, 22:07 ]
Tytuł: 

Od jutra pakiet będzie dostępny w repozytorium testing. Na stronie nnd.freesco.pl jest też dokładny opis instalacji i konfiguracji oraz wyjaśnienie zasad działania.

Autor:  Cesik [ piątek, 17 sierpnia 2007, 14:44 ]
Tytuł: 

Pocztę mam tylko na 465 porcie.
Czy uruchomienie exima na 2525 porcie mam dopisać, czy tylko zamienić?

Serwer hermesa urachamiany jest na 2525 porcie - hermes.conf.
Czy w firewallu dopisać akceptację na 2525 porcie jeżeli jest jak wyżej?

Autor:  Maciek [ piątek, 17 sierpnia 2007, 21:37 ]
Tytuł: 

Nie możesz mieć poczty "tylko" na 465 porcie - serwery między sobą porozumiewają się na 25. Jeśli masz pocztę dla userów na 465 porcie to nie muszą nic zmieniać, port 2525 zgodnie z opisem na stronie NND należałoby otworzyć na wypadek, gdyby chciał ktoś skorzystać z konta będąc poza siecią i nie korzystać jednocześnie z SSL. Jeśli ktoś będzie próbował używać smtp na porcie 25 to dostanie komunikat: "Greylisted..."
W eximie port 25 bowiem zamieniamy na 2525, bo na 25 będzie odtąd pracował hermes.

Autor:  Albercik [ środa, 12 grudnia 2007, 01:59 ]
Tytuł: 

Od kilku dni testuję Hermesa na swoim serwerze i nie bardzo widzę różnicę pomiędzy ilością spamu przed instalacją i po. Nadal podobnie, w podobnych ilościach, podobne adresy. Postanowiłem to sprawdzić czy w ogóle zastartował i pierwsze co zrobiłem to sprawdziłem procesy - brak. Więc z konsoli wpisałem "hermes" i moim oczom ukazał się taki log :
Cytuj:
Configfile.cpp:214: Certificate file /etc/hermes/hermes.cert doesn't exist.
To generate a certificate look in hermesrc.example, there is an example there.


Niestety nic nie znalazłem na temat Hermesa i jego certyfikatów poza ich generacją, ale przecież on bierze wszystko z ustawień Exim'a. Ktoś coś wie na ten temat?
Podczas startu jest komunikat [Wykonane] ale w procesach go nie ma, czasami pojawi się też taki komunikat przy starcie:
Cytuj:
ServerSocket.cpp:50: Error: binding to address any:25

Autor:  Maciek [ środa, 12 grudnia 2007, 02:54 ]
Tytuł: 

Ścieżkę wpisujesz do certyfikatów exima. Poza tym sam exim działa na porcie 25 i jeśli odpalamy kermesa, to musimy exima przestawić na port 2525, chwilowo leży strona nnd, ale jutro od rana powinna już być czynna i tam dość dokładnie opisywałem wszystko...

Autor:  Albercik [ środa, 12 grudnia 2007, 10:54 ]
Tytuł: 

Oczywiście wszystko według instrukcji - hermes na 25 porcie, exim na 2525 - dla tych, którzy mają ominąć Hermesa. Burzył się o certyfikat i klucz, więc przekopiowałem z odpowiednimi nazwami do /etc/hrmes z /etc/mail i już przestał się burzyć, w pliku hermes.conf jak byk są linijki do certyfikatu i klucza exima /etc/mail. Nie pokazuje żadnych błędów, ale się też nie uruchamia.
Przedtem wpisanie z konsoli "hermes" powodowało wyrzucanie błędów, teraz nie ma żadnych komunikatów, jakby wszystko było OK, ale niestety nie jest.

Autor:  Albercik [ środa, 12 grudnia 2007, 23:51 ]
Tytuł: 

Czy ktoś używa Hermesa? Komuś działa on bezproblemowo?

Autor:  Maciek [ czwartek, 13 grudnia 2007, 00:29 ]
Tytuł: 

Tak, działa bezproblemowo.
Po pierwsze, linie w konfigu mają prowadzić do certyfikatu i klucza exima.
private_key_file = "/etc/mail/exim.key"
certificate_file = "/etc/mail/exim.crt"
Po drugie hermes może mięc problem z resolwowaniem nazwy. Ja mam
server_host = "moja.domena.pl"
Jeśli jednak z powodu konfiguracji to nie działa, to należy zastąpić to numerem IP zewnętrznym. W innym wątku dotyczącym hermesa było to wyjaśnione, na sto procent zadziała wpisanie localhost, ale wtedy się robi open relay.
W razie potrzeby sugeruję wejść na irc (#nnd lub #freesco) i zapytać czerwa, on to ostatnio robił. W najgorszym wypadku spytać chłopaków o namiary do mnie, ale jutro będę online dopiero wieczorem.

Autor:  Albercik [ czwartek, 13 grudnia 2007, 01:08 ]
Tytuł: 

Maciek pisze:
Tak, działa bezproblemowo.
Po pierwsze, linie w konfigu mają prowadzić do certyfikatu i klucza exima.
private_key_file = "/etc/mail/exim.key"
certificate_file = "/etc/mail/exim.crt"
Po drugie hermes może mięc problem z resolwowaniem nazwy. Ja mam
server_host = "moja.domena.pl"
Jeśli jednak z powodu konfiguracji to nie działa, to należy zastąpić to numerem IP zewnętrznym. W innym wątku dotyczącym hermesa było to wyjaśnione, na sto procent zadziała wpisanie localhost, ale wtedy się robi open relay.
W razie potrzeby sugeruję wejść na irc (#nnd lub #freesco) i zapytać czerwa, on to ostatnio robił. W najgorszym wypadku spytać chłopaków o namiary do mnie, ale jutro będę online dopiero wieczorem.


Maglowałem już konfigurację kilkanaście razy, łącznie z zamieszczonym na forum wyjaśnieniem o "server_host" , ale jak nie konfiguruję go tak się nie uruchamia. Po wpisaniu "localhost" znów pojawił się błąd
Cytuj:
ServerSocket.cpp:50: Error: binding to address any:25

Autor:  viater [ czwartek, 13 grudnia 2007, 01:16 ]
Tytuł: 

U mnie też działa bezproblemowo, stawiałem go też na virtualce z przekierowanym zewn. IP i też chodził.

Jeśli hermesa i exima masz na tej samej maszynie, to najbezpieczniej wpisać

server_host=adres_IP_na_którym_słucha_exim

Sprawdź też, czy masz

server_port=2525

- port, na którym słucha exim.

Możesz też spróbować usunąć plik

/var/lib/hermes/greylisting.db

- upewniwszy się uprzednio, że hermes na pewno nie jest uruchomiony (ps -axu | grep hermes) - i odpalić hermesa, tylko "normalnie", czyli

/etc/rc.d/hermes start


Maćku: moim zdaniem powinniśmy sugerować wpisywanie pod server_host właśnie adresu IP, według mnie to jest najpewniejsze rozwiązanie.
BTW - dlaczego przy wpisaniu localhost robi się open relay ?

Autor:  Albercik [ czwartek, 13 grudnia 2007, 01:42 ]
Tytuł: 

viater pisze:
U mnie też działa bezproblemowo, stawiałem go też na virtualce z przekierowanym zewn. IP i też chodził.

Jeśli hermesa i exima masz na tej samej maszynie, to najbezpieczniej wpisać

server_host=adres_IP_na_którym_słucha_exim

Sprawdź też, czy masz

server_port=2525

- port, na którym słucha exim.

Możesz też spróbować usunąć plik

/var/lib/hermes/greylisting.db

- upewniwszy się uprzednio, że hermes na pewno nie jest uruchomiony (ps -axu | grep hermes) - i odpalić hermesa, tylko "normalnie", czyli

/etc/rc.d/hermes start


Maćku: moim zdaniem powinniśmy sugerować wpisywanie pod server_host właśnie adresu IP, według mnie to jest najpewniejsze rozwiązanie.
BTW - dlaczego przy wpisaniu localhost robi się open relay ?


To wszystko jest prawidłowo, nawiasem mówiąc "ps axu" , bez "-". I zupełna klęska.
Bez jajów, ale skoro "/etc/rc.d/hesrems start" jest "normalnie" to jak jest nienormalnie? Odpalałem go na wszystkie znane mi sposoby:
: [/] [] ()
 /usr/bin/hermes /etc/hermes/hermes.conf

i nie pokazuje żadnych błędów, ale też nie uruchamia się.
Co prawda tworzy się hermes.pid , ale procesu o zawartym w tym pliku numerze nie ma. Nie istnieje.

Autor:  viater [ czwartek, 13 grudnia 2007, 14:27 ]
Tytuł: 

To ja już nie wiem, spróbuj skontaktować się z Maćkiem.

Rozumiem, że system masz zaktualizowany do extra-current ?

P.S. [OT]
Maćku - widzę, że hermes jest już w current, a ja nie miałem kiedy się zabrać za ten konfigurator do hermes-panel, sorry, może w weekend znajdę chwilę.

Autor:  Albercik [ czwartek, 13 grudnia 2007, 17:20 ]
Tytuł: 

viater pisze:
Rozumiem, że system masz zaktualizowany do extra-current ?


A ma to znaczenie? Jeśli tak to jakie?

Autor:  viater [ czwartek, 13 grudnia 2007, 20:11 ]
Tytuł: 

Nie wiem, ale Hermes ma w zależnościach openssl, więc jeśli masz na serwerze openssl z testing, to może być problem...
Gdzieś ktoś kiedyś napisał, że jak nie wiadomo o co chodzi, to chodzi o SSL ;)

Autor:  Albercik [ czwartek, 13 grudnia 2007, 22:44 ]
Tytuł: 

viater pisze:
Nie wiem, ale Hermes ma w zależnościach openssl, więc jeśli masz na serwerze openssl z testing, to może być problem...
Gdzieś ktoś kiedyś napisał, że jak nie wiadomo o co chodzi, to chodzi o SSL ;)


:wink: dobre. Pamiętasz może z jaką wersją SSL działa prawidłowo?

Autor:  Maciek [ czwartek, 13 grudnia 2007, 23:52 ]
Tytuł: 

Jeszcze jedno, warto sprawdzić, czy na serwerze na pewno jest interfejs lo z adresem 127.0.0.1 (jeden użytkownik też maił przez to problem).

Autor:  Albercik [ piątek, 14 grudnia 2007, 00:42 ]
Tytuł: 

Maciek pisze:
Jeszcze jedno, warto sprawdzić, czy na serwerze na pewno jest interfejs lo z adresem 127.0.0.1 (jeden użytkownik też maił przez to problem).


Jest.

Autor:  viater [ piątek, 14 grudnia 2007, 00:50 ]
Tytuł: 

Albercik pisze:
Pamiętasz może z jaką wersją SSL działa prawidłowo?

Nie pamiętam numerka, ale wiem, że z tą z base-current.

Autor:  JakubC [ piątek, 14 grudnia 2007, 01:26 ]
Tytuł: 

viater pisze:
Nie pamiętam numerka, ale wiem, że z tą z base-current.

base-current/openssl 0.9.8-6nnd

Strona 1 z 2 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/