Jika Anda ingin mengizinkan pengguna mengakses layanan tertentu di server Anda tanpa membuka firewall, Anda dapat menggunakan port knocking. Port knocking adalah metode yang memungkinkan Anda untuk mengamankan layanan Anda dari pengguna yang tidak berwenang. Port knocking memungkinkan koneksi masuk ketika urutan upaya koneksi yang benar diterima.
Pada postingan kali ini, kita akan mengamankan open SSH port 22 dengan port knocking. Port ini hanya akan dibuka ketika seseorang meminta port 7000, 8000, 9000 secara berurutan.
Prasyarat
- Server Ubuntu 20.04 di Atlantic.Net Cloud Platform
- Kata sandi root yang dikonfigurasi di server Anda
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 20.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 20.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal dan Konfigurasi Knockd
apt-get install knockd -y
Setelah paket diinstal, edit file konfigurasi default port knocking:
nano /etc/knockd.conf
Temukan urutan default yang ditunjukkan di bawah ini:
sequence = 7000,8000,9000 sequence = 9000,8000,7000
Dan ganti dengan urutan berikut:
sequence = 7777,8888,9999 sequence = 9999,8888,7777
Juga, temukan baris berikut:
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Dan ganti dengan baris berikut:
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Simpan dan tutup file setelah Anda selesai.
Dalam file konfigurasi di atas, urutan 7777, 8888, 9999 digunakan untuk membuka port 22 untuk sistem klien, dan urutan 9999, 8888, 7777 digunakan untuk menutup port 22 untuk sistem klien.
Selanjutnya, edit /etc/default/knockd file konfigurasi:
nano /etc/default/knockd
Ubah baris berikut:
# Start the Knockd service START_KNOCKD=1 # Name of your network interface KNOCKD_OPTS="-i eth0"
Simpan dan tutup file setelah Anda selesai, kemudian restart layanan Knockd dan aktifkan untuk memulai pada sistem reboot:
systemctl restart knockd systemctl enable knockd
Selanjutnya, verifikasi status layanan Knockd dengan perintah berikut:
systemctl status knockd
Contoh keluaran:
● knockd.service - Port-Knock Daemon Loaded: loaded (/lib/systemd/system/knockd.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-08-15 13:26:31 UTC; 5s ago Docs: man:knockd(1) Main PID: 6555 (knockd) Tasks: 1 (limit: 2353) Memory: 296.0K CGroup: /system.slice/knockd.service └─6555 /usr/sbin/knockd -i eth0 Aug 15 13:26:31 ubuntu2004 systemd[1]: Started Port-Knock Daemon. Aug 15 13:26:31 ubuntu2004 knockd[6555]: starting up, listening on eth0
Langkah 3 – Instal dan Konfigurasi Iptables
Knockd menggunakan aturan Iptables untuk membuka dan menutup port SSH, jadi Anda perlu menginstal paket Iptables di server Anda.
Jalankan perintah berikut untuk menginstal paket Iptables:
apt-get install iptables iptables-persistent -y
Setelah paket diinstal, buat aturan Iptables untuk memblokir port SSH 22 untuk semua pengguna:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j REJECT
Selanjutnya, simpan aturan Iptables dan muat ulang dengan perintah berikut:
netfilter-persistent save netfilter-persistent reload
Pada titik ini, port knocking dikonfigurasi untuk OpenSSH di server Anda.
Langkah 4 – Periksa Koneksi OpenSSH dari Sistem Klien
Selanjutnya, masuk ke sistem klien dan periksa apakah port OpenSSH 22 diblokir atau tidak.
Anda dapat memeriksanya menggunakan perintah NMAP:
nmap your-server-ip
Anda akan melihat bahwa port 22 difilter di server.
Nmap scan report for your-server-ip Host is up (0.38s latency). Not shown: 998 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp filtered ssh Nmap done: 1 IP address (1 host up) scanned in 277.58 seconds
Sekarang, coba sambungkan ke server Anda menggunakan SSH dari mesin klien:
ssh [email protected]
Anda akan melihat pesan koneksi ditolak:
ssh: connect to host your-server-ip port 22: Connection refused
Langkah 5 – Konfigurasi Knockd pada Klien untuk Menghubungkan Server SSH
Sekarang Anda perlu menginstal klien Knock pada sistem klien untuk terhubung ke server SSH.
Pertama, jalankan perintah berikut untuk menginstal paket klien Knockd:
apt-get install knockd -y
Sekarang gunakan urutan ketukan berikut untuk membuka port SSH 22 di server.
knock -v your-server-ip 7777 8888 9999
Ketika server Anda menerima urutan yang benar yang telah Anda tetapkan dalam file konfigurasi Knockd, itu akan membuka port SSH 22 untuk mesin klien Anda, dan Anda akan dapat terhubung ke server SSH.
ssh [email protected]
Setelah menyelesaikan tugas Anda di server SSH jarak jauh, Anda dapat menggunakan urutan berikut dari mesin klien untuk menutup kembali port SSH.
knock -v your-server-ip 9999 8888 7777
Kesimpulan
Dalam panduan di atas, Anda mempelajari cara mengamankan server SSH dengan port knocking. Anda dapat menggunakan metode yang sama untuk mengamankan port lain di server Linux. Cobalah di hosting VPS dari Atlantic.Net!