Langkau ke kandungan
Secret Knock

Sembunyikan SSH di sebalik ketukan port

Port SSH yang terbuka mengumpulkan cubaan log masuk dari seluruh internet. Ketukan port memastikan port tertutup sehingga anda membuktikan bahawa anda mengetahui rahsia — kemudian membukanya hanya untuk alamat anda, selama beberapa saat.

Dengan knockd dan nftables

Gugurkan SSH secara lalai dan terimanya hanya daripada alamat dalam set yang mempunyai tamat masa. knockd menambahkan alamat yang mengetuk ke dalam set itu; nftables mengalih keluarnya apabila tamat masa berakhir, dan sesi SSH yang telah diwujudkan terus berfungsi.

table inet filter {
    set knocked4 {
        type ipv4_addr
        flags timeout
    }
    chain input {
        type filter hook input priority 0; policy drop;
        ct state established,related accept
        iif "lo" accept
        tcp dport 22 ip saddr @knocked4 accept
    }
}
/etc/nftables.conf (petikan)

Bahagian knockd yang mengisi set:

[openSSH]
    sequence      = 7311:tcp,8822:tcp,9133:udp
    seq_timeout   = 10
    tcpflags      = syn
    start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s }
/etc/knockd.conf

Asingkan akses kekal

Jika anda turut membenarkan sesetengah alamat secara kekal, simpannya dalam set berasingan tanpa tamat masa. Menambahkan alamat yang sudah berada dalam set bertempoh tidak menetapkan semula tamat masanya, jadi mencampurkan kedua-dua jenis entri dalam satu set boleh mengunci anda keluar apabila pemasa tamat.

Atau gunakan fwknop

fwknop SPA lebih kukuh daripada urutan: satu paket yang disulitkan dan disahkan yang tidak boleh diulang siar. Lihat panduan fwknop.

Daripada iPhone anda ke SSH

  1. 1Tekan dan tahan pengetuk pintu loyang. Secret Knock menyemak bahawa port 22 memberikan jawapan dan menunjukkan tempoh ia kekal terbuka.
  2. 2Buka SSH membuka app SSH anda dengan pautan ssh:// untuk pelayan.
  3. 3Pilihan “Pastikan pintu terbuka semasa skrinnya aktif” menghantar ketukan sekali lagi secara automatik sejurus sebelum tempoh berakhir, semasa pintu dipaparkan pada skrin.

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

Soalan

Adakah ini menggantikan kekunci SSH?

Tidak. Ketukan port menyembunyikan perkhidmatan; teruskan menggunakan kekunci SSH yang kukuh dan nyahdayakan log masuk kata laluan juga.

Panduan untuk persediaan anda