Langkau ke kandungan
Secret Knock

Sediakan pelayan fwknop

Kebenaran Paket Tunggal fwknop memastikan SSH kekal tertutup sehingga satu paket UDP yang disulitkan dan disahkan tiba. Langkah ini menyediakannya pada pelayan Debian atau Ubuntu; uji dahulu daripada komputer, kemudian tambahkan kekunci yang sama ke Secret Knock.

1. Pasang dan jana kekunci

Pasang pelayan dan klien, kemudian jana sepasang kekunci. Simpan output: dua kekunci yang sama dimasukkan ke dalam access.conf dan ke dalam Secret Knock.

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

2. Benarkan SSH untuk paket SPA

access.conf menetapkan perkara yang boleh dibuka oleh paket sah dan tempoh ia dibuka.

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. Beritahu fwknopd tempat untuk mendengar

fwknopd menangkap paket pada antara muka; ia tidak memerlukan port terbuka. Tetapkan antara muka yang digunakan oleh pelayan 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 lalai

Kekalkan sesi SSH terbuka semasa anda melakukan ini, dan uji daripada sambungan kedua sebelum anda log keluar. fwknopd memasukkan rantaian sendiri di bahagian atas INPUT dan menambahkan ACCEPT berhad masa di situ bagi setiap paket sah.

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

5. Uji, kemudian tambahkan Pintu

Mulakan semula fwknop-server, hantar paket daripada mesin lain dan 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]
Daripada komputer dengan fwknop-client
  1. 1Dalam Secret Knock: Pintu baharu › Mulakan daripada templat › fwknop, masukkan hos, dan tampalkan output fwknop --key-gen menggunakan Tampal kekunci.
  2. 2Ketuk; Pintu menunjukkan Pintu terbuka sedikit apabila port 22 menjawab.
  3. 3Jalankan fwknopd -f -v pada pelayan jika tidak — panduan penyelesaian masalah menyenaraikan punca lazim.

Semua contoh di GitHub → Setiap konfigurasi pada halaman ini, sedia untuk disalin: github.com/mobilcomm/secretknock-examples (domain awam).

Soalan

Adakah fwknopd memerlukan port terbuka?

Tidak. Ia membaca paket daripada antara muka rangkaian, jadi port SPA boleh kekal tertutup dalam firewall; paket hanya perlu sampai ke pelayan.

Panduan untuk persediaan anda