Sun Netra T1 AC200 z NetBSD jako serwer mailowy
Czy można zmienić 20 letni serwer w coś użytecznego? I owszem. Czy jest to skuteczne, wszystko zależy od konfiguracji domen, do których będziemy wysyłać maile. Ja pomyślałem, że fajnie było by mieć serwer mailowy, chciaż patrząc na to jak często korzystam z wiadomości e-mail, to raczej jest on zbędny. Nie mniej jednak ciekawe wyzwanie, a żeby tego było mało za docelową maszynę wybrałem serwer Sun Netra T1 AC200, maszyna oparta na architekturze Sparc64, z procesorem ULTRASPARC IIe V9 o taktowaniu 500MHz z 1 GB RAMU SDRAM ECC REG dwoma dyskami SCSI 17G. Dobór systemu operacyjnego to raczej był mus, anieżeli racjonalny wybór. Jak go kupiłem za całe 150 zł to pierwsze co chciałem zbootować na nim OpenBSD, ponieważ już ten system trochę znałem (nie tak jak teraz, był 2016), jednak to się nie powiodło. Może jednak od początku. Sun Netra T1 AC200 jest serwerem, który nie posiada w ogóle żadnego układu graficznego, zatem do jego obsługi potrzebny jest PC lub Laptop ze złączem COM/RS-232, to nie nie wszystko, bo złącze (SERIAL A/LOM - bo tak się nazywa to złącze, przez które kontroluje się serwer) konsoli (można tak je chyba nazwać) to zwykłe gniazdo RJ-45. Sprawdziłem w oficjalnym podręczniku. Do każdej Netry dołączany jest adapter DB-25 - RJ-45, oczywiście można skorzystać z DB-9 - RJ-45, ale ja już nie pamiętam dlaczego jednak wybrałem DB-25 oraz adapter DB-25 - DB-9 (F-F). Adapter DB-25 - RJ-45 przychodzi w dwóch częściach i trzeba włozyć odpowiednie kabelki w odpowiednie dziurki według dokumentacji. Jak to najlepiej zrobić, otóż bierzemy kawałek UTP zarabiamy z jednej strony standard B z drugiej strony rozizolowywujemy wszystkie żyły, miernikiem w teście diody sprawdzamy, który kabelek na adapterze łączy się, z którą żyłą UTP. Pamiętając o tym że będziemy w gniazdo Serial A/LOM będziemy wtykać klasyczny patchcord ustawiamy piny na adapterze według dokumentacji. Pozłożeniu adaptera możemy się podłączyć go do komputera, ja użyłem do tego komputera z Debianem z wiadomych dla siebie względów. W systemie należy zainstalować program picocom. Samo połączenie wymaga jednego polecenia.
$ sudo picocom -b 9600 /dev/ttyS
Po zwróceniu parametrów konfiguracyjnych połączenie zostanie wyświetlony napis Terminal is ready
,
naciskamy dwa razy klawisz Enter i w zależności od tego czy serwer jest włączony - dostaniemy odpowiedź
ok
lub wyłączony - dostaniemy odpowiedź lom>
, jeśli jest
wyłączony to możemy go włączyć za pomocą polecenia:
lom>poweron
Po włączeniu serwera uzyskamy odpowiedź ok
. Kiedy serwer był już włączony możemy już bootwać jakiś
system, oczywiście z płyty bo innej opcji poza siecią nie ma. Odnośnie systemów operacyjnych na ten serwer to sprawa wygląda tak że:
- GNU/Linux Debian (port dla Sparc64) - Bootuje z płyty i jest się w stanie zainstalować, jednak nie mogłem znaleźć żadnych mirrorów, aby móc cokolwiek zainstalować. Generalnie to jest mirror, ale wymaga wyższej konfiguracji, niestety nie miałem chęci na zabawę tym.
- FreeBSD 12.2 Sparc64 - Próbował się bootować jednak wyświetlił kilka ciągów dziwnych znaków i każde naciśnięcie klawisza powodowalo wyświetlenie podobnych ciągów znaków.
- OpenBSD 6.8 Sparc64 - Po wydaniu polecenia bootwania z CD, serwer wyświetlił informacje
Fast Data Access MMU Miss
. Następnie zwrócł promptok
I to tyle w temacie OpenBSD na tym serwerze. - NetBSD 9.1 Sparc64 - Bootuje się z płyty, instaluje się poprawnie (jeśli wybierzemy opcję instalacji
Instalacja bez X11
. Jedyne co nie działa (przestało działać dzień po zainstalowaniu systemu) manager instalacji pakietów binarnych, nie może pobrać paczki z bazą, podczas jej rozpakowywania zwraca komunikat, który można zinterpretować jako plik jest uszkodzony. Można to ominąć. Instalując paczki z repozytorium za pomocą narzędzia pkg_add, niestety musimy jako argument podać pełną ścieżkę do paczki w repo. Jeszcze jedna rzecz, kiedy ja instalowałem to strasznie wolno pobierał te paczki, okazało się na początku próbował połączyć się z CDN-em, za pomocą IPv6, które coś nie działało. Remedium na to było dodanie lokalnego resolwu cdn.netbsd.org, do pliku /etc/hosts na pierwszy napotkany adres IPv4.
Bootowanie z płyty załączamy poleceniem:
ok boot cdrom
Podczas instalacji z konsoli, jednym z pierwszych pytań zadanych przez instalator będzie wybranie rodzaju terminala z którego korzystamy, nalepiej wybrać xterm.
Pod tym odnośnikiem znajduje się instrukcja jak zainstalować NetBSD: https://morketsmerke.net/site/articles/bsd/instalacja_NetBSD.html
Jeśli system został już zainstalowany według instrukcji to po załadowaniu systemu ustawimy datę i czas, bateria mogłą się już w
dawno rozładować. Pewnego razu po wywołaniu polecenia date
zobaczyłem rok
2019 a raz 2003 (mamy 2021). Aby ustawić date i czas dokonamy synchronizacji czasu z serwera NTP za pomocą polecenia:
# ntpdate -b ntp1.inrim.it
Informacją zwrotną będzie to o ile sekund został przesunięty z zegar. Liczba może być naprawdę duża. Po synchronizacji
dopiszmy do pliku /etc/rc.conf w linii ntpdate=YES
adres hosta dla ntpdate
ntpdate_hosts="ntp2.inrim.it"
Do budowy serwera będziemy potrzebować kilku programów. Jednak jak je zainstalować z przy uszkodzonym źródle? Otóż sposób jest prosty. Pierwsze co to wywołujemy polecenie:
$ host cdn.netbsd.org
Za pomocą pierwszego adresu IPv4 tworzymy wpis do pliku /etc/hosts/.
151.101.1.6 cdn.netbsd.org
Następnie na komputerze, z którego łączymy się z serwerem czy to po konsoli szeregowej czy przez SSH, za pomocą przeglądarki
przechodzimy pod ten adres:
http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/sparc64/9.1/All
Kilkając PPM na nazwę pakietu wybieramy opcję "Kopiuj adres odnośnika" i wklejamy do terminala jako argument polecenia
pkg_add
podbnego programu jak na OpenBSD. W przypadku konsoli szeregowej może nie być to takie
łatwe, dlatego zalecam jednak połączenie przez SSH. Do pobrania mamy: mc, vim, dovecot, openssl,
ca-certificates.
Po pobraniu tych programów możemy ustawić parametr mydestination
na nazwę swojej domeny za pomocą
polecenia postconf
.
# postconf -e "mydestination=morketsmerke.net"
Następnie za pomocą mc, przejdziemy do katalogu /etc/postfix następnie w pliku master.cf, usuwamy znak komentarza sprzed pierwszego wiersza w pierwszej tabeli.
smtp inet n - n - - smtpd
Teraz możemy połączyć się z serwerem SMTP za pomocą telnet i wyślemy mail do roota, żeby sprawdzić czy wspomniany wcześniej parametr działa.
$ telnet localhost 25
Po podłączeniu się musimy wysłać maila za pomocą poleceń protokołu SMTP. Obecnie serwer nie posiada żadnych mechanizów bezpieczeństwa więc możemy od razu przejść do wysyłania maili. Pierwsze polecenie:
mail from:<xf0r3m@morketsmerke.net>
W ten sposób przekazujemy serwerowi informacje że będziemy wysłać maila i w polu nadawcy będzie adres: xf0r3m@morketsmerke.net.
Po zatwierdzeniu tego polecenia powinniśmy odpowiedź: 250 2.1.0 Ok
.
Uwaga! Ostre nawiasy są cześcią składni poleceń mail from
oraz
rcpt to
.
rcpt to:<root@morketsmerke.net>
Powyższe polecenie wskazuje adresata wiadomości. Po jego podaniu serwer zwróci
250 2.1.5 Ok
. Aby Rozpocząć redagowanie wiadomości wydajemy polecnie
data
Serwer zwróci wtedy taki ciąg znaków jak 354 End data with <CR><LF>.<CR><LF>
Oznacza to że aby zakończyć redagowanie wiadomości, należy przesłać do serwera linię z jedną kropką. Naciśnąć enter,
kropka (.) i ponownie enter. Pola From, To oraz Subject (Temat) możemy definiować wewnątrz danych wiadomości.
354 End data with <CR><LF>.<CR><LF< From: xf0r3m@morketsmerke.net To: root@morketsmerke.net Subject: Test serwera SMTP. Test serwera SMTP wewnątrz organizacji. Proszę o odpowiedź. .
Po wysłaniu maila sprawdźmy na koncie użytkownika root czy dostaliśmy wiadomość. Jeśli otrzymaliśmy wiadomość to teraz przejdziemy do zabezpieczenie serwera SMTP przed nieautoryzowanym dostępem.
Opis konfiguracji SASL znajduje się pod adresem: https://doc.dovecot.org/configuration_manual/howto/postfix_and_dovecot_sasl
Postfixa na tym systemie nie instalowaliśmy, już był. Więc musimy sie upewnić czy został skompilowany wraz ze wspraciem dla Dovecot SASL.
# postconf -a
Jeśli polecenie zwróci dovecot
, to możemy przejść do konfiguracji SASL. W tym
przypadku, w pliku /usr/pkg/etc/dovecot/conf.d/10-master.conf musimy odnaleźć w sekcji
auth
, deklaracje socketu.
service auth { ... unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } ... } auth_mechanisms = plain login
Następnie ustawić w niej użytkownika (user
), grupę (group
) oraz
prawa dostępu (mode
), wartości do ustawienia zaprezentowano na powyższym przykładzie.
Po ustawieniu tych informacji możemy przejść konfiguracji Postfixa. W pliku
/etc/postfix/main.cf
na samym dole dopisujemy poniższe opcje.
smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Gdzie:
smtpd_sasl_type
- typ implementacji SASL,smtpd_sasl_path
- ścieżka do socketu, względną ponieważ Postfix może mieć zapisany swój katalog roboczy, lub być chroot-owany,smtpd_sasl_auth_enable
- włączenie uwierzytelniania,smtpd_relay_restrictions
- ustawienie restrykcji dla przekazywania maili. Z racji tego iż SMTP na porcie 25 będzie osiągalny z Internetu, aby otrzymywać maile z zewnątrz, to ograniczenia ustawiono w taki sposób aby tylko uwierzytelnieni użytkownicy mogli wysyłać maile poza domenę.
Teraz skonfigurujemy dostęp do SMTP dla klientów przez SSL. Najlepiej rozpocząć to od przepisania konfiguracji z wcześniej wymienionej strony dla usługi submission. Konfigurację umieszczamy w pliku /etc/postfix/master.cf. Możemy zmodyfikować istniejący już tam wpis.
submission inet n - n - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=morketsmerke.net -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_login_maps=hash:/etc/postfix/virtual -o smtpd_sender_restrictions=reject_sender_login_mismatch -o smtpd_recipient_restrictions=reject_non_fqdn_repcipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Po zapisaniu konfiugracji, możemy teraz zmodyfikować konfigurację aby dostosować ją do smtps.
smtps inet n - n - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=morketsmerke.net -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_login_maps=hash:/etc/postfix/virtual -o smtpd_sender_restrictions=reject_sender_login_mismatch -o smtpd_recipient_restrictions=reject_non_fqdn_repcipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Gdzie:
smtpd_tls_security_level
- poziom bezpieczeństwa TLS,smtpd_tls_wrappermode
- umożliwienie użycia starszego SMTPS zamiast STARTTLS,smtpd_sasl_type
- typ implementacji SASL,smtpd_sasl_path
- ścieżka do socketu, dzięki któremu Postfix łączy się z usługą SASL Dovecot,smtpd_sasl_security_options
- opcje bezpieczeństwa SASL przy ustawieniunoanonymous
wyłącza się logowanie anonimowe na SMTP,smtpd_sasl_local_domain
- nazwa sfery uwierzytelniania SASL,smtpd_client_restrictions
- ograniczenia dla klientów,smtpd_sender_login_maps
- wskazanie mapowań loginów do adresów mailowych,smtpd_sender_restrictions
- ograniczenia wśród nadawców,smtpd_recipient_restrictions
- ograniczenia wśród odbiorców.
- Ograniczenia wśród klientów: zezwól uwierzytelnionym klientom, resztę odrzuć.
- Ograniczenia wśród nadawców: odrzuć niezgodność loginu z adresem nadawcy według mapowania. Do tego potrzebne mapowanie
z opcji
smtpd_sender_login_maps
. - Ograniczenia wśród odbiorców: odrzuć odbiorców bez nazw FQDN, odrzuć odbiorców z nieznanych domen,zezwól uwierzytelnionym przez SASL, resztę odrzuć.
Teraz musimy umieść pliki certyfikatu w /etc/openssl i wskazać je w pliku konfiguracyjnym Postfixa (/etc/postfix/main.cf).
smtpd_tls_cert_file=/etc/openssl/fullchain1.pem smtpd_tls_cert_key=/etc/openssl/privkey1.pem
Do zrobienie pozostało utworzenie bazy danych, w której będą znajdować się odniesienia użytkowników systemowych do adresów poczty.
Na początku musimy utworzyć plik /etc/postfix/virtual
. Każda linia w pliku to jedno mapowanie.
root@morketsmerke.net root xf0r3m@morketsmerke.net xf0r3m
Plik zapisujemy, następnie tworzymy plik bazy:
# postmap /etc/postfix/virtual
Restartujemy Postfixa.
# postfix reload
Możemy przestować konfigurację. Jednak żeby to zrobić musimy włączyć Dovecot. Z tego co mi wiadomo nie uruchomi się, ponieważ posiada jakieś predefiniowane ścieżki do certyfikatów SSL w pliku /usr/pkg/etc/dovecot/conf.d/10-ssl.conf należy je wyłączyć stawiając na początku linii znak komentarza. Zapisujemy zmiany, teraz dovecot powinnien się uruchomić. Podłączamy się za pomocą poniższe polecenie:
$ openssl s_client -connect mail.example.com:465
Po podłączeniu musimy określić jakiego zestawu poleceń będziemy używać, do tego służy polecenie EHLO
.
Jako argument polecenie przyjmuje nazwę hosta, aby użyć jej nie tylko w logach ale również w nagłówku wiadomości, którą będziemy
wysyłać.
EHLO shiny.morketsmerke.net
Następną rzeczą jest uwierzytelnie się. Do wyboru mamy albo metodę PLAIN, albo metodę LOGIN.
- PLAIN - Polega na podaniu zakodowanego za pomocą Base64 ciągu składającego się z nazwy użytkownika,
hasła oraz dwóch znaków pomocniczych. Taki ciąg możemy wygenerować z pomocą Perla.
$ perl -MMIME::Base64 -e 'print encode_base64("\0nazwa_uzytkownika\0haslo");'
- LOGIN - Polega na podobnej zasadzie co PLAIN, jednak zakodowane dane podaje się po kolei.
Najpierw nazwę użytkownika, poźniej hasło. Komunikaty serwera róznież będą zakodowane.
334 VXNlcm5hbWU6 => 334 Username: $ perl -MMIME::Base64 -e 'print encode_base64("uzytkownik");' dXp5dGtvd25paw== 334 UGFzc3dvcmQ6 => 334 Password: $ perl -MMIME::Base64 -e 'print encode_base64("haslo");' aGFzbG8=
235 2.7.0 Authentication successful
Teraz możemy wysłać maila do siebie lub do roota. Jeśli otrzymamy wiadomość, oznacza to że SMTPS działa poprawnie. Teraz przejdziemy do Dovecot-a. Pierwszą rzeczą, którą się zajmiemy będzie uruchamianie Dovecot wraz ze startem. Możemy to zrobić na dwa sposoby, jednym z nich jest skopiowanie z /usr/pkg/share/examples/rc.d/dovecot pliku dovecot do /etc/rc.d następnie dodanie wpisu w plik /etc/rc.conf:
dovecot=YES
Drugim sposobem jest dodanie Dovecot do listy daemonów lokalnych, nie potrzeba do tego dużej filozofii a jedynie informacji
zwracanej przez polecenie which
$ which dovecot /usr/pkg/sbin/dovecot
Po uzyskaniu odpowiedzi, mogę stworzyć warunek w plik /etc/rc.local:
if [ -x /usr/pkg/sbin/dovecot ]; then echo -n ' dovecot '; /usr/pkg/sbin/dovecot fi
Kiedy serwer zostanie uruchomiony ponownie, Dovecot sam wystartuje. Plik konfiguracjne nie znajdują się jakby się mogło wydawać w katalog /etc, tylko w /usr/pkg/etc/dovecot/conf.d. Zaczniemy od znanego nam już pliku, 10-ssl.conf. Usuwamy znak komentarza przez linii uruchamiającej SSL
ssl = yes
Potem ustawiamy pliki certyfikatu, jak na przykładzie poniżej:
ssl_cert=</etc/openssl/fullchain1.pem ssl_key=</etc/openssl/privkey1.pem
Uwaga! Nawiasy ostre są częścią składni wartości opcji.
Po zapisaniu zmian w pliku, możemy korzystać z zabezpieczonych wersji protokołów IMAP oraz POP3, które wykorzystują SSL. Włączenie
IMAPS oraz POP3S wymaga odkomentowania opcji port
oraz ssl
,
wewnątrz deklaracji inet_listener imaps
oraz inet_listener pop3s
.
... inet_listener imaps { port = 993 ssl = yes } ... inet_listener pop3s { port = 995 ssl = yes }
Podobną rzecz zrobimy z submission dostarczanym wraz Dovecot, tylko zamiast włączać, wyłączymy nadając mu port 0.
service submission-login { inet_listner submission { port = 0 } }
Ostatnią rzeczą jaką należy zrobić jest ustawienie lokalizacji skrzynek mailowych. W pliku
/usr/pkg/etc/dovecot/conf.d/10-mail.conf usuwamy znak komentarza z przed opcji mail_location
oraz nadajemy jej następującą wartość.
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Zapisujemy zmiany i możemy restartować Dovecot.
# dovecot reload
Jeśli program nie zwrócił błędów, sprawdżmy jeszcze plik /var/log/maillog czy wszystko działa. Ten plik to plik logów usług pocztowych, tam będzie widać kto się podłączył oraz informacje o przechodzących mailach. Teraz przetestujemy sobie IMAPS tak samo jak SMTPS, niestety polecenia dla tych protokołów są różne. Zaczynamy klasycznie od wykorzystania openssl żeby się podłączyć przy użyciu TLS.
openssl s_client -connect mail.example.com:993
Pierwsze co musimy się zrobić to się uwierzytelnić. W IMAPS implementacji Dovecot uwierzytelniamy się za pomocą polecenia
a login nazwa_uzytkownika haslo
IMAPS nie wymga żadnych zakodowanych ciągów jak ma to miejsce SMTPS. W odpowiedzi dostaniemy:
a OK [ ... ] Logged in
Teraz możemy sprawdzić ustawienia skrzynki
b select inbox
W odpowiedzi powinniśmy dostać coś takiego:
b select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft Old) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft Old \*)] Flags permitted. * 9 EXISTS * 0 RECENT * OK [UNSEEN 6] First unseen. * OK [UIDVALIDITY 1262394945] UIDs valid * OK [UIDNEXT 11] Predicted next UID b OK [READ-WRITE] Select completed (0.008 + 0.000 + 0.008 secs)
Pod adresem https://wiki2.dovecot.org/TestInstallation znajduje się obszerny artykuł na temat jak sprawdzić czy konfiguracja Dovecot rzeczywiście działa. Kiedy jesteśmy zalogowani możemy teraz pobrać wiadomości za pomocą poniższych poleceń.
b select inbox b fetch 1:* (flags internaldate body.peek[header.fields (subject)]) b fetch 1 body[text]
Znaki "b", to tagi poleceń IMAP, każde polecenie musi zaczynać się od tagu, a tagiem może być dowolny ciąg znaków.
Piersze polecenie można powiedzieć że sprawdza skrzynkę, wyświetla podsumowanie liczbowe ile jest wiadomości w skrzynce. Drugie wyświeli nam listę wiadomości z flagami, datą oraz tematem, a ostatnie wyświetli zawartość pierwszej wiadomości. Jeśli wszystkie trzy polecenia powiodły się oznacza to że usługi mailowe, które konfigurowaliśmy działają poprawnie.
Cięzko jest korzystać z poczty łącząc się bezpośredrednio z usługami, przy takich serwerach gdzie niema portalu WWW można zastosować klienty czy programy pocztowe jak np. Mozilla Thunderbird.
Poniżej przedstawie jak skonfigurować Thunderbirda oraz MUTTa, można było w swobodny sposób korzystać z konfigurowanych przez nas usług pocztowych.
Thunderbird:
Jeśli do tej pory działaliśym w sieci lokalnej i z usługami łączyliśmy za pomocą adresu IP, to z racji użycia certyfikatów, a Thunderbird kontroluje pole CN (Common Name), to jeśli adres serwera nie będzie zgadzał się z tym co jest w tym polu, to program zrzuci ostrzeżenie, odnośnie niezgodności z certyfikatem. Warto zainwestować chwilę czasu na budowę np. Pi-Hole. Prócz ogólnosieciowej blokady reklam zyskujemy jeszcze lokalnego DNS, a zasadzie dnsmasq oraz pliku /etc/hosts.
Konfigurację Thunderbirda rozpoczynamy od utworzenia nowego konta. W pole imię i nazwisko możemy wpisać swoje dane lub nazwę użytkownika, w adresie e-mail podajemy adres e-mail naszego konta. Hasło również możemy zapisać, chyba że nie chcemy. Po zatwierdzeniu tych informacji, przechodzimy do ustawień ręcznych. Dane konfiguracyjne dla serwera SMTP:
- Nazwa serwera: mail.example.com
- Port: 465
- Bezpieczeństwo połączenia: SSL/TLS
- Metoda uwierzytelniania: Normalne hasło
- Użytkownik: user
Dane konfiguracjne dla serwera IMAP:
- Nazwa serwera: mail.example.com
- Port: 993
- Użytkownik: user
- Bezpieczeństwo połączenia: SSL/TLS
- Metoda uwierzytelnienia: Normalne hasło
MUTT
Nie wiem czy MUTT zrzuci komunikat o niezgodności adresu serwera z polem CN. Jednak jeśli będziemy mieli w planach wykorzystanie SSL, nie tylko w usługach pocztowych to warto się zaopatrzyć w lokalny DNS, aby uniknąć tych niepotrzebnych komunikatów. Kolejną rzeczą jest obsługa SASL przez MUTT, obsługa musi być dodana podczas kompilacji, w przypadku OpenBSD istnieje odrębna wersja programu wraz z wsparciem dla SASL. Poniżej przedstawię plik konfiguracyjny umożliwiający użycie tego programu jako klienta poczty dla konfigurowanych przez nas usług.
set ssl_starttls=yes set ssl_force_tls=yes set imap_user='user' set imap_pass='passw0rd' set from='user@example.com' set realname='John Doe' set folder=imaps://mail.example.com/ set spoolfile=imaps://mail.example.com/INBOX set header_cache="~/.mutt/cache/headers" set message_cachedir="~/.mutt/cache/bodies" set certificate_file="~/.mutt/certificates" set smtp_url="smtps://user@mail.example.com" set smtp_pass="passw0rd" set move = no set imap_keepalive = 300 bind index G imap-fetch-mail
Opis co jest od czego, znajduje się w
https://morketsmerke.net/site/articles/faq/index.html
Jedyną opcją, która tam nie występuje jest ostatnia linia. Powoduje przypisanie G (duże G = shift + g) do polecenia
imap-fetch-mail
, czyli odświeżania skrzynki pod klawiszem G (shift + g)
Ostatnia rzecz, która pozostała to udostępnienie usług pocztowych w Internecie, potrzebny będzie usługodawca, który nie blokuje portu SMTP TCP/25. Domena dzięki której będziemy mogi zdefiniować rekord MX. Rekord MX definiujemy w ten sposób że na początku tworzymy klasyczny rekord A, który wskazuje na adres serwera, następnie tworzę rekord MX o nazwie domeny wskazujący na nazwę rekordu A serwera. Ja swój serwer umieściłem w strefie DMZ z BINAT, oczywiście wymaga to port forwardingu, jednak BINAT nie zmienia portów. Warto pamiętać o tym by port TCP/25 był otwarty. Nie służy on klientom a przesyłaniu maili do innych domen oraz otrzymwaniu wiadomości od innych serwerów. Jeśli ten port będzie zablokowany nie otrzymamy żadnej wiadomości.
Na słowo zakończenia dodam jak wygląda reputacja takich usług mailowych? Otóż niezbyt dobrze. Wysłanie na maila GMAIL spowoduje umieszczenie takiej wiadomości w spamie. Inaczej ma to się przy wysyłaniu informacji do organizacji, którą posiada swoje maile na Googlu, tam mail trafił normalnie do skrzynki odbiorczej. Protomail identycznie, mail trafił do spamu. Jeśli komuś na tym zależy to może się pobawić w podniesienie reputacji. Załącznik w mailach działają bez żadnej dodatkowej konfiguracji. Odnośnie tego spamu, to jeśli my odpowiemy na maila, to wtenczas mail pojawi się klasycznie w wątku pod tym tematem. Jestem ciekaw jak ten serwer długo pociągnie, online jest od 27.04.2021.
~xf0r3m