Stunnel – SSL dla każdego

O programie

Stunnel to program udostępniający programom nie posiadającym możliwości obsługi szyfrowanych połączeń typu SSL zestawienie takich połączeń. Tworzy on tunel między portem usługi nie obsługującym szyfrowanych połączeń (np. POP3 na porcie 110) a własnym portem, na którym uruchomiony jest jego drugi koniec (np. SPOP3 na porcie 995).

Programy klienckie łączą się na końcu tunelu, na którym słucha stunnel, nawiązują szyfrowane połączenia, następnie stunnel już zdekodowane informacje wysyła na na port usługi nie obsługującej szyfrowanie. Jak widać program idealnie nadaje się do zabezpieczania połączeń nieszyfrowanych metodami kryptograficznymi.

Instalacja programu

Program występuje w postaci pakietów w prawie wszystkich dystrybucjach. Nie zawsze dostępne są pliki konfiguracyjne oraz startowe dla niego, dlatego należy czasem je samemu stworzyć. Są one również dostępne na naszym serwisie (plik startowy – www.linuxexpert.pl/pliki/stunnel i plik konfiguracyjny – www.linuxexpert.pl/pliki/stunnel.conf ). Dokładne instrukcje instalacyjne znajdą państwo w działach poświęconych konkretnym dystrybucjom.

Stunnel jako samodzielny demon

Jeżeli chcemy wykorzystać stunnela jako samodzielnego demona należy odpowiednio skonfigurować go. W tym celu edytujemy jego plik konfiguracyjny (przeważnie /etc/stunnel). Plik ten składa się z dwóch części: opcji globalnych oraz sekcji poświęconych poszczególnym usługom (zdefiniowanym w pliku /etc/services).

Część ogólną możemy zdefiniować następująco:

# najpierw plik zawierający certyfikat CA (Centrum Autoryzacji)  CAfile = /etc/stunnel/cacert.pem  # teraz plik z kluczem dla stunnel  cert = /etc/stunnel/stunnel.pem  # włączamy logowanie (przynajmniej na początek) dla naszego programu  debug = 7  output = /var/log/stunnel.log  # potem katalog, w którym zostanie "zamknięty" stunnel (chroot)  chroot = /var/run/stunnel/  # następnie plik, w którym zapisany będzie PID programu # (jest to praktycznie ścieżka względna gdyż program zamkniemy w chroot)  pid = /stunnel.pid  # następnie użytkownik i grupa na prawach kogo działać będzie stunnel setuid = nobody setgid = nogroup

Następnie definiujemy sekcje dla poszczególnych usług.

[pop3s]  accept = 995  connect = 110   [imaps]  accept = 993  connect = 143    [ssmtp]  accept = 465  connect = 25

Sprawdźmy także czy w pliku /etc/services znajdują się wpisy o świadczonych usługach (i ich portach oraz protokołach):

ssmtp 465/tcp imaps 993/tcp pop3s 995/tcp

Jeżeli ich nie ma, należy je dodać

Ostatnią czynnością jest uruchomienie stunnela. Możemy tego dokonać ręcznie wydając polecenie stunnel albo przy pomocy skryptów startowych dostarczonych w pakiecie dystrybucyjnym (np. w Debianie będzie to /etc/init.d/stunnel start)

W przypadku wystąpienia jakiś błędów masz możliwość przeczytania komunikatów programu w pliku logów (w naszym przypadku /var/log/stunnel.log).

Przykłady konfiguracji usług z wykorzystaniem xinetd

POP3

service pop3s {         flags       = REUSE NAMEINARGS         socket_type = stream         protocol    = tcp         wait        = no         user        = root         server      = /usr/local/sbin/stunnel         server_args = stunnel -l /usr/local/sbin/ipop3d ipop3d }

Uruchom teraz swojego klienta poczty i w zakładce bezpieczeństwo zaznacz opcję SSL

service imaps {         flags       = REUSE NAMEINARGS         socket_type = stream         protocol    = tcp         wait        = no         user        = root         server      = /usr/local/sbin/stunnel         server_args = stunnel -l /usr/local/sbin/imapd imapd }
service smtps {         flags       = REUSE NAMEINARGS         socket_type = stream         protocol    = tcp         wait        = no         user        = root         server      = /usr/local/sbin/stunnel         server_args = stunnel -r smtp }

Ciekawe strony internetowe związane tematycznie

  • http://stunnel.mirt.net/ – strona domowa programu stunnel
  • http://www.stunnel.org/ – najczęściej zadawane pytania na temat programu stunnel
  • Dodaj komentarz