Cześć. Wyobraź sobie sytuację, w której masz swój pierwszy serwer pod hostowanie swoich projektów. W tym wypadku zastosowany jest panel HestiaCP. Ten panel oferuje ogrom możliwości pod względem konfiguracji ale Ty korzystasz głównie z WWW i poczty.
No właśnie – poczta. Dostajesz coraz więcej SPAMu przez co niestety odczuwasz, że obecna konfiguracja nie spełnia Twoich oczekiwań. Sprawdzasz więc informacje o tym co wykorzystuje HestiaCP – czyli Exim 4, Spamassasin, Dovecot. Gdzieś też obiło Ci się o uszy, że jest coś takiego jak RSPAMD ale dziwnie – Hestia nie posiada wsparcia dla tego oprogramowania. Lubisz „majsterkowanie” więc zaczynasz działać.
Tak właśnie wyglądało to u mnie przez ostatnie kilka tygodni. Otrzymywałem dość dużą ilość SPAMu przez co stwierdziłem, że muszę coś z tym zrobić. Zacząłem od czytania o różnicach między SpamAssasin i RSPAMD. Byłem zszokowany, że w sumie mimo restrykcyjnej (w moim odczuciu) konfiguracji SA – dalej otrzymywałem niechciane wiadomości. Dodatkowo – brakowało mi też wygodnego GUI do kontroli wychodzącego i przychodzącego ruchu. Korzystając z HestiaCP na codzień stwierdziłem, że muszę coś z tym zrobić i rozpocząłem integrację.
Jak to zrobiłem?
- Zainstalowałem RSPAMD korzystając z APT
apt-get install rspamd - Do RSPAMD zintegrowany jest także REDIS (możesz go później wykorzystać także do innych celów) więc po instalacji paczek – zmieniłem jego konfigurację pod lepszą obsługę ze strony RSPAMD w
/etc/redis/redis.conf:maxmemory 500mb
maxmemory-policy volatile-ttl
(ustawienie volatille-ttl usuwa klucze o najkrotszym czasie wygasania) - Zrestartowałem REDIS oraz odblokowałem start REDISa i RSPAMD w systemctl:
systemctl restart redis.servicesystemctl enable redis.service
systemctl enable rspamd.service - Teraz pora na konfigurację EXIM. Przechodzę więc do pliku
/etc/exim4/exim4.conf.template, który najpierw kopiuję.cp /etc/exim4/exim4.conf.template /etc/exim4/exim4.conf.template.dist
Dodaję zmienną odpowiadającą za RSPAMD na początku pliku, pod SPAMASSASIN, który ustawiam na „no”.
Powinno to wyglądać tak:SPAMASSASIN = no
RSPAMD = yes - Zmieniłem też aplikację, do której łączy się Exim pod względem sprawdzania SPAMu zmieniając SPAMASSASIN na RSPAMD. Zamiast:
.ifdef SPAMASSASIN
spamd_address = 127.0.0.1 783
.endif
dałem:.ifdef RSPAMD
spamd_address = 127.0.0.1 11333 variant=rspamd
.endif - Edytuję też acl_check_rcpt, podmieniamy SPAMASSASIN na RSPAMD, czyli zmieniam:
na:
- Po tym zapisuję konfigurację i restartuję Exim:
systemctl restart exim4.service - Przechodzę też do konfiguracji WebGUI wpisując w konsoli:
rspamadm configwizard
otrzymując taki „ekran powitalny”:
- Klikam „Y” na pytanie czy chcę kontynuować.
- Ustawiam hasło

- Ustawiam serwery REDIS korzystając z domyślnych ustawień (na ten moment nie utworzyłem nowej bazy danych tylko pod RSPAMD):

- Wyłączam podpisywanie DKIM (w tym momencie jeszcze nie jest to potrzebne):

- Na koniec otrzymuję podsumowanie konfiguracji:

- Zapisuję konfigurację i restartuję rspamd:
systemctl reload rspamd.service - Na koniec dodaję sobie możliwość wejścia do WebGUI. Kopiuję więc domyślny szablon nginx dla stron WWW:
cp /usr/local/hestia/data/templates/web/nginx/default.tpl /usr/local/hestia/data/templates/web/nginx/rspamd.tplcp /usr/local/hestia/data/templates/web/nginx/default.stpl /usr/local/hestia/data/templates/web/nginx/rspamd.stpl - W tym szablonie dodaję odnośnik wczytujący nam RSPAMD po /rspamd/ pod location @fallback:
location /rspamd/ {
proxy_pass http://localhost:11334/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
Te konfigurację zapisuję zarówno w redis.tpl jak i redis.stpl aby wszystko działało jak trzeba.
Tak wygląda to w przypadku mojej konfiguracji:
- Zmieniam szablon głównej domeny serwerowej na rspamd:
v-change-web-domain-proxy-tpl admin serwer.example.com redis yes
Przy czym argument „yes” na samym końcu restartuje serwer WWW.
Gotowe. Rspamd został właśnie przystosowany do obsługi poczty w HestiaCP.
BARDZO WAŻNE: Ta konfiguracja nie jest oficjalnie wspierana przez twórcę HestiaCP. Edytując pliki konfiguracyjne możesz wykluczyć swój serwer z oficjalnych aktualizacji udostępnianych przez twórcę oprogramowania.