Linux tips & tricks: сСрвСр, откройся

Π’Π΅ΠΌ, ΠΊΠΎΠΌΡƒ Π½Π°Π΄ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ сСбС, Π»ΡŽΠ±ΠΈΠΌΠΎΠΌΡƒ, доступ ΠΊ своим сСрвСрам ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΡ€Π° ΠΏΠΎ SSH/RDP/ΠΈΠ½ΠΎΠ΅ β€” нСбольшоС RTFM/ΡˆΠΏΠΎΡ€Π°.

Нам Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· VPN ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π°Π²ΠΎΡ€ΠΎΡ‚ΠΎΠ², с любого устройства ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠ°ΠΌΠΈ.

И Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ с сСрвСром Π½Π΅ слишком ΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ.

Всё, Ρ‡Ρ‚ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ β€” knockd, прямыС Ρ€ΡƒΠΊΠΈ ΠΈ 5 ΠΌΠΈΠ½ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

«Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ всё Π΅ΡΡ‚ΡŒ», ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ (Π΄Π°ΠΆΠ΅ Π½Π° Π₯Π°Π±Ρ€Π΅), Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Ρ‚ΡƒΡ‚ ΠΈ начинаСтся…

Π‘ΡƒΠ΄Π΅ΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 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: благодаря Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ нашСлся Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ Windows.
UPD2: Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠ», Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² ΠΊΠΎΠ½Π΅Ρ† iptables Π½Π΅ всСгда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Но β€” it depends.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com