Stunnel ile TLS/SSH Kurulumu

Merhabalar,
Bu yazımda sizlere Stunnel ile TLS/SSH kurulumunu anlatacağım

Stunnel Nedir?

Stunnel, evrensel bir TLS/SSL tünelleme hizmeti sağlamak için kullanılan açık kaynaklı, çok platformlu bir uygulamadır. Stunnel, yerel olarak TLS veya SSL konuşmayan istemciler veya sunucular için güvenli şifreli bağlantılar sağlamak için kullanılabilir.


Stunnel Kurulumu

Öncelikle root kullanıcısı ile sunucuya bağlantı sağlıyoruz.

Aşağıdaki komut ile gerekli programı kuruyoruz.

apt -y install stunnel4

Stunnel TLS Sertifika Oluşturma

Kurulum tamamlandıktan sonra stunnel kurulu olduğu klasöre giriş yapalım.

cd /etc/stunnel

Aşağıdaki komut ile TLS sertifikası oluşturalım. İstenilen bilgileri girmenize gerek yoktur. Varsayılan bilgiler ile devam edebilirsiniz.

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

Stunnel Config Oluşturma

/etc/stunnel klasörü içerisindeyken aşağıdaki komut ile config dosyası oluşturalım.

nano stunnel.conf

Örnek kurulumumuz SSH için olduğundan dolayı aşağıdaki dosyayı kullanabilirsiniz.

pid = /var/run/stunnel.pid

cert = /etc/stunnel/stunnel.pem


[ssh]
accept = 443
connect = 127.0.0.1:22

Örnek dosyamızda, sunucu 443 portunu dinleyerek; gelen istekleri 22 yani SSH portuna yönlendirecektir.

Config dosyasını kendi ihtiyaçlarınıza göre düzenleyebilirsiniz.


Stunnel Servisini Başlatma

Aşağıdaki komut ile Stunnel servisini aktif edelim ve sunucu yeniden başladığında servisin de başlamasını sağlayalım.

systemctl enable --now stunnel4

Servisin çalıştığından emin olmak için aşağıdaki komutu kullanabilirsiniz.

service stunnel4 status

Stunnel Kullanımı

HTTP Injector veya HTTP Custom gibi bir yazılım ile TLS/SSH (Stunnel) seçeneğini seçerek sunucunuza 443 portu üzerinden güvenli SSH bağlatısı yapabilirsiniz.

İyi günlerde kullanmanız dileğiyle ;)

“Stunnel ile TLS/SSH Kurulumu” üzerine 26 yorum

  1. hocam kurulumu yaptım çalıştırdım http enjektor ile nasıl bağlantı yapcağım ssh host, kullanıcı adı,parola kısmına ne yazmam gerekiyor

    Yanıtla
    • Host kısmına kurulumu yaptığınız sunucunun IP adresini, port kısmına stunnel portunu, kullanıcı adı ve şifre olarak da sunucuya SSH ile bağlandığınız kullanıcı adı ve şifreyi girmeniz yeterli olacaktır.

      Yanıtla
  2. lines 1-19/19 (END)…skipping…
    ● stunnel4.service – LSB: Start or stop stunnel 4.x (TLS tunnel for network daemons)
    Loaded: loaded (/etc/init.d/stunnel4; generated)
    Active: active (running) since Thu 2023-12-21 18:31:55 +03; 1min 55s ago
    Docs: man:systemd-sysv-generator(8)
    Tasks: 2 (limit: 389)
    CPU: 521ms
    CGroup: /system.slice/stunnel4.service
    └─424 /usr/bin/stunnel4 /etc/stunnel/stunnel.conf

    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: Running with OpenSSL 3.0.11 19 Sep 2023
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6,SYSTEMD TLS:ENGINE,OCSP,PSK,SNI Auth:LIBWRAP
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: Reading configuration from file /etc/stunnel/stunnel.conf
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: UTF-8 byte order mark not detected
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: FIPS mode disabled
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG3[ui]: No trusted certificates found
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: Configuration successful
    Dec 21 18:31:55 raspberrypi stunnel4[351]: Starting TLS tunnels: /etc/stunnel/stunnel.conf: started
    Dec 21 18:31:55 raspberrypi stunnel[410]: LOG5[ui]: Binding service [ssh] to :::443: Address already in use (98)
    Dec 21 18:31:55 raspberrypi systemd[1]: Started stunnel4.service – LSB: Start or stop stunnel 4.x (TLS tunnel for network daemons).
    ~

    Hocam http enjektorden bağlanmıyor sunucuya dediğinizi yapıyorum ama olmuyor.

    Yanıtla
    • Binding service [ssh] to :::443: Address already in use (98)

      443 portu kullanılıyor gibi görünüyor.

      Stunnel çalıştırmadan önce
      netstat -anp | grep 443
      ile hangi uygulamanın portu kullandığını kontrol edebilirsiniz.

      Yanıtla
    • Herhangi bir server işinizi görecektir.
      Çok yüksek özellikli bir sunucu olmasına gerek yok.

      İşletim sistemi olarak da her zaman tercihim öncelikle Debian daha sonra da Ubuntu oluyor.

      Yanıtla
  3. Merhaba, kurulum yaptım fakat http İnjector ile bağlanıyorum. Bağlanıyor ancak internete çıkamıyorum. Bunu nasıl çözeceğim ?

    Yanıtla
    • Merhaba, sunucunuzda da internete çıkış yapan interface’i NAT (masquerade) olarak ayarlamanız gerekiyor.
      Örneğin sunucu interface ismi eth0 ise, aşağıdaki komut işinizi görecektir.
      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

      Yanıtla
    • Merhaba,
      Bağlantı sağladıktan sonra, tcpdump ile stunnel portunu dinleyip kayıtları gösterebilir misiniz?
      Örneğin port 443 ise:
      tcpdump -i any port 443

      Yanıtla
    • Merhaba,
      Stunnel servisi çalışmıyor gibi görünüyor.
      443 portu yenine farklı bir port dener misiniz?
      Sunucunuzda web server varsa eğer port çakışması olabilir.

      Yanıtla
  4. Merhaba direkt host bilgileri ile bağlanmak yerine kendi belirlediğimiz şifre ve kullanıcı adı ile giriş yapabilmek mümkün mü

    Yanıtla
  5. Hocam merhaba yapılışına ait bir video çekip yayınlarsanız çoğu kişinin sorusuna çözüm bulmuş olursunuz yazılanları yapiyorum ama olmuyor

    Yanıtla

Yorum yapın