рд▓рд┐рдирдХреНрд╕ рдЯрд┐рдкрд╛ рдЖрдгрд┐ рдпреБрдХреНрддреНрдпрд╛: рд╕рд░реНрд╡реНрд╣рд░, рдЙрдШрдбрд╛

рдЬреНрдпрд╛рдВрдирд╛ рд╕реНрд╡рддрдГрд▓рд╛, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рд┐рдпрдЬрдирд╛рдВрдирд╛, SSH/RDP/рдЗрддрд░, рдПрдХ рд▓рд╣рд╛рди RTFM/spur рджреНрд╡рд╛рд░реЗ рдЬрдЧрд╛рдЪреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдард┐рдХрд╛рдгрд╛рд╣реВрди рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЖрдореНрд╣рд╛рд▓рд╛ VPN рдЖрдгрд┐ рдЗрддрд░ рдШрдВрдЯрд╛ рдЖрдгрд┐ рд╢рд┐рдЯреНрдЯреНрдпрд╛рдВрд╢рд┐рд╡рд╛рдп, рд╣рд╛рддрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░реВрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЖрдгрд┐ рдЬреЗрдгреЗрдХрд░реВрди рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╕реЛрдмрдд рдЬрд╛рд╕реНрдд рдХрд╕рд░рдд рдХрд░рд╛рд╡реА рд▓рд╛рдЧрдгрд╛рд░ рдирд╛рд╣реА.

рдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдЧрд░рдЬ рдЖрд╣реЗ рдареЛрдХрд▓реЗ, рд╕рд░рд│ рд╣рд╛рдд рдЖрдгрд┐ 5 рдорд┐рдирд┐рдЯреЗ рдХрд╛рдо.

"рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЖрд╣реЗ," рдЕрд░реНрдерд╛рддрдЪ (рдЕрдЧрджреА рд╡рд░ рд╣реЕрдмреНрд░реЗ), рдкрд░рдВрддреБ рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рддреЗ рдпреЗрдереВрдирдЪ рд╕реБрд░реВ рд╣реЛрддреЗ...

рдЖрдореНрд╣реА рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди 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 рдЖрд╣реЗ. рдХреЛрдгрд╛рд▓рд╛ UDP рд╣рд╡рд╛ рдЖрд╣реЗ - 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 - рдЖрдгрд┐ рдзрдиреБрд╖реНрдп рди рдХрд░рддрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ.

рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛, рддреБрдореНрд╣реА рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддрд╛ рд╣реЗрдЪ рддреЗ. рд╡рд░рд╡рд░ рдкрд╛рд╣рддрд╛ рдорд╛рдЭреЗ Google рдПрдХ рдХреЗрдХ рдирд╛рд╣реА.

linux

рдпреЗрдереЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ:

dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333

MacOS

рд╣реЛрдордмреНрд░реВрдордзреВрди рдкреЛрд░реНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ:
brew install knock
рдЖрдгрд┐ рдХрдорд╛рдВрдбрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдмреЕрдЪ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛рдврд╛ рдЬрд╕реЗ:

#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333

iOS

рдПрдХ рдХрд╛рд░реНрдпрд░рдд рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ KnockOnD (рд╡рд┐рдирд╛рдореВрд▓реНрдп, рд╕реНрдЯреЛрдЕрд░рдордзреВрди).

Android

"рдмрдВрджрд░рд╛рдВрд╡рд░ рдареЛрдХрд╛" рдЬрд╛рд╣рд┐рд░рд╛рдд рдирд╛рд╣реА, рдкрдг рддреЗ рдлрдХреНрдд рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕рдХ рдЬреЛрд░рджрд╛рд░ рдкреНрд░рддрд┐рд╕рд╛рдж рдЖрд╣реЗрдд.

рд╣реЕрдмреНрд░реЗрд╡рд░ рдкреАрдПрд╕ рдорд╛рд░реНрдХрдбрд╛рдЙрди, рдирдХреНрдХреАрдЪ, рджреЗрд╡ рддреНрдпрд╛рд▓рд╛ рдПрдХ рджрд┐рд╡рд╕ рдЖрд╢реАрд░реНрд╡рд╛рдж рджреЗрдИрд▓...

рдпреВрдкреАрдбреА 1: рдирд╛ рдзрдиреНрдпрд╡рд╛рдж рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╡реНрдпрдХреНрддреАрд▓рд╛ рдЖрдврд│рд▓реЗ рдХрд╛рд░реНрдпрд░рдд рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд┐рдВрдбреЛрдЬ рдЕрдВрддрд░реНрдЧрдд.
рдпреВрдкреАрдбреА 2: рдЖрдгрдЦреА рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдорд╛рдгреВрд╕ рдорд▓рд╛ рдЖрдард╡рдг рдХрд░реВрди рджрд┐рд▓реА рдХреА iptables рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдирд╡реАрди рдирд┐рдпрдо рдареЗрд╡рдгреЗ рдиреЗрд╣рдореАрдЪ рдЙрдкрдпреБрдХреНрдд рдирд╕рддреЗ. рдкрдг - рддреЗ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛