Server DNS Bind dengan TLS menggunakan Stunnel di OpenBSD

· 2 min read

Pada OpenBSD, berkas konfigurasi Stunnel terletak di /etc/stunnel. Silakan buka dan edit berkas stunnel.conf. Kami sarankan Anda menghapus seluruh isi

Stunnel adalah program sumber terbuka serbaguna yang berbasis klien-server dan menyediakan enkripsi untuk komunikasi data yang aman menggunakan protokol SSL/TLS. Stunnel dapat berjalan pada berbagai sistem operasi seperti Unix, Linux, BSD, Windows, dan lainnya. Stunnel dirancang untuk membantu mengamankan port HTTP/HTTPS, karena Stunnel mampu mengenkripsi lalu lintas, koneksi proksi, dan mengalihkan aplikasi sehingga dapat berjalan dengan aman di komputer Anda dengan koneksi jaringan yang tidak tepercaya.

Stunnel juga dapat memeriksa setiap paket dalam terowongan terenkripsi dan membuat penyesuaian untuk meningkatkan kinerja. Stunnel mengelola satu atau lebih koneksi TCP/IP klien-server dengan membuat terowongan terenkripsi di mana hanya klien dan server yang diizinkan untuk berkomunikasi. Koneksi terenkripsi ini merupakan pengganti koneksi langsung antara aplikasi klien dan aplikasi server, yang membantu mencegah gangguan komunikasi saat transit dari satu ujung koneksi ke ujung lainnya.

Stunnel memiliki kekuatan untuk membuat blok data dalam format yang tidak dapat diuraikan oleh penyerang. Hal ini memungkinkan terciptanya terowongan terenkripsi untuk aplikasi tertentu, menjadikannya alat yang populer di dunia peretasan etis dan pengujian penetrasi. Enkripsi dikenal sebagai kunci dan disimpan secara lokal di komputer klien dan server. Ketika komunikasi diperlukan antara dua titik akhir, Stunnel terhubung ke server, menerima informasi penting untuk koneksi tertentu (nama host, nomor port, dan protokol) dari server, lalu membuat terowongan terenkripsi melalui koneksi TCP/IP terenkripsi. Setelah pembuatan terowongan selesai, Stunnel melepaskan kredensial TCP/IP-nya dan mengakhirinya.

Perangkat lunak Stunnel merupakan implementasi protokol SSL atau yang sering disebut Secure Sockets Layer dan TLS (Transport Layer Security). Manfaat Stunnel dapat memfasilitasi enkripsi end-to-end, integritas data, dan autentikasi antara dua host. Protokol transmisi dapat berupa beberapa protokol, seperti FTP, IMAP, POP3, telnet, dan HTTP. Stunnel dapat digunakan untuk melakukan autentikasi dengan server melalui sertifikat klien atau dengan agen autentikasi melalui single sign-on (SSO). Stunnel juga dapat digunakan untuk menyediakan lapisan terenkripsi untuk lalu lintas jaringan yang tidak memerlukan autentikasi dengan server.


server dns bind dengan stunnel


1. Cara Instal Stunnel

Seperti yang kita ketahui, server DNS Bind tidak memiliki dukungan DNS-over-TLS (DOT) secara langsung. Jika Anda ingin mengaktifkan dukungan DOT pada Bind, Anda harus menambahkan Stunnel, sehingga Bind dapat meneruskan DNS secara langsung ke protokol TLS. Berkat fleksibilitas dan kekuatannya, Stunnel mampu mengenkripsi TLS tanpa membuat perubahan besar apa pun pada klien atau server yang sedang berjalan.

Pada OpenBSD, repositori Stunnel tersedia dalam paket dan port PKG, Anda dapat menginstalnya secara langsung. Untuk mempermudah prosesnya, gunakan paket PKG untuk menginstal Stunnel, seperti pada contoh di bawah ini.

Install Stunnel
ns3# pkg_add stunnel
Selama proses instalasi, OpenBSD secara otomatis membuat pengguna dan grup untuk Stunnel. Grup dan pengguna ini sangat berguna selama proses pengaturan Stunnel. Jalankan perintah di bawah ini untuk memberikan hak kepemilikan file.

Enable Stunnel
ns3# chown -R _stunnel:_stunnel /etc/stunnel/

2. Konfigurasi Stunnel

Pada OpenBSD, berkas konfigurasi Stunnel terletak di /etc/stunnel. Silakan buka dan edit berkas stunnel.conf. Kami sarankan Anda menghapus seluruh isi skrip stunnel.conf, dan menggantinya dengan skrip yang telah kami buat. Sesuaikan skrip dengan spesifikasi server OpenBSD Anda. Berikut ini adalah contoh lengkap skrip /etc/stunnel/stunnel.conf.

/etc/stunnel/stunnel.conf
chroot = /etc/stunnel
setuid = _stunnel
setgid = _stunnel
;pid = /var/stunnel/stunnel.pid
;foreground = yes
;debug = info
;output = /var/stunnel/stunnel.log

[dnsclient]
client = yes
CApath = /etc/ssl
CAfile = /etc/ssl/cert.pem
cert = /etc/stunnel/server-cert.pem
key = /etc/stunnel/server-key.pem
accept = 192.168.5.3:1053
connect = 8.8.8.8:853
verifyChain = yes
verify = 4
checkIP = 8.8.8.8
checkHost = dns.google
OCSPaia = yes

[dnsserver]
client = no
cert = /etc/stunnel/client-cert.pem
key = /etc/stunnel/client-key.pem
accept = 853
connect = 1053
Pada contoh skrip di atas, kami membagi tiga pengaturan stunnel:
  • Pengaturan Global.
  • Pengaturan Server DNS, dan
  • Pengaturan Klien DNS
Yang perlu Anda perhatikan adalah membuat sertifikat TLS. Berikut ini kami berikan contoh pembuatan sertifikat TLS untuk server DNS dan klien DNS. Hal pertama yang harus Anda lakukan adalah membuat sertifikat CA root.

Create root CA certificate
ns3# cd /etc/stunnel
ns3# openssl genrsa 2048 > ca-key.pem
Generating RSA private key, 2048 bit long modulus
.................................................
..............
e is 65537 (0x010001)
ns3# openssl req -new -x509 -nodes -days 1825 -key ca-key.pem -out ca-cert.pem
Setelah itu Anda membuat sertifikat server, menghapus kata sandi dan menandatanganinya dengan kunci CA.

Create server certificate
ns3# openssl req -newkey rsa:2048 -days 1825 -nodes -keyout server-key.pem -out server-req.pem
ns3# openssl rsa -in server-key.pem -out server-key.pem
ns3# openssl x509 -req -in server-req.pem -days 1825 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
Lanjutkan dengan membuat sertifikat klien, menghapus kata sandi dan menandatangani dengan kunci CA.

Create client certificate
ns3# openssl req -newkey rsa:2048 -days 1825 -nodes -keyout client-key.pem -out client-req.pem
ns3# openssl rsa -in client-key.pem -out client-key.pem
ns3# openssl x509 -req -in client-req.pem -days 1825 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
Verify certificate
ns3# openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem
Setelah itu aktifkan Stunnel dengan perintah rcctl.

Enable Stunnel
ns3# rcctl enable stunnel
ns3# rcctl restart stunnel

3. Konfigurasi Server DNS ISC Bind

Syarat utama untuk melakukan pengaturan Bind adalah Anda harus sudah membaca artikel sebelumnya "Instal Server DNS ISC Bind Menggunakan OpenBSD". Karena pada artikel ini kita tidak akan membahas cara menginstal Bind dan kita akan berasumsi bahwa server ISC Bind Anda berjalan normal pada OpenBSD.

Buka file konfigurasi /var/named/etc/named.conf. Ubah skrip di bawah ini.

/var/named/etc/named.conf
zone "." {
  type forward;
  forward first;
  forwarders { 1.1.1.1; 8.8.8.8; };
};
Ganti dengan skrip di bawah ini.

/var/named/etc/named.conf
zone "." {
  type forward;
  forward first;
  forwarders {
    192.168.5.3 port 1053;    
  };
};
Jalankan ISC Bind DNS Server.

Enable Bind DNS Server
foo# rcctl restart isc_named
Langkah terakhir adalah memeriksa ISC Bind, apakah berjalan atau tidak.

Test Bind DNS Server
ns3# dig yahoo.com
ns3# nslookup facebook.com
Seperti yang Anda lihat, menyiapkan stunnel di OpenBSD sama sekali tidak sulit, jadi kami berharap artikel ini bermanfaat bagi Anda dan Anda akan mengadopsi cara lain untuk menggunakan layanan jaringan dengan aman.
Subscribe on LinkedIn Server DNS Bind dengan TLS menggunakan Stunnel di OpenBSD

Enclosures Link: Server DNS Bind dengan TLS menggunakan Stunnel di OpenBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar