Tartalomjegyzék

< Távoli elérés

stunnel4

Az stunnelről

Az stunnel egy több platformos, nyílt forráskódú szoftver, amely lehetővé teszi hálózati protokollok alagutaztatását, TLS kapcsolaton keresztül. Az adott hálózati alkalmazásnak egyáltalán nem kell ehhez ismernie a TLS protokollt. A hálózati forgalom így biztonságosan, titkosítva haladhat az Interneten. Használható Linux, Windows és Android rendszeren.

Az stunnel segítségével egy privát hálózatban elérhető szolgáltatást az Interneten keresztül biztonságosan elérhetünk bárhonnan.

A projekt weboldala:

Ehhez hasonló megoldás az SSH alagút.

Cél

Szeretnénk egy belső hálózat webszerverét elérni, titkosított alagúton keresztül. A webszerver csak a belső hálózatról érhető el. Az is célunk, hogy a szervert csak azonosítás után lehessen elérni.

Szerver oldalon

Telepítjük az stunnel4 csomagot:

apt install stunnel4

Hozzunk létre egy tanúsítványt a titkosított kapcsolat számára:

openssl req -new -x509 -nodes -days 365 \
-out /etc/stunnel/stunnel.pem 
-keyout /etc/stunnel/stunnel.pem

Hozzuk létre az stunnel.conf állományt a /etc/stunnel könyvtárban:

/etc/stunnel/stunnel.conf
[http]
client = no
accept = 8000
connect = 192.168.10.2:80
cert = /etc/stunnel/cert.pem
ciphers = PSK
PSKsecrets = /etc/stunnel/psk.txt

A ciphers és a PSKsecrets nélkül is működik, de akkor bárki beléphet.

Hozzuk létre a psk.txt állományt, amiben leírjuk azokat a felhasználókat, akik beléphetnek.

/etc/stunnel/psk.txt
janos:01234567890123456789
mari:01234567890123456789

A kulcs rész (a kettőspont utáni rész), legyen véletlen karakterek sorozat. Itt most túl egyszerű számsort választottunk. A kulcsnak minimum 20 karakternek kell lennie.

Minden kliens számára létrehozhatunk egy ilyen sort. A psk.txt állomány egy sorát átmásoljuk a kliensre. Lehet például az első sor psk1.txt fájlba.

Állítsuk be, hogy csak a tulajdonos láthassa a fájlt:

chmod 600 /etc/stunnel/psk.txt

Az stunnelt ezek után kézzel indítjuk:

stunnel

Szerveroldalon célszerű beállítani, hogy alapértelmezetten elinduljon rendszerindításkor. Ha ezt szeretnénk, szerkesszük a /etc/default/stunnel4 állományt:

nano /etc/default/stunnel4

Cseréljük le az ENABLED értékét 1-re:

ENABLED=1

Ezek után a systemd rendszerben engedélyezzük:

systemctl enable stunnel4

Ellenőrzés:

Ellenőrzéshez használjuk a ps axf és/vagy a ss -lt parancsot:

ps axf
ss -lt

Kliens oldalon

A példában az stunnel szerver címe: 195.100.100.2, ahova saját címet kell behelyettesíteni. A beállításokat Linuxon írom le, de Windowson is megvalósítható.

Telepítjük az stunnel4 csomagot:

apt install stunnel4

Hozzunk létre egy tanúsítványt a titkosított kapcsolat számára:

openssl req -new -x509 -nodes -days 365 \
-out /etc/stunnel/stunnel.pem 
-keyout /etc/stunnel/stunnel.pem
/etc/stunnel/stunnel.conf
[http]
client = yes
accept = 9000
connect = 195.100.100.2:8000
cert = /etc/stunnel/cert.pem
PSKsecrets = /etc/stunnel/psk1.txt

A PSKsecrets csak akkor szükséges, ha szerver oldalon is be van állítva, de nélküle bárki elérheti a szervert.

A psk1.txt állományban a szerveren lévő psk.txt nevű állomány egyik sorának kell szerepelnie.

/etc/stunnel/psk1.txt
janos:01234567890123456789

Ne feledkezzünk meg, bonyolultabb kulcsot megadni.

Állítsuk be, hogy csak a tulajdonos láthassa a fájlt:

chmod 600 /etc/stunnel/psk1.txt

Ellenőrzés:

Ellenőrzéshez használjuk a ps axf és/vagy a ss -lt parancsot:

ps axf
ss -lt

Használat

Kliens oldalon indítsuk el az stunnel programot parancssorból:

stunnel

A kliens böngészőjébe írjuk be:

localhost:9000

Tanúsítványokról

A tanúsítványok természetesen többféle képen is elkészíthetők. Itt egy másik példát látunk.

openssl genrsa 1024 > stunnel.key
openssl req -new -x509 -key stunnel.key -days 3650 -out stunnel.crt
cat stunnel.crt stunnel.key > stunnel.pem