Uruchamianie skryptów po podaniu sekwencji na porty IP
Ostatnia zmiana: 2013-11-26 18:43
Knockd jest programem pozwalającym na uruchomienie programu lub skryptu po próbie określonych połączeń na porty IP. Przykładowe zastosowanie: domyślnie mamy zabroniony dostęp do ssh na serwerze. Przez wykonanie odpowiedniej sekwencji zapytań można odblokować dostęp.
Instalacja
# opkg update
# opkg install knockd
Konfiguracja
Zawarta jest w pliku
/etc/knockd.conf. Jego przykładowa konfiguracja może wyglądać następująco:
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 15
command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 15
command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
Uruchomienie
Uruchomienie demona na przykładowym interfejsie wan (który w tym przykładzie był to eth1).
Testowanie
Przy takiej konfiguracji po "zastukaniu" na port 7000, 8000, 9000 powinien nam się otworzyć dostęp na port 22 (ssh). Po "zastukaniu" na port 9000, 8000, 7000 zaś ponownie się zamknąć. Fizycznie można to wykonać poleceniami:
$ telnet ip_serwera 7000
$ telnet ip_serwera 8000
$ telnet ip_serwera 9000
Po każdym telnecie połączenie zamknie się samo. Na całą sekwencję mamy 15s wg konfiguracji. W pliku logu (
/var/log/knockd.log) jest informacja o działaniu programu. W niektórych przypadkach może okazać się potrzeba otworzenia na firewallu zdefiniowanych portów (7000, 8000 i 9000).