Π’Π΅ΠΌ, ΠΊΠΎΠΌΡ Π½Π°Π΄ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ΅Π±Π΅, Π»ΡΠ±ΠΈΠΌΠΎΠΌΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΌΠΈΡΠ° ΠΏΠΎ SSH/RDP/ΠΈΠ½ΠΎΠ΅ β Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ RTFM/ΡΠΏΠΎΡΠ°.
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· VPN ΠΈ Π΄ΡΡΠ³ΠΈΡ Π½Π°Π²ΠΎΡΠΎΡΠΎΠ², Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄ ΡΡΠΊΠ°ΠΌΠΈ.
Π ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΏΡΠ°ΠΆΠ½ΡΡΡΡΡ.
ΠΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ β
«Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π²ΡΡ Π΅ΡΡΡ», ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ (Π΄Π°ΠΆΠ΅ Π½Π°
ΠΡΠ΄Π΅ΠΌ ΡΠΏΡΠ°ΠΆΠ½ΡΡΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Fedora/CentOS, Π½ΠΎ ΡΡΠΎ Π½Π΅Π²Π°ΠΆΠ½ΠΎ.
Π¨ΠΏΠΎΡΠ° ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ Π·ΡΠ±ΡΠ°ΠΌ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΏΠΎΠΊΠΎΡΠΎΡΠ΅.
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 Server (/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. ΠΡΠΎ Ρ ΠΎΡΠ΅Ρ UDP β ΠΈΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ 0.70. - interface
Π Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Fedora/CentOS ΡΡΠ° ΡΡΡΠΎΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΊΠ°ΠΌΠΈ, ΠΈΠ½Π°ΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. - timeout
ΠΠ΄Π΅ΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎ Π²ΠΊΡΡΡ. ΠΠ°Π΄ΠΎ ΡΡΠΎΠ±Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Π²Π°ΡΠΈΠ»ΠΎ Π½Π° Π²ΡΠ΅ ΠΏΠΈΠ½ΠΊΠΈ β ΠΈ Π±ΠΎΡ-ΡΠΊΠ°Π½Π΅Ρ ΠΏΠΎΡΡΠΎΠ² ΠΎΠ±Π»ΠΎΠΌΠ°Π»ΡΡ (Π° ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΠ΄ΡΡ 146%). - start/stop/command.
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ΄Π½Π° β ΡΠΎ command, Π΅ΡΠ»ΠΈ Π΄Π²Π΅ β ΡΠΎ start_command+stop_command.
ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±Π΅ΡΠ΅ΡΡ β knockd ΠΏΡΠΎΠΌΠΎΠ»ΡΠΈΡ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. - proto
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UDP. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Ρ Π±ΡΠ»ΠΎ ΡΠΌΠ΅ΡΠ°Π» tcp ΠΈ udp, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΏΠ»ΡΠΆΠ° Π² ΠΠ°Π»ΠΈ ΡΠΌΠΎΠ³ ΠΎΡΠΊΡΡΡΡ ΡΠ΅Π±Π΅ ΠΊΠ°Π»ΠΈΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π°. ΠΠ±ΠΎ TCP Π΄ΠΎΠ»Π΅ΡΠ΅Π»ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ, Π° UDP β Π½Π΅ ΡΠ°ΠΊΡ. ΠΠΎ ΡΡΠΎ Π΄Π΅Π»ΠΎ Π²ΠΊΡΡΠ°, ΠΎΠΏΡΡΡ ΠΆΠ΅. - sequence
ΠΠ΅ΡΠ²Π½ΡΠ΅ Π³ΡΠ°Π±Π»ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡβ¦ ΠΊΠ°ΠΊ Π±Ρ ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ…
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠ΅:
open: 11111,22222,33333
close: 22222,11111,33333
ΠΠΎ ΠΏΠΈΠ½ΠΊΡ 11111 open Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΈΠ½ΠΊΠ° Π½Π° 22222. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΡΠΎΠΌΡ (22222) ΠΏΠΈΠ½ΠΊΡ Π½Π°ΡΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ close ΠΈ Π²ΡΡ ΠΏΠΎΠ»ΠΎΠΌΠ°Π΅ΡΡΡ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ delay ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅. Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Π»Π° Β©.
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, ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ reject.
Π ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ reject β ΡΡΠΎ ΠΎΡΠΊΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π²ΡΠ΅ΠΌ Π²Π΅ΡΡΠ°ΠΌ.
ΠΠ°Π±Ρ Π½Π΅ ΠΈΠ·Π³Π°Π»ΡΡΡΡΡ Π² iptables ΡΡΠΎ ΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ Π²ΡΡΠ°Π²Π»ΡΡΡ (ΠΊΠ°ΠΊ Π²ΠΎΡ
- Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ΅ Π² CentOS/Fedora ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ («ΡΡΠΎ Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ β ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ») Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅,
- Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ±ΠΈΡΠ°Π΅ΠΌ.
Π ΠΈΡΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ:
*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
ΠΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ DROP ΡΠ΄Π΅Π»Π°ΡΡ REJECT, Π½ΠΎ Ρ DROP Π±ΠΎΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΆΠΈΡΡ Π²Π΅ΡΠ΅Π»Π΅Π΅.
3. ΠΠ»ΠΈΠ΅Π½Ρ
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ (Ρ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ), ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠ»ΡΠΆΠ°, Π½ΠΎ ΠΈ Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΡΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π°
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» ΠΎΠΏΡΠΈΡ delay ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΠ°, ΠΏΠ»ΡΠΆ ΠΏΠ»ΡΠΆΡ ΡΠΎΠ·Π½Ρ ΠΈ 100 ΠΌΠ΅Π³Π°Π±ΠΈΡ Π½ΠΈ ΡΠ°Π·Ρ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ Π΄ΠΎΠ»Π΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π² Π½ΡΠΆΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°.
Π Π΄Π° β ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° delay Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ½ΠΎΠ³ΠΎ timeout β Π±ΠΎΡΡ Π½Π°ΠΏΠ°Π΄ΡΡ, ΠΌΠ°Π»ΠΎ β ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΡΠΏΠ΅Π΅Ρ. ΠΠ½ΠΎΠ³ΠΎ delay β ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΡΠΏΠ΅Π΅Ρ ΠΈΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΏΡΠΎΡΡΡΠΊΠΎΠ² (ΡΠΌ. «Π³ΡΠ°Π±Π»ΠΈ»), ΠΌΠ°Π»ΠΎ β ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π±Π»ΡΠ΄ΡΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°Ρ .
ΠΡΠΈ timeout=5s Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ delay=100..500ms
Windows
ΠΠ°ΠΊ ΡΡΠΎ Π½ΠΈ ΡΠΌΠ΅ΡΠ½ΠΎ Π·Π²ΡΡΠΈΡ, Π½ΠΎ Π½Π°Π³ΡΠ³Π»ΠΈΡΡ Π²Π½ΡΡΠ½ΡΠΉ knock-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ ΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ. Π’Π°ΠΊΠΎΠΉ, ΡΡΠΎΠ±Ρ CLI, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» delay, 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
«Knock on Ports». ΠΠ΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠ°, Π° ΠΏΡΠΎΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠ΅.
P.S. markdown Π½Π° Π₯Π°Π±ΡΠ΅, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π°ΠΉ Π±ΠΎΠ³ Π΅ΠΌΡ Π·Π΄ΠΎΡΠΎΠ²ΡΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ…
UPD1: Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ
UPD2: Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com