Cara Menggunakan Pelabuhan Mengetuk untuk Mengamankan Perkhidmatan SSH di Linux

Cara Menggunakan Pelabuhan Mengetuk untuk Mengamankan Perkhidmatan SSH di Linux

Pelabuhan mengetuk adalah teknik bagus untuk mengawal akses ke port dengan hanya membenarkan pengguna yang sah akses ke perkhidmatan yang berjalan pada pelayan. Ia berfungsi sedemikian rupa sehingga apabila urutan percubaan yang betul dibuat, firewall dengan senang hati membuka pelabuhan yang ditutup.

Logik di belakang pelabuhan mengetuk adalah untuk melindungi sistem linux anda dari pengimbas pelabuhan automatik yang berjalan lancar untuk pelabuhan terbuka. Dalam panduan ini, kami meneliti bagaimana anda boleh memasang port mengetuk dan bagaimana anda boleh mengkonfigurasinya untuk mendapatkan perkhidmatan SSH. Untuk tujuan demonstrasi, kami akan menggunakan Ubuntu 18.04.

Langkah 1: Pasang dan konfigurasikan Knockd

Untuk memulakan, log masuk ke sistem Linux anda dan pasang Knockd Daemon seperti yang ditunjukkan.

$ sudo apt memasang knockd 

Setelah dipasang, buka Knockd.Conf konfigurasi dengan editor teks pilihan anda. Di sini, kami menggunakan editor teks baris arahan VIM.

$ sudo vim /etc /knockd.Conf 

Fail konfigurasi lalai muncul seperti berikut.

Fail Konfigurasi Knockd

Di bawah [OpenSsh] seksyen, kita perlu menukar urutan ketukan lalai - 7000,8000,9000 - kepada yang lain. Ini kerana nilai -nilai ini sudah diketahui dan dapat menjejaskan keselamatan sistem anda.

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

Dalam baris ketiga - bermula dengan perintah, ubah -A ke -I Hanya selepas /sbin/iptables perintah dan sebelum ini Input.

Dan akhirnya, di bawah [Closessh] seksyen, sekali lagi, tukar urutan lalai ke pilihan pilihan anda. Ini adalah urutan yang akan digunakan untuk menutup sambungan SSH sebaik sahaja pengguna selesai dan log keluar dari pelayan.

Inilah konfigurasi lengkap kami.

Tetapan Konfigurasi Knockd

Sebaik sahaja anda selesai, simpan perubahan dan keluar.

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

$ sudo vim/etc/lalai/knockd 
Tetapan konfigurasi knockd lalai

Cari garis Start_knockd = 0. Uncomment dan tetapkan nilai ke 1.

Seterusnya, menuju ke garisan Knockd_opts = "-i eth1" Uncomment dan ganti lalai eth1 nilai dengan antara muka rangkaian aktif sistem anda. Untuk memeriksa antara muka rangkaian anda, semak jalan addr IP atau perintah ifconfig.

Untuk sistem kami, ENP0S3 adalah kad rangkaian aktif.

Antara muka rangkaian aktif

Konfigurasi lengkap seperti yang ditunjukkan.

Nilai Konfigurasi Knockd

Simpan perubahan dan keluar.

Kemudian mulakan dan membolehkan Knockd Daemon seperti yang ditunjukkan.

$ sudo Systemctl Mula Knockd $ Sudo Systemctl Dayakan Knockd 

Untuk memeriksa status Knockd Daemon, jalankan arahan:

$ sudo systemctl status knockd 
Semak status knockd

Langkah 2: Tutup Port SSH 22 di Firewall

Sejak objektif Knockd Perkhidmatan adalah sama ada memberi atau menafikan akses kepada perkhidmatan SSH, kami akan menutup port SSH di firewall. Tetapi pertama, mari kita periksa status firewall UFW.

status $ sudo ufw bernombor 
Semak status UFW

Dari output, kita dapat melihatnya dengan jelas SSH pelabuhan 22 dibuka pada kedua -duanya IPv4 dan IPv6 Protokol bernombor 5 dan 9 masing -masing.

Kita perlu memadamkan kedua -dua peraturan ini seperti yang ditunjukkan, bermula dengan nilai tertinggi - iaitu 9.

$ sudo ufw hapus 9 $ sudo ufw padam 5 
Padam peraturan UFW

Sekarang, jika anda cuba log masuk dari jauh ke pelayan, anda akan mendapat ralat masa tamat sambungan seperti yang ditunjukkan.

SSH Timeout Connection

Langkah 3: Konfigurasikan klien ketukan untuk menyambung ke pelayan SSH

Dalam langkah terakhir, kami akan mengkonfigurasi pelanggan dan cuba log masuk dengan terlebih dahulu menghantar urutan ketukan yang kami konfigurasikan pada pelayan.

Tetapi pertama, pasang Knockd Daemon seperti yang anda lakukan di pelayan.

$ sudo apt memasang knockd 

Setelah pemasangan selesai, hantar urutan ketukan menggunakan sintaks yang ditunjukkan

$ knock -v server_ip knock_sequence 

Dalam kes kita, ini diterjemahkan ke:

$ knock -v 192.168.2.105 10005 10006 10007 

Anda harus mendapatkan output yang serupa dengan apa yang kita ada, bergantung pada urutan anda. Ini menunjukkan bahawa percubaan mengetuk berjaya.

Urutan mengetuk

Pada ketika ini, anda harus berada dalam kedudukan untuk berjaya log masuk ke pelayan menggunakan SSH.

Sambungkan ke pelayan menggunakan knockd

Sebaik sahaja anda selesai melakukan tugas anda di pelayan jauh, tutup port SSH dengan menghantar urutan ketukan penutupan.

$ knock -v 192.168.2.105 10007 10006 10005 

Sebarang percubaan untuk log masuk ke pelayan akan gagal seperti yang ditunjukkan.

Tutup pelabuhan SSH
Pemikiran penutupan

Ini membungkus panduan ini mengenai cara memanfaatkan pelabuhan mengetuk untuk menjamin perkhidmatan SSH di pelayan anda. Pendekatan yang lebih baik dan lebih mudah adalah untuk mengkonfigurasi kata laluan SSH pengesahan menggunakan pasangan utama SSH. Ini memastikan bahawa hanya pengguna dengan kekunci peribadi yang dapat mengesahkan dengan pelayan di mana kunci awam disimpan.