İçeriğe atla
Secret Knock

knockd.conf örnekleri

knockd, /etc/knockd.conf dosyasını okur: bir [options] bölümü ve her kapı için bir bölüm. Her bölümde bir dizi, bir zaman sınırı ve tıklatan adres %IP% için çalıştırılacak komut bulunur. Kendi bağlantı noktalarınızı seçin — örneklerdeki bağlantı noktalarını asla yeniden kullanmayın.

SSH'yi birkaç saniyeliğine açma

En yaygın kurulum: bir tıklatma SSH'yi açar ve knockd, cmd_timeout sonrasında yeniden kapatır. Güvenlik duvarı kurulmuş bağlantıları kabul ediyorsa, daha önce açtığınız oturumlar çalışmaya devam eder.

[options]
    UseSyslog

[openSSH]
    sequence      = 7311:tcp,8822:tcp,9133:udp
    seq_timeout   = 10
    tcpflags      = syn
    start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    cmd_timeout   = 10
    stop_command  = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
/etc/knockd.conf

Açmak ve kapatmak için ayrı diziler

Zamanlayıcı olmadan bağlantı noktası, kapatma dizisini tıklatana kadar açık kalır. Kullanışlıdır, ancak unutması kolaydır — zaman sınırlı sürümü tercih edin.

[options]
    UseSyslog

[openSSH]
    sequence    = 7311:tcp,8822:tcp,9133:udp
    seq_timeout = 10
    tcpflags    = syn
    command     = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

[closeSSH]
    sequence    = 9133:udp,8822:tcp,7311:tcp
    seq_timeout = 10
    tcpflags    = syn
    command     = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
/etc/knockd.conf

Tek kullanımlık diziler

Tek bir sabit dizi yerine knockd, diziler içeren bir dosyayı okuyabilir ve her birini yalnızca bir kez kabul edebilir; böylece kaydedilmiş bir tıklatma yeniden oynatılamaz. Secret Knock aynı listeyi korur ve kapıyı açan bir tıklatmadan sonra sonraki diziye geçer.

[openSSH]
    one_time_sequences = /etc/knockd/ssh_sequences
    seq_timeout        = 10
    tcpflags           = syn
    start_command      = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    cmd_timeout        = 10
    stop_command       = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

# /etc/knockd/ssh_sequences — one sequence per line, each used once
2222:udp,3333:tcp,4444:udp
5555:tcp,6666:udp,7777:tcp
8888:udp,9999:tcp,1111:tcp
/etc/knockd.conf ve dizi dosyası

nftables ile

nftables bulunan sistemlerde, knockd'nin adresi zaman aşımlı bir kümeye eklemesine izin verin; SSH'yi gizleme kılavuzunda karşılık gelen nftables tablosu gösterilir.

[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

Düzenledikten sonra

  1. 1Debian ve Ubuntu'da, knockd'nin dinleyeceği arabirimi /etc/default/knockd içinde ayarlayın (KNOCKD_OPTS="-i eth0") ve knockd'yi yeniden başlatın.
  2. 2Tıklatırken journalctl -u knockd -f ile çalışmasını izleyin.
  3. 3Secret Knock'ta + › Dosyadan içe aktar, dizisi olan her bölümü bir kapıya dönüştürür; tek kullanımlık dizi listelerini elle girin.

GitHub’daki tüm örnekler → Bu sayfadaki tüm yapılandırmalar, kopyalamaya hazır: github.com/mobilcomm/secretknock-examples (kamu malı).

Sorular

TCP mi yoksa UDP adımları mı kullanmalıyım?

Her ikisi de çalışır. İkisini karıştırmak, bir bağlantı noktası taramasından diziyi tahmin etmeyi zorlaştırır. Kurulumunuz denetliyorsa UDP adımları Secret Knock'ta bir yük taşıyabilir.

Kurulumunuza yönelik kılavuzlar