port knocking
Bardzo ciekawą rzeczą, nieznaną jeszcze przez wiele osób jest technika port knockingu. Umożliwia ona, za sprawą wysłanej sekwencji pakietów (puknięć) do hosta, zdalne wykonanie wcześniej zdefiniowanego polecenia na wspomnianym hoscie, bez logowania się na niego. Niby nic nadzwyczajnego, ale ciekawą sprawą jest możliwość zdefiniowania sekwencji puknięć, które np. uruchamiają jakąś usługę, bez konieczności otwierania portów, na które przychodzi puknięcie.
Klasycznym zastosowaniem tego rozwiązania jest udostępnianie ssh na serwerze, wyłącznie gdy zachodzi taka potrzeba. Istnieje przynajmniej kilka implementacji tej techniki. Ja proponuję na początek projekt knock. Po zainstalowaniu demona knockd, w Ubuntu robimy to przez zwykłe
# apt-get install knockd
przechodzimy do jego konfiguracji.
logfile = syslog
logfile, chyba nie wymaga komentarza, ustawienie tego parametru na syslog spowoduje, że demon będzie pisać do sysloga.
sequence = 7000,8000,9000
sequence, to sekwencja, określająca porty, na które mają zostać wysłane puknięcia. Można też podać typ pakietów TCP i/lub UDP.
seq_timeout = 5
seq_timeout, czas w sekundach, w jakim musi zmieścić się sekwencja pukania.
command = /sbin/iptables -A INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
command, polecenie systemowe jakie ma zostać wykonane
tcpflags = syn
tcpflags, knockd ma zwracać uwagę tylko na pakiety, z flagą podaną w tym parametrze.
Ostatecznie plik konfiguracyjny wygląda następująco
# cat /etc/knockd.conf
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
gdzie %IP% to IP maszyny, która wykonuje pukanie. W ten sposób wysyłając sekwencję pakietów tcp z ustawiona flagą syn na porty 7000,8000,9000 otworzymy dla siebie furtkę w firewallu na port 22, a zamkniemy ją wysyłając sekwencję pakietów na porty 9000,8000,7000. Do wysyłania sekwencji puknięć możemy wykorzystać np. SendIP, klienta knock lub dla Windowsa knockknock.
Polecam też stronę o port knockingu http://portknocking.org/. Nie twierdzę, że port knocking wpływa rewelacyjnie na poprawę bezpieczeństwa, jest jednak interesującą techniką, której warto się przyjrzeć.

No Comments, Comment or Ping
Reply to “port knocking”