Cara menggunakan port mengetuk untuk mengamankan layanan ssh di linux

Cara menggunakan port mengetuk untuk mengamankan layanan ssh di linux

Port Knocking adalah teknik yang bagus untuk mengendalikan akses ke port dengan hanya memungkinkan pengguna yang sah akses ke layanan yang berjalan di server. Ini bekerja sedemikian rupa sehingga ketika urutan upaya koneksi yang tepat dilakukan, firewall dengan senang hati membuka port yang ditutup.

Logika di balik ketukan port adalah melindungi sistem Linux Anda dari pemindai port otomatis yang berkeliaran untuk port terbuka. Dalam panduan ini, kami memeriksa bagaimana Anda dapat menginstal port ketukan dan bagaimana Anda dapat mengonfigurasinya untuk mengamankan layanan ssh. Untuk tujuan demonstrasi, kami akan menggunakan Ubuntu 18.04.

Langkah 1: Instal dan Konfigurasikan Knockd

Untuk memulai, masuk ke sistem Linux Anda dan instal Knockd daemon seperti yang ditunjukkan.

$ sudo apt instal knockd 

Setelah diinstal, buka Knockd.conf Konfigurasi dengan editor teks pilihan Anda. Di sini, kami menggunakan editor teks baris perintah VIM.

$ sudo vim /etc /knockd.conf 

File konfigurasi default muncul sebagai berikut.

File Konfigurasi Knockd

Di bawah [OpenSsh] Bagian, kita perlu mengubah urutan ketukan default - 7000.8000.9000 - untuk sesuatu yang lain. Ini karena nilai -nilai ini sudah diketahui dan dapat membahayakan keamanan sistem Anda.

Untuk tujuan pengujian, kami telah menetapkan nilai 10005, 10006, 10007. Ini adalah urutan yang akan digunakan untuk membuka port SSH dari sistem klien.

Di baris ketiga - dimulai dengan memerintah, mengubah -A ke -SAYA tepat setelah /sbin/ptables perintah dan sebelumnya MEMASUKKAN.

Dan terakhir, di bawah [Closessh] Bagian, sekali lagi, ubah urutan default ke pilihan pilihan Anda. Ini adalah urutan yang akan digunakan untuk menutup koneksi SSH setelah pengguna selesai dan keluar dari server.

Inilah konfigurasi lengkap kami.

Pengaturan Konfigurasi Knockd

Setelah selesai, simpan perubahan dan keluar.

Konfigurasi lain yang perlu kita ubah adalah /etc/default/knockd. Sekali lagi, buka menggunakan editor teks Anda.

$ sudo vim/etc/default/knockd 
Pengaturan Konfigurasi Knockd Default

Temukan garis Start_knockd = 0. Membatalkan komentar dan mengatur nilainya 1.

Selanjutnya, pergilah ke garis Knockd_opts = "-i eth1" Unkomment dan ganti default Eth1 Nilai dengan antarmuka jaringan aktif dari sistem Anda. Untuk memeriksa antarmuka jaringan Anda cukup jalankan IP AddR atau perintah ifconfig.

Untuk sistem kami, ENP0S3 adalah kartu jaringan yang aktif.

Antarmuka jaringan aktif

Konfigurasi lengkap seperti yang ditunjukkan.

Nilai Konfigurasi Knockd

Simpan perubahan dan keluar.

Kemudian mulai dan aktifkan Knockd daemon seperti yang ditunjukkan.

$ sudo systemctl mulai knockd $ sudo systemctl mengaktifkan knockd 

Untuk memeriksa status Knockd daemon, jalankan perintah:

$ sudo systemct status knockd 
Periksa status knockd

Langkah 2: Tutup Port SSH 22 di Firewall

Karena tujuan dari Knockd Layanan adalah untuk memberikan atau menolak akses ke layanan SSH, kami akan menutup port SSH di firewall. Tapi pertama -tama, mari kita periksa status firewall UFW.

$ sudo status UFW bernomor 
Periksa status UFW

Dari output, kita dapat dengan jelas melihatnya Ssh pelabuhan 22 terbuka pada keduanya IPv4 Dan IPv6 Protokol diberi nomor 5 Dan 9 masing -masing.

Kita perlu menghapus dua aturan ini seperti yang ditunjukkan, dimulai dengan nilai tertinggi - yaitu 9.

$ sudo ufw hapus 9 $ sudo ufw delete 5 
Hapus aturan UFW

Sekarang, jika Anda mencoba masuk dari jarak jauh ke server, Anda akan mendapatkan kesalahan batas waktu seperti yang ditunjukkan.

SSH Connection Timeout

Langkah 3: Mengkonfigurasi Klien Knock untuk terhubung ke SSH Server

Pada langkah terakhir, kami akan mengonfigurasi klien dan mencoba masuk dengan terlebih dahulu mengirimkan urutan ketukan yang kami konfigurasi di server.

Tapi pertama -tama, instal Knockd Daemon seperti yang Anda lakukan di server.

$ sudo apt instal knockd 

Setelah instalasi selesai, kirim urutan ketukan menggunakan sintaks yang ditampilkan

$ knock -v server_ip knock_cesterence 

Dalam kasus kami, ini diterjemahkan menjadi:

$ knock -v 192.168.2.105 10005 10006 10007 

Anda harus mendapatkan output mirip dengan apa yang kami miliki, tergantung pada urutan Anda. Ini menunjukkan bahwa upaya ketukan berhasil.

Urutan Knock

Pada titik ini, Anda harus berada dalam posisi untuk berhasil masuk ke server menggunakan SSH.

Terhubung ke server menggunakan knockd

Setelah Anda selesai melakukan pekerjaan Anda di server jarak jauh, tutup port SSH dengan mengirimkan urutan ketukan penutupan.

$ knock -v 192.168.2.105 10007 10006 10005 

Setiap upaya untuk masuk ke server akan gagal seperti yang ditunjukkan.

Tutup port SSH
Menutup pikiran

Ini membungkus panduan ini tentang cara memanfaatkan port mengetuk untuk mengamankan layanan SSH di server Anda. Pendekatan yang lebih baik dan lebih mudah adalah mengkonfigurasi otentikasi SSH kata sandi menggunakan pasangan kunci ssh. Ini memastikan bahwa hanya pengguna dengan kunci pribadi yang dapat mengotentikasi dengan server tempat kunci publik disimpan.