Lewati ke konten
Secret Knock

Sembunyikan SSH di balik port knocking

Port SSH yang terbuka mengumpulkan upaya login dari seluruh internet. Port knocking menjaga port tetap tertutup sampai Anda membuktikan bahwa Anda mengetahui rahasia — lalu membukanya hanya untuk alamat Anda, selama beberapa detik.

Dengan knockd dan nftables

Tolak SSH secara default dan terima hanya dari alamat dalam sebuah set dengan batas waktu. knockd menambahkan alamat yang melakukan ketukan ke set tersebut; nftables menghapusnya saat batas waktu berakhir, dan sesi SSH yang sudah terhubung tetap 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 (kutipan)

Bagian 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

Pisahkan akses permanen

Jika Anda juga mengizinkan beberapa alamat secara permanen, simpan alamat tersebut dalam set terpisah tanpa batas waktu. Menambahkan alamat yang sudah berada dalam set berbatas waktu tidak mengatur ulang batas waktunya, jadi mencampurkan kedua jenis entri dalam satu set dapat membuat Anda terkunci saat waktu habis.

Atau gunakan fwknop

SPA fwknop lebih kuat daripada urutan: satu paket terenkripsi dan terautentikasi yang tidak dapat diputar ulang. Lihat panduan fwknop.

Dari iPhone Anda ke SSH

  1. 1Tahan pengetuk kuningan. Secret Knock memeriksa bahwa port 22 merespons dan menampilkan berapa lama port tetap terbuka.
  2. 2Buka SSH membuka app SSH Anda dengan tautan ssh:// untuk server.
  3. 3Opsi “Jaga pintu tetap terbuka saat halamannya ditampilkan” mengirim ketukan lagi sesaat sebelum jendela waktu berakhir, selama pintu ditampilkan di layar.

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

Pertanyaan

Apakah ini pengganti kunci SSH?

Tidak. Port knocking menyembunyikan layanan; tetap gunakan kunci SSH yang kuat dan nonaktifkan login dengan kata sandi.

Panduan untuk pengaturan Anda