Παραδείγματα knockd.conf
Το knockd διαβάζει το /etc/knockd.conf: μια ενότητα [options] και μία ενότητα για κάθε πόρτα. Κάθε ενότητα περιλαμβάνει μια ακολουθία, ένα χρονικό όριο και την εντολή που θα εκτελεστεί για τη διεύθυνση που χτυπά, %IP%. Επιλέξτε δικές σας θύρες — μην επαναχρησιμοποιείτε ποτέ εκείνες των παραδειγμάτων.
Άνοιγμα SSH για λίγα δευτερόλεπτα
Η συνηθέστερη ρύθμιση: ένα χτύπημα ανοίγει το SSH και το knockd το κλείνει ξανά μετά το cmd_timeout. Οι συνεδρίες που έχετε ήδη ανοίξει συνεχίζουν να λειτουργούν, αν το τείχος προστασίας δέχεται εγκατεστημένες συνδέσεις.
[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 Ξεχωριστές ακολουθίες για άνοιγμα και κλείσιμο
Χωρίς χρονοδιακόπτη, η θύρα παραμένει ανοιχτή μέχρι να χτυπήσετε την ακολουθία κλεισίματος. Είναι βολικό, αλλά είναι εύκολο να το ξεχάσετε — προτιμήστε την έκδοση με χρονικό όριο.
[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 Ακολουθίες μίας χρήσης
Αντί για μία σταθερή ακολουθία, το knockd μπορεί να διαβάζει ένα αρχείο ακολουθιών και να δέχεται καθεμία μόνο μία φορά, ώστε ένα καταγεγραμμένο χτύπημα να μην μπορεί να επαναληφθεί. Το Secret Knock διατηρεί την ίδια λίστα και προχωρά στην επόμενη ακολουθία μετά από ένα χτύπημα που άνοιξε την πόρτα.
[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 Με nftables
Σε συστήματα με nftables, αφήστε το knockd να προσθέτει τη διεύθυνση σε ένα σύνολο με χρονικό όριο· ο οδηγός απόκρυψης SSH δείχνει τον αντίστοιχο πίνακα nftables.
[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 } Μετά την επεξεργασία
- 1Σε Debian και Ubuntu, ορίστε τη διεπαφή στην οποία ακούει το knockd στο /etc/default/knockd (KNOCKD_OPTS="-i eth0") και επανεκκινήστε το knockd.
- 2Παρακολουθήστε τη λειτουργία του με journalctl -u knockd -f ενώ χτυπάτε.
- 3Στο Secret Knock, + › Εισαγωγή από αρχείο μετατρέπει κάθε ενότητα με ακολουθία σε πόρτα· εισαγάγετε τις λίστες ακολουθιών μίας χρήσης με το χέρι.
Όλα τα παραδείγματα στο GitHub → Κάθε διαμόρφωση αυτής της σελίδας, έτοιμη για αντιγραφή: github.com/mobilcomm/secretknock-examples (κοινό κτήμα).
Ερωτήσεις
Πρέπει να χρησιμοποιώ βήματα TCP ή UDP;
Και τα δύο λειτουργούν. Ο συνδυασμός τους κάνει μια ακολουθία δυσκολότερο να προβλεφθεί από μια σάρωση θυρών. Τα βήματα UDP μπορούν να μεταφέρουν φορτίο δεδομένων στο Secret Knock, αν η ρύθμισή σας το ελέγχει.
Οδηγοί για τη διαμόρφωσή σας
- Το port knocking με απλά λόγια →
- knockd σε iPhone, iPad και Mac →
- fwknop SPA σε iPhone, Mac και Apple Watch →
- Χτύπημα θυρών MikroTik →
- Χτύπημα θυρών DrayTek Vigor →
- Απόκρυψη του SSH πίσω από χτύπημα θυρών →
- Port knocking στο Apple Watch →
- Γιατί ένα χτύπημα θύρας δεν ανοίγει →
- ρύθμιση διακομιστή fwknop →
- Port knocking, VPN ή fail2ban; →