Cara Mengamankan Koneksi Telnet dengan Stunnel

Koneksi Telnet adalah protokol koneksi client-server yang menggunakan port 23 TCP. Telnet sendiri sedari awal memang tidak didesain dengan proses enkripsi data, jadi wajar kalau ada banyak orang yang masih tidak mau memakai telnet karena ‘tidak aman’. Nah, pada tutorial kali ini kita akan mengamankan koneksi telnet itu dengan enkripsi seadanya, menggunakan software stunnel.

Stunnel adalah sebuah software opensource yang didesain untuk menambahkan enkripsi SSL ke program yang memiliki protokol koneksi yang masih belum aman.

Instalasi di Sisi Server

Untuk instalasi dari Stunnel sendiri silakan gunakan aplikasi installer masing-masing. Misalkan untuk fedora/openmandriva:

dnf -y install stunnel 

atau untuk keluarga Debian/Ubuntu/Linux Mint bisa pakai:

apt install stunnel

Tambah Rule Firewall

bagi yang menggunakan Firewall di Fedora, silakan tambahkan permission telnet ini di firewall:

firewall-cmd --add-service=telnet --perm
firewall-cmd --reload

kemudian bikin SSL certificate untuk Stunnel:

openssl genrsa 2048 > stunnel.key
openssl req -new -key stunnel.key -x509 -days 90 -out stunnel.crt

kemudian gabung file RSA Key dan SSL Certificate CRT jadi satu file PEM dengan cara:

cat stunnel.crt stunnel.key > stunnel.pem
sudo cp stunnel.pem /etc/pki/tls/certs/

Contoh Pemakaian

Untuk contoh pemakaian Telnet dengan Stunnel, silakan bikin dulu konfigurasi stunnel untuk Telnet, misalnya di file /etc/stunnel/telnet.conf.

cert = /etc/pki/tls/certs/stunnel.pem
sslVersion = TLSv1
chroot = /var/run/stunnel
setuid = nobody
setgid = nobody
pid = /stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
[telnet]
accept = 450
connect = 23

kemudian bikin init systemd baru untuk stunnel:

sudo cp /usr/lib/systemd/system/stunnel.service /etc/systemd/system

[sourcode]
[Unit]
Description=TLS tunnel for network daemons
After=syslog.target network.target

[Service]
ExecStart=/usr/bin/stunnel
Type=forking
PrivateTmp=true
ExecStartPre=-/usr/bin/mkdir /var/run/stunnel
ExecStartPre=/usr/bin/chown -R nobody:nobody /var/run/stunnel

[Install]
WantedBy=multi-user.target
[/sourcecode]

kemudian jangan lupa atur SELinux biar tidak rewel dengan lalu lintas di port 450 (contoh):

sudo semanage port -a -t telnetd_port_t -p tcp 450

dan tambah rule firewall lagi:

firewall-cmd --add-port=450/tcp --perm
firewall-cmd --reload

kemudian enable service diatas dengan systemctl:

systemctl enable telnet.socket stunnel@telnet.service --now

untuk menjalankan stunnel ketika boot silakan lakukan:

systemctl enable stunnel@telnet.service

Instalasi Stunnel di Sisi Client

Silakan pasang saja dengan perintah sama dengan di server.

Untuk menggunakan koneksi telnet dengan stunnel, silakan download file Stunnel.pem yang kita bikin di server dan taruh di /etc/pki/tls/certs.. Lalu jalankan scp seperti berikut (contoh saja):

sudo scp emka@192.168.56.40:/etc/pki/tls/certs/stunnel.pem /etc/pki/tls/certs/

buat file telnet.conf di folder /etc/stunnel:

cert = /etc/pki/tls/certs/stunnel.pem
client=yes
[telnet]
accept=450
connect=192.168.1.143:450

enable service diatas:

systemctl enable stunnel@telnet.service --now

dan coba dong hasilnya:

[user@client ~]$ telnet localhost 450
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Kernel 5.0.9-301.fc30.x86_64 on an x86_64 (0)
server login: myuser
Password: XXXXXXX
Last login: Sun May  5 14:28:22 from localhost
[myuser@server ~]$

Panjang amat! haha

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: