แแแแแแแก, แแแกแแช แฃแแแ แแแแฌแแแแก แกแแแฃแแแ แแแแก, แกแแงแแแ แแ แแแแแแแแแแก, แฌแแแแแ แแแก แกแแ แแแ แแแแ แแกแแคแแแแก แแแแแกแแแแ แ แแแแแแแแแ SSH/RDP/แกแฎแแ, แแแขแแ แ RTFM/spur-แแก แกแแจแฃแแแแแแ.
แฉแแแ แฃแแแ แแแแแแแแแ VPN แแ แกแฎแแ แแแ แแแแก แแ แกแแกแขแแแแแแแก แแแ แแจแ, แฎแแแ แแ แกแแแฃแแ แแแแแกแแแแ แ แแแฌแงแแแแแแแแแแ.
แแ แแกแ, แ แแ แกแแ แแแ แแแ แแแแแแขแ แแแ แฏแแจแ แแ แแแแแฌแแแ.
แงแแแแแคแแ แ แ แแช แแฅแแแ แแญแแ แแแแแ แแแแกแแแแก แแ แแก
"แงแแแแแคแแ แ แแแขแแ แแแขแจแแ", แ แ แแฅแแ แฃแแแ (แแฃแแแแช
แฉแแแ แแแแแ แฏแแจแแแ Fedora/CentOS-แแก แแแแแแแแแก แแแแแงแแแแแแก, แแแแ แแ แแแแก แแ แแฅแแก แแแแจแแแแแแแ.
Spur แแแแแฃแแแแแแแ แ แแแแ แช แแแแฌแงแแแแแแแแก, แแกแแแ แแฅแกแแแ แขแแแแกแแแแก แแ แกแแแแแฎแจแ, แแแแขแแ แแฅแแแแ แแแแแแขแแ แแแ, แแแแ แแ แแกแแแ แฃแคแ แ แแแแแ แแฅแแแแ.
1. แกแแ แแแ แ
-
แแแแแแกแขแแแแ แแ knock-server:
yum/dnf install knock-server
-
แแแแแแแคแแแฃแ แแ แแ แแแ (แแแแแแแแแ ssh-แแ) - /etc/knockd.conf:
[options] UseSyslog interface = enp1s0f0 [SSHopen] sequence = 33333,22222,11111 seq_timeout = 5 tcpflags = syn start_command = iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT cmd_timeout = 3600 stop_command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT [SSHclose] sequence = 11111,22222,33333 seq_timeout = 5 tcpflags = syn command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
"แแแฎแกแแแก" แแแฌแแแ แแแงแแแแแฃแแแ แแแขแแแแขแฃแ แแแฎแฃแ แแแแ 1 แกแแแแแก แจแแแแแ. แฒแ แแกแแแแก แแชแ...
-
/etc/sysconfig/iptables:
... -A INPUT -p tcp -m state --state NEW -m tcp --dport 11111 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22222 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 33333 -j ACCEPT ...
-
แฌแแ:
service iptables restart service knockd start
-
แจแแแแซแแแแ แแแแแแขแแ RDP แแแ แขแฃแแแฃแ Windows แกแแ แแแ แแ, แ แแแแแแช แขแ แแแแแแก แจแแแแแ (/etc/knockd.conf; แฉแแแแแชแแแแ แแแขแแ แคแแแกแแก แกแแฎแแแ แแฅแแแแ แแแแแแแแแแ):
[RDPopen] sequence = 44444,33333,22222 seq_timeout = 5 tcpflags = syn start_command = iptables -t nat -A PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2 cmd_timeout = 3600 stop_command = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2 [RDPclose] sequence = 22222,33333,44444 seq_timeout = 5 tcpflags = syn command = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2
แฉแแแ แงแแแแ แฉแแแแก แแแ แขแงแแแก แแแแแแขแแกแแแ แกแแ แแแ แแ แแแแแแขแ แแแแแ แแ แซแแแแแแ
iptables -S
.
2. แแแแแแแแแแ แ แแแ
knockd.conf:
แแแแ แแกแแแ แจแแแชแแแก แงแแแแแคแแ แก (แแแแ แแ แแก แแ แแแฃแกแขแแ), แแแแ แแ knockd แแ แแก แแแแแแแ แ, แ แแแแแแช แกแแแแแแ แซแฃแแฌแแ แจแแขแงแแแแแแแแแจแ, แแแแขแแ แซแแแแแ แคแ แแฎแแแแ แฃแแแ แแงแแ.
- แแแ แกแแ
Fedora/CentOS แกแแชแแแแแจแ, แฃแแฎแแแกแ แแแ แขแงแแ แแฆแแแกแแแแก แแ แแก 0.63. แแแกแแช แกแฃแ แก UDP - แแแซแแแแแ 0.70 แแแแแขแ. - แแแขแแ แคแแแกแ
แแแแฃแแแกแฎแแแแ Fedora/CentOS แแแแคแแแฃแ แแชแแแจแ แแก แฎแแแ แแ . แแแแแแขแแ แฎแแแแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แแ แแแแแแแแแ. - แแ แแแก แแแแฌแฃแ แแ
แแฅ แจแแแแซแแแแ แแแ แฉแแแ แแฅแแแแ แแแแแแแแแแก แแแฎแแแแแ. แแฃแชแแแแแแแแ, แ แแ แแแแแแขแก แฐแฅแแแแแก แกแแแแแ แแกแ แแ แ แงแแแแ แแแ แขแงแแแกแแแแก - แแ แแแ แขแแก แกแแแแแ แแก แแแขแ แแแคแฃแญแแแแ (แแ 146% แกแแแแแ แแแก). - แแแฌแงแแแ / แแแฉแแ แแแ / แแ แซแแแแแ.
แแฃ แแ แแก แแ แแ แแ แซแแแแแ, แแแจแแ แแ แซแแแแแ, แแฃ แแ แแก แแ แ, แแแจแแ start_command+stop_command.
แแฃ แจแแชแแแแแก แแแฃแจแแแแ, แแแแฃแแ แฉแฃแแแ แแแ แฉแแแ, แแแแ แแ แแ แแแฃแจแแแแแก. - แแ แแขแ
แแแแ แแฃแแแ, UDP แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก. แแ แแฅแขแแแแจแ แแ แจแแแฃแ แแ tcp แแ udp แแ แแแแแแขแแ แแแแแก แกแแแแแแ แแแแ แแฎแแแแ แแแฎแฃแแแ แจแแซแแ แแแ แแแญแแก แแแฆแแแ. แแแแก แแแแ, แ แแ TCP แแแแแแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แแแแ แแ UDP แแ แแ แแก แคแแฅแขแ. แแแแ แแ แแก แแกแแ แแแแแแแแแแก แกแแแแแฎแแ. - แแแแแแแแแแ แแแ
แแแแฃแแแกแฎแแแแ แ แแแ แแ แแก แแก, แ แแ แแแแแแแ แแแแแ แแ แฃแแแ แแแแแแแแแแแก... แ แแแแ แแแแแงแแแแ แแก...
แแแแแแแแแ, แแก:
open: 11111,22222,33333
close: 22222,11111,33333
แแแ แขแงแแแ 11111 แแแฎแกแแ แแแแแแแแแ แจแแแแแ แแแ แขแงแแแก 22222-แแ. แแฃแแชแ แแ (22222) แแแ แขแงแแแก แจแแแแแ แแก แแแแฌแงแแแก แแฃแจแแแแแก แแฎแแแก แแ แงแแแแแคแแ แ แแแแจแแแแ. แแก แแกแแแ แแแแแแแแแแฃแแแ แแแแแแขแแก แแแแแแแแแแแแ. แแกแแแ แ แแ ยฉ.
iptables
แแฃ /etc/sysconfig/iptables-แจแ แแก แแ แแก:
*nat
:PREROUTING ACCEPT [0:0]
แแก แแแแแแแแแ แแ แแแแฌแฃแฎแแแก, แแกแ แ แแ:
*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited
แฎแแแก แฃแจแแแก.
แแแแแแแแ knockd แแแแขแแแก แฌแแกแแแก INPUT แฏแแญแแแก แแแแแก, แฉแแแ แแแแแฆแแแ แฃแแ แงแแคแแก.
แแ แแ แฃแแ แแก แแแแแ แแแ แแแจแแแแก แแแแฅแแแแก แแแฎแกแแแก แงแแแแ แฅแแ แแกแแแแก.
แแแแกแแแแก, แ แแ iptables-แจแ แแ แแแแแแ แแแ, แ แ แฉแแกแแแ แแแ แ แ แ (แแกแแแ
- แแแแฃแแแกแฎแแแแ CentOS/Fedora-แแ แแแ แแแแ แฌแแกแ (โแ แแช แแ แแ แแก แแแ แซแแแฃแแ แแแแแแแ แแฃแแแโ) แจแแแชแแแแแ แกแแแแ แแกแแแ แแ,
- แแ แฉแแแ แแฎแกแแแ แแแแ แฌแแกแก.
แจแแแแแ แฃแแแ แแงแแก:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
แแฅแแแ, แ แ แแฅแแ แฃแแแ, แจแแแแซแแแแ แแแแแแแแ REJECT DROP-แแก แแแชแแแแ, แแแแ แแ DROP-แแ แชแฎแแแ แแแ แฃแคแ แ แกแแฎแแแแกแ แแฅแแแแ แแแขแแแแกแแแแก.
3. แแแแแแขแ
แแก แแแแแแ แงแแแแแแ แกแแแแขแแ แแกแแ (แฉแแแ แแแแแแกแแฎแแแแแแ), แแแแแแแแ แแฅแแแ แแญแแ แแแแแ แแฃแจแแแแ แแ แ แแฎแแแแ แแแแแกแแแแ แ แแแแแแแแ, แแ แแแแ แแแแแกแแแแ แ แแแฌแงแแแแแแแแแแ.
แแ แแแชแแแจแ, แ แแแแแแแแ แแแแแแขแแ แฉแแแแแแแแแ
แแแแแแขแแก แแ แฉแแแแกแแก, แแฅแแแ แฃแแแ แแแ แฌแแฃแแแแ, แ แแ แแแ แแฎแแ แก แฃแญแแ แก แแแแแขแแแก แจแแ แแก แแแงแแแแแแแก แแแ แแแแขแก. แแแแฎ, แแ แกแแแแแก แแแแกแฎแแแแแแแแ แแแแแแแก แจแแ แแก แแ 100 แแแแแแแขแ แแ แแกแแแแก แแซแแแแ แแแ แแแขแแแก, แ แแ แแแแแขแแแ แฉแแแแแ แกแฌแแ แ แแแแแแแแแแ แแแแ, แกแแญแแ แ แแ แแก, แแแชแแแฃแแ แแแแแแแแแ.
แแแแฎ, แแแแแแขแแก แแแงแแแแแแกแแก แแฅแแแ แแแแแ แฃแแแ แแแ แฉแแแ แจแแคแแ แฎแแแ. แซแแแแแ แแแแ แ แขแแแแแฃแขแ - แแแขแแแ แแแแก แแแแกแฎแแแแแแ, แซแแแแแ แชแแขแ - แแแแแแขแก แแ แ แแ แแฅแแแแ. แซแแแแแ แแแแ แจแแคแแ แฎแแแ - แแแแแแขแ แแแแก แแ แแฃแแแ แแแ แแแแฆแฌแแแก, แแ แแฅแแแแ แแแแแขแแแแก แแแแคแแแฅแขแ (แแฎ. โแ แแแแแโ), แซแแแแแ แชแแขแ - แแแแแขแแแ แแแแแแ แแแแ แแแขแแ แแแขแจแ.
แแ แแแก แแแแฌแฃแ แแแ=5แฌแ, แแแแแแแแแแแ=100..500ms แแ แแก แกแ แฃแแแแ แแแฅแแแแ แแแ แแแแขแ
Windows
แ แแช แแ แฃแแแ แกแแกแแชแแแแ แแฆแแ แแแก, แกแแแแแแ แแ แแขแ แแแแแแฃแ แแ Google-แจแ แแ แแแแขแคแแ แแแก แแแแคแแ แแแ แขแงแแแก แแแแแแขแ. แแกแแแ, แ แแ CLI แแฎแแ แก แฃแญแแ แก แแแงแแแแแแแก, TCP - แแ แแจแแแแแแแแก แแแ แแจแ.
แแแ แแ แแแแกแ, แจแแแแซแแแแ แกแชแแแแ
Linux
แแฅ แงแแแแแคแแ แ แแแ แขแแแแ:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
MacOS
แฃแแแ แขแแแแกแ แแแแ แแแ แขแแก แแแงแแแแแ homebrew-แแแ:
brew install knock
แแ แแแฎแแแแ แกแแญแแ แ แกแฃแ แแแแแแก แคแแแแแแ แแ แซแแแแแแแแกแแแแก, แ แแแแ แแชแแ:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
iOS
แกแแแฃแจแแ แแแ แแแแขแแ KnockOnD (แฃแคแแกแ, แแแฆแแแแแแแ).
Android
"แแแแแแแฃแแ แแแ แขแแแแ" แแ แ แ แแแแแแ, แแแแ แแ แฃแแ แแแแ แแฃแจแแแแก. แแ แแแแแแแแแ แแแ แกแแแแแแ แ แแแแแ แแแแ.
PS แจแแแแจแแแ แฐแแแ แแแ, แ แ แแฅแแ แฃแแแ, แฆแแแ แแแ แแแแแชแแก แแแ แแแแกแแ...
Upd1: แแแแแแแ
Upd2: แฒกแฎแแ
แฌแงแแ แ: www.habr.com