Stunnel ile TLS/SSH Kurulumu ve Yapılandırma Rehberi

Merhabalar,
Bu makalede sizlere Stunnel kullanarak TLS/SSH kurulumunu açıklayacağı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

Herhangi bir yapılandırma işlemine başlamadan önce, tam yetkili root kullanıcısı bilgilerini kullanarak sunucuya güvenli bir şekilde 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 komutu kullanarak bir TLS sertifikası hazırlayalım. İstenen verileri girmenize lüzum yoktur. Varsayılan bilgilerle ilerleyebilirsiniz.

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 profesyonel tünelleme yazılımlarını kullanarak, TLS/SSH (Stunnel) seçeneği üzerinden sunucunuza 443 portu aracılığıyla güvenli bir SSH bağlantısı kurabilirsiniz. Bu yöntem, SSH trafiğinizi standart bir HTTPS protokolü gibi maskeleyerek hem bağlantı güvenliğini artırır hem de çeşitli ağ kısıtlamalarını ve güvenlik duvarlarını kolayca aşmanızı sağlar.

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

“Stunnel ile TLS/SSH Kurulumu ve Yapılandırma Rehberi” üzerine 29 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