เชเซเช เชชเซเชคเชพเชจเซ, เชคเซเชฎเชจเชพ เชชเซเชฐเชฟเชฏเชเชจเซเชจเซ, SSH/RDP/เช เชจเซเชฏ, เชเช เชจเชพเชจเซเช RTFM/spur เชฆเซเชตเชพเชฐเชพ เชตเชฟเชถเซเชตเชฎเชพเช เชเชฎเซ เชคเซเชฏเชพเชเชฅเซ เชคเซเชฎเชจเชพ เชธเชฐเซเชตเชฐเชจเซ เชเชเซเชธเซเชธ เชธเชพเชฅเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชฎเชพเชฐเซ VPN เช เชจเซ เช เชจเซเชฏ เชเชเช เช เชจเซ เชธเชฟเชธเซเชเซ เชตเชเชฐ, เชนเชพเชฅ เชชเชฐเชจเชพ เชเซเชเชชเชฃ เชเชชเชเชฐเชฃเชฅเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชจเซ เชคเซเชฅเซ เชคเชฎเชพเชฐเซ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ เชตเชงเชพเชฐเซ เชเชธเชฐเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ.
เชคเชฎเชพเชฐเซ เช เชฎเชพเชเซ เชเชฐเซเชฐ เชเซ
"เชฌเชงเซเช เชเชจเซเชเชฐเชจเซเช เชชเชฐ เชเซ," เช
เชฒเชฌเชคเซเชค (เชชเชฐ เชชเชฃ
เช เชฎเซ เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ Fedora/CentOS เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชฐเซเชเซเชเชฟเชธ เชเชฐเซเชถเซเช, เชชเชฐเชเชคเซ เชคเซเชจเชพเชฅเซ เชเซเช เชซเชฐเช เชชเชกเชคเซ เชจเชฅเซ.
เชธเซเชชเซเชฐ เช เชฌเชพเชฌเชคเชฎเชพเช เชจเชตเชพ เชจเชฟเชถเชพเชณเซเชฏเชพ เช เชจเซ เชจเชฟเชทเซเชฃเชพเชคเซ เชฌเชเชจเซ เชฎเชพเชเซ เชฏเซเชเซเชฏ เชเซ, เชคเซเชฅเซ เชคเซเชฏเชพเช เชเชฟเชชเซเชชเชฃเซเช เชนเชถเซ, เชชเชฐเชเชคเซ เชคเซ เชเซเชเชเซ เชนเชถเซ.
1. เชธเชฐเซเชตเชฐ
-
เชจเซเช-เชธเชฐเซเชตเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ:
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 เชเชฎเซเชฐเซ เชถเชเซ เชเซ (/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 เชฐเชฟเชชเซเชเซเชเชฐเซเชเชฎเชพเช, เชเช เชฎเชพเชเซ เชจเชตเซเชจเชคเชฎ knockd 0.63 เชเซ. เชฏเซเชกเซเชชเซ เชเซเชจเซ เชเซเชเช เชเซ - 0.70 เชชเซเชเซเชเซ เชฎเชพเชเซ เชเซเช. - เชเชจเซเชเชฐเชซเซเชธ
เชฎเซเชณเชญเซเชค Fedora/CentOS เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เช เชฒเซเชเซ เชเซเช. เชคเชฎเชพเชฐเชพ เชนเชพเชฅเชฅเซ เชเชฎเซเชฐเซ, เช เชจเซเชฏเชฅเชพ เชคเซ เชเชพเชฎ เชเชฐเชถเซ เชจเชนเซเช. - เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ
เช เชนเซเช เชคเชฎเซ เชคเชฎเชพเชฐเชพ เชธเซเชตเชพเชฆ เช เชจเซเชธเชพเชฐ เชชเชธเชเชฆ เชเชฐเซ เชถเชเซ เชเซ. เชคเซ เชเชฐเซเชฐเซ เชเซ เชเซ เชเซเชฒเชพเชฏเชเช เชชเชพเชธเซ เชคเชฎเชพเชฎ เชเชฟเชเซเชธ เชฎเชพเชเซ เชชเซเชฐเชคเซ เชธเชฎเชฏ เชนเซเชฏ - เช เชจเซ เชชเซเชฐเซเช เชธเซเชเซเชจเชฐ เชฌเซเช เชคเซเชเซ เชเชถเซ (เช เชจเซ 146% เชธเซเชเซเชจ เชเชฐเชถเซ). - เชธเซเชเชพเชฐเซเช/เชธเซเชเซเชช/เชเชฎเชพเชจเซเชก.
เชเซ เชเช เชเชฆเซเชถ เชนเซเชฏ, เชคเซ เชเชฆเซเชถ, เชเซ เชคเซเชฏเชพเช เชฌเซ เชนเซเชฏ, เชคเซ start_command+stop_command.
เชเซ เชคเชฎเซ เชญเซเชฒ เชเชฐเซ เชเซ, เชคเซ knockd เชเซเชช เชฐเชนเซเชถเซ, เชชเชฐเชเชคเซ เชเชพเชฎ เชเชฐเชถเซ เชจเชนเซเช. - เชชเซเชฐเซเชเซ
เชธเซเชฆเซเชงเชพเชเชคเชฟเช เชฐเซเชคเซ, 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
เชคเชฎเซ, เช เชฒเชฌเชคเซเชค, DROP เชจเซ เชฌเชฆเชฒเซ REJECT เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ DROP เชธเชพเชฅเซ เชเซเชตเชจ เชฌเซเชเซ เชฎเชพเชเซ เชตเชงเซ เชฎเชจเซเชฐเชเชเช เชฌเชจเชถเซ.
3. เชเซเชฒเชพเชฏเชจเซเช
เช เชธเซเชฅเชพเชจ เชธเซเชฅเซ เชฐเชธเชชเซเชฐเชฆ เชเซ (เชฎเชพเชฐเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ), เชเชพเชฐเชฃ เชเซ เชคเชฎเชพเชฐเซ เชซเชเซเชค เชเซเชเชชเชฃ เชฌเซเชเชฅเซ เช เชจเชนเซเช, เชชเชฃ เชเซเชเชชเชฃ เชเชชเชเชฐเชฃเชฅเซ เชชเชฃ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชธเซเชฆเซเชงเชพเชเชคเชฟเช เชฐเซเชคเซ, เชธเชเชเซเชฏเชพเชฌเชเชง เชเซเชฐเชพเชนเชเซ เชธเซเชเชฟเชฌเชฆเซเชง เชเซ
เชเซเชฒเชพเชฏเชเช เชชเชธเชเชฆ เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชคเซ เชชเซเชเซเชเซ เชตเชเซเชเซเชจเชพ เชตเชฟเชฒเชเชฌเชจเชพ เชตเชฟเชเชฒเซเชชเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ. เชนเชพ, เชฆเชฐเชฟเชฏเชพเชเชฟเชจเชพเชฐเชพ เช เชจเซ 100 เชฎเซเชเชพเชฌเชฟเช เชตเชเซเชเซเชจเชพ เชคเชซเชพเชตเชคเซ เชเซ เชเซ เชเชชเซเชฒ เชธเซเชฅเชพเชจเซเชฅเซ เชฏเซเชเซเชฏ เชธเชฎเชฏเซ เชฏเซเชเซเชฏ เชเซเชฐเชฎเชฎเชพเช เชชเซเชเซเชเซเชธ เชเชตเชถเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชชเชคเซ เชจเชฅเซ.
เช เชจเซ เชนเชพ, เชเซเชฒเชพเชฏเชเช เชธเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ เชตเชฟเชฒเชเชฌ เชเชพเชคเซ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเซเชฌ เช เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ - เชฌเซเชเซ เชนเซเชฎเชฒเซ เชเชฐเชถเซ, เชเซเชฌ เชเชเซ - เชเซเชฒเชพเชฏเชเช เชชเชพเชธเซ เชธเชฎเชฏ เชจเชนเซเช เชนเซเชฏ. เชเซเชฌ เช เชตเชฟเชฒเชเชฌ - เชเซเชฒเชพเชฏเชเช เชคเซเชจเซ เชธเชฎเชฏเชธเชฐ เชฌเชจเชพเชตเชถเซ เชจเชนเซเช เช เชฅเชตเชพ เชฎเซเชฐเซเช เชฒเซเชเซเชจเซ เชธเชเชเชฐเซเชท เชฅเชถเซ (เชเซเช "เชฐเซเช"), เชเซเชฌ เชเชเชพ - เชชเซเชเซเชเซ เชเชจเซเชเชฐเชจเซเช เชชเชฐ เชเซเชตเชพเช เชเชถเซ.
เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ=5s เชธเชพเชฅเซ, เชตเชฟเชฒเชเชฌ=100..500ms เช เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชตเชฟเชเชฒเซเชช เชเซ
เชตเชฟเชจเซเชกเซเช
เชญเชฒเซ เชคเซ เชเชฎเซ เชคเซเชเชฒเซเช เชฐเชฎเซเชเซ เชฒเชพเชเซ, เชคเซ Google เชฎเชพเชเซ เช เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชฎเชพเชเซ เชธเซเชชเชทเซเช เชจเซเช เชเซเชฒเชพเชฏเชเช เชฎเชพเชเซ เชคเชฆเซเชฆเชจ เชฌเชฟเชจ-เชคเซเชเซเช เชเซ. เชเซเชฎ เชเซ CLI เชตเชฟเชฒเชเชฌ, TCP - เช เชจเซ เชถเชฐเชฃเชพเชเชคเชฟ เชตเชฟเชจเชพ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ.
เชตเซเชเชฒเซเชชเชฟเช เชฐเซเชคเซ, เชคเชฎเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชถเชเซ เชเซ
Linux
เชคเซ เช เชนเซเช เชธเชฐเชณ เชเซ:
dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333
เชฎเซเชเชเชเชธ
เชนเซเชฎเชฌเซเชฐเซเชฎเชพเชเชฅเซ เชชเซเชฐเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชธเซเชฅเซ เชธเชนเซเชฒเซ เชฐเชธเซเชคเซ เชเซ:
brew install knock
เช
เชจเซ เชเชฆเซเชถเซ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชฌเซเช เชซเชพเชเชฒเซ เชฆเซเชฐเซ เชเซเชฎ เชเซ:
#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333
iOS
เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชตเชฟเชเชฒเซเชช เชจเซเชเชเชจเซเชก (เชธเซเชเซเชฐเชฎเชพเชเชฅเซ เชฎเชซเชค) เชเซ.
, Android
"เชฌเชเชฆเชฐเซ เชชเชฐ เชจเซเช" เชเชพเชนเซเชฐเชพเชค เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซ เชฎเชพเชคเซเชฐ เชเชพเชฎ เชเชฐเซ เชเซ. เช เชจเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชคเชฆเซเชฆเชจ เชชเซเชฐเชคเชฟเชญเชพเชตเชถเซเชฒ เชเซ.
เชนเชพเชฌเซเชฐเซ เชชเชฐ เชชเซเชเชธ เชฎเชพเชฐเซเชเชกเชพเชเชจ, เช เชฒเชฌเชคเซเชค, เชญเชเชตเชพเชจ เชคเซเชจเซ เชเซเช เชฆเชฟเชตเชธ เชเชถเซเชฐเซเชตเชพเชฆ เชเชชเซ...
เชฏเซเชชเซเชกเซ 1: เชฎเชพเชเซ เชเชญเชพเชฐ
เชฏเซเชชเซเชกเซ 2: เชฌเซเชเซ เชเซเช
เชธเซเชฐเซเชธ: www.habr.com