Stunnel Kurulum ve Konfigürasyon Rehberi

Stunnel, TLS tünelleri oluşturmak için harika bir araçtır, ancak Ubuntu’da doğru bir şekilde kurmak biraz zorlayıcı olabilir. Bu kılavuz, stunnel’ı Ubuntu üzerinde, özellikle de Ubuntu 18.04 Server’da nasıl kurup yapılandıracağınızı gösterecek. Ancak, adımların küçük ayarlamalarla diğer Ubuntu sürümlerine ve hatta farklı Linux dağıtımlarına da uygulanabileceğini unutmayın. Eğer başka kurulumlarla başarılı olursanız, lütfen benimle paylaşın, böylece bu kılavuzu güncelleyebilirim.

Stunnel Kurulumu

Stunnel’ı kurmak oldukça basittir. Bunun için Ubuntu’nun varsayılan deposunu kullanacağız:

sudo sh -c 'apt-get update && apt-get install stunnel4'

Kurulum sırasında, stunnel4 kullanıcı hesabı, başlangıç betiği ve logrotate yapılandırması gibi gerekli bileşenler de oluşturulacaktır. Ayrıca, paketteki birkaç betik, ppp bağlantı durum değişikliklerini yönetmek için (stunnel işlemini yeniden başlatarak) kullanılmaktadır.

Stunnel – Manuel Mod

Stunnel, yapılandırma dosyası ile birlikte manuel olarak çağrılabilir ve çalışacaktır. Örneğin, yapılandırma dosyasının /etc/stunnel/stunnel.conf dizininde bulunduğunu varsayalım. Aşağıdaki komut bu dosyayı çalıştıracaktır:

sudo stunnel /etc/stunnel/stunnel.conf

Bu örnekte, stunnel’ı root olarak çalıştırıyoruz. Stunnel, bir kullanıcı olarak da çalıştırılabilir (eğer herhangi bir özel yere yazma veya ayrıcalıklı portlar açma işlemi yapmıyorsa), ancak daha iyi bir yöntem var:

Stunnel’ı, önce root olarak çalıştırıp daha sonra setuid/setgid kullanarak ayrıcalıklarını bırakmak en iyi uygulamadır. Bu şekilde, başlangıçta ayrıcalıklı işlemleri (örneğin, 1024 altındaki portları açma) kullanma avantajını elde ederiz ve sonra ayrıcalıkları bırakabiliriz.

Stunnel – Başlangıç Modu

Stunnel paketinin sağladığı işlevsellikten tam olarak yararlanmak istiyorsak, tüm yapılandırma dosyalarını /etc/stunnel dizinine koymalı ve .conf uzantısına sahip olmalıyız.

Bunun ardından, bazı ayarlamalarla sağlanan başlangıç betiği, her .conf dosyası için ayrı bir stunnel örneği başlatacaktır. Stunnel yazarına göre, bir kontrol arayüzü (apache2ctl’ye benzer bir yapı) tanıtıldığında, her *.conf için ayrı süreçler çalıştırmak gereksiz hale gelecektir.

Bunun yerine, tek bir stunnel.conf dosyası kullanmalı ve bu dosyaya include = @sysconfdir@/stunnel/conf.d eklemelisiniz. Şu an için, ayrı yapılandırma dosyaları için farklı stunnel örnekleri çalıştırmak desteklenmektedir, ancak çoğu durumda tek bir stunnel örneği, farklı hizmetler için hem istemci hem de sunucu işlevselliği sağlamak için kullanılabilir. Ne kadar harika!

Bu makalenin geri kalanı, bir stunnel.conf dosyası kullandığımızı varsaymaktadır. Ancak, birden fazla örnek başlatmak için gerekli bilgileri de vereceğim (çünkü bazı genel seçenekler her örnek için yalnızca bir kez ayarlanabilir).

Yapılandırma Dosyası Formatı

Yapılandırma dosyası olarak /etc/stunnel/ dizinine koyacağımız stunnel.conf adında bir dosya kullanacağız.

Bu, tipik bir stunnel yapılandırma dosyasıdır ve stunnel yapılandırma dosyası formatına uygun olmalıdır. Ancak, stunnel’ın başlangıç betiği ile uyumlu çalışması için yapılandırma dosyasını oluştururken bazı kurallara uymanız gerekir:

  • foreground: Başlangıç betiğini kullanmak istiyorsanız, foreground seçeneğini kullanmamalısınız.
  • setuid/setgid: Paket tarafından zaten oluşturulmuş olan stunnel4 adında bir kullanıcıyı setuid/setgid parametresi olarak kullanın.
  • pid: Başlangıç betiğinin düzgün çalışabilmesi için, her örneğin ayrı bir pid dosyasına sahip olması gerekir. Tek bir örnek için bunu /var/run/stunnel4/stunnel.pid olarak ayarlayın.
  • output: Stunnel çıktı mesajlarını diske kaydetmek mümkündür. /var/log/stunnel4/ dizini, stunnel çıktı dosyalarını saklamak için ayrılmıştır. Belirtilen dosya .log uzantısına sahip olmalıdır. Bu klasörde eski log dosyalarını arşivlemek ve silmek için gerekli logrotate betiği zaten mevcuttur. Her örneğin farklı bir çıktı dosyası kullanması gerekecektir. Varsayılan örneğiniz için /var/log/stunnel4/stunnel.log kullanın.

Yapılandırma Dosyası Örneği

Referans olarak bir örnek dosya sunuyorum:

pid = /var/run/stunnel4/stunnel.pid
output = /var/log/stunnel4/stunnel.log

setuid = stunnel4
setgid = stunnel4

# https://www.stunnel.org/faq.html
socket = r:TCP_NODELAY=1
socket = l:TCP_NODELAY=1

debug = 4
[yahoo_imaps-client]
client = yes 
accept = 127.0.0.1:143 
connect = imap.mail.yahoo.com:993 
# Bu, ca-certificates paketini gerektirir 
CApath = /etc/ssl/certs/ 
verifyChain = yes 
checkHost = imap.mail.yahoo.com

[ssh_tls-server]

accept = 2222 
connect = 127.0.0.1:22 
PSKsecrets = /etc/stunnel/stunnel.secrets

Varsayılan Ayarları Belirleme

/etc/default/stunnel dosyası, her şeyi bir araya getiren yapı. En azından bu dosyada “ENABLED” değerini “1” olarak ayarlamanız gerekir ki stunnel başlangıç betiği etkinleşsin.

Aşağıda, her ayarın açıklamasıyla birlikte listesi bulunmaktadır:

ENABLED=0
# Bunu 1 olarak ayarlayın, böylece stunnel başlangıç betiği çalıştırılacak.
FILES="/etc/stunnel/*.conf"
# Stunnel başlangıç betiği tarafından kullanılan yapılandırma dosyalarının konumu ve dosya uzantıları.
OPTIONS=""
# Başlangıç betiği tarafından stunnel örneklerine iletilecek ekstra seçenekler.
RLIMITS=""
# Stunnel örnekleri için bazı sınırlar belirleyebilirsiniz. Daha fazla detay için dosyanın iç yorumuna ve Bash belgesine bakın.
PPP_RESTART=0
# Bunu 1 olarak ayarlayın, böylece ppp yeniden başlatma betikleri (ppp bağlantı durumu değiştiğinde stunnel örneklerini yeniden başlatır) etkinleşir.

Örneği Test Etme

Artık hizmeti test etmeye hazırsınız:

Öncelikle, hizmetin durduğundan emin olun:

sudo systemctl stop stunnel4.service

Hizmeti başlatın:

sudo systemctl start stunnel4.service

Hizmetin durumunu kontrol edin (burada, stunnel örneğinin aktif olduğunu ve birkaç son log mesajını göreceksiniz):

systemctl status stunnel4.service

Çıktı şöyle görünebilir:

 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 Fri 2019-03-29 01:10:00 UTC; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1840 ExecStart=/etc/init.d/stunnel4 start (code=exited, status=0/SUCCESS)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/stunnel4.service
           ├─1785 /usr/bin/stunnel4 /etc/stunnel/stunnel.conf
           └─1865 /usr/bin/stunnel4 /etc/stunnel/stunnel_2.conf

Hizmetin başlangıçta etkinleştirildiğinden emin olun:

sudo systemctl enable stunnel4.service

Hepsi bu kadar! Stunnel’ı kullanmanın keyfini çıkarın!

Her zamanki gibi, bu makale hakkında düşündüklerinizi duymak isterim. Lütfen aşağıda benimle paylaşın.

Önceki Konu

Key.sth Dosyası ile Parola Kurtarma Yöntemi

Sonraki Konu

En İyi Linux Sunucu Dağıtımları: Hangisini Seçmelisiniz?

Bültenimize Abone Olun 📬

En son gönderilerimizin doğrudan e-posta kutunuza gelmesi için e-posta bültenimize abone olun.
Düşüncelerinizi özgür bırakın ✨