Lewati ke konten
Secret Knock

Siapkan server fwknop

Otorisasi Paket Tunggal fwknop menjaga SSH tetap tertutup hingga satu paket UDP terenkripsi dan terautentikasi tiba. Langkah-langkah ini menyiapkannya pada server Debian atau Ubuntu; uji terlebih dahulu dari komputer, lalu tambahkan kunci yang sama ke Secret Knock.

1. Instal dan buat kunci

Instal server dan klien, lalu buat pasangan kunci. Simpan outputnya: dua kunci yang sama dimasukkan ke access.conf dan ke Secret Knock.

sudo apt install fwknop-server fwknop-client
fwknop --key-gen          # prints KEY_BASE64 and HMAC_KEY_BASE64
Debian / Ubuntu

2. Izinkan SSH untuk paket SPA

access.conf menentukan apa yang dapat dibuka oleh paket yang valid dan untuk berapa lama.

SOURCE              ANY
OPEN_PORTS          tcp/22
KEY_BASE64          <output of fwknop --key-gen>
HMAC_KEY_BASE64     <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT   30
/etc/fwknop/access.conf

3. Tentukan tempat fwknopd mendengarkan

fwknopd menangkap paket pada sebuah antarmuka; fwknopd tidak memerlukan port terbuka. Atur antarmuka yang digunakan server Anda.

# /etc/fwknop/fwknopd.conf
PCAP_INTF               eth0;
PCAP_FILTER             udp port 62201;
MAX_SPA_PACKET_AGE      120;
/etc/fwknop/fwknopd.conf

4. Tutup SSH secara default

Biarkan sesi SSH tetap terbuka saat melakukan ini, dan uji dari koneksi kedua sebelum Anda keluar. fwknopd menyisipkan chain-nya sendiri di bagian atas INPUT dan menambahkan ACCEPT berjangka waktu di sana untuk setiap paket yang valid.

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
iptables

5. Uji, lalu tambahkan pintu

Mulai ulang fwknop-server, kirim paket dari mesin lain, lalu sambungkan:

# from another machine: request SSH for the address the server sees (-R)
fwknop -A tcp/22 -R -D server.example.com \
    --key-base64-rijndael "<KEY_BASE64>" --key-base64-hmac "<HMAC_KEY_BASE64>"
ssh [email protected]
Dari komputer dengan fwknop-client
  1. 1Di Secret Knock: Pintu baru › Mulai dari templat › fwknop, masukkan host, lalu tempelkan output fwknop --key-gen dengan Tempel kunci.
  2. 2Ketuk; pintu menampilkan Pintu terbuka sedikit saat port 22 merespons.
  3. 3Jalankan fwknopd -f -v di server jika tidak — panduan pemecahan masalah mencantumkan penyebab yang umum.

Semua contoh di GitHub → Setiap konfigurasi di halaman ini, siap disalin: github.com/mobilcomm/secretknock-examples (domain publik).

Pertanyaan

Apakah fwknopd memerlukan port terbuka?

Tidak. fwknopd membaca paket dari antarmuka jaringan, sehingga port SPA dapat tetap tertutup di firewall; paket hanya perlu mencapai server.

Panduan untuk pengaturan Anda