Linux เชŸเชฟเชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: เชธเชฐเซเชตเชฐ, เช–เซ‹เชฒเซ‹

เชœเซ‡เช“ เชชเซ‹เชคเชพเชจเซ‡, เชคเซ‡เชฎเชจเชพ เชชเซเชฐเชฟเชฏเชœเชจเซ‹เชจเซ‡, 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 เช›เซ‡. เชฏเซเชกเซ€เชชเซ€ เช•เซ‹เชจเซ‡ เชœเซ‹เชˆเช เช›เซ‡ - 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

เชฎเซ‡เช•เช“เชเชธ

เชนเซ‹เชฎเชฌเซเชฐเซเชฎเชพเช‚เชฅเซ€ เชชเซ‹เชฐเซเชŸ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ‹ เชธเซŒเชฅเซ€ เชธเชนเซ‡เชฒเซ‹ เชฐเชธเซเชคเซ‹ เช›เซ‡:
brew install knock
เช…เชจเซ‡ เช†เชฆเซ‡เชถเซ‹ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชฌเซ‡เชš เชซเชพเช‡เชฒเซ‹ เชฆเซ‹เชฐเซ‹ เชœเซ‡เชฎ เช•เซ‡:

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

iOS

เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ‹ เชตเชฟเช•เชฒเซเชช เชจเซ‹เช•เช“เชจเซเชก (เชธเซเชŸเซ‹เชฐเชฎเชพเช‚เชฅเซ€ เชฎเชซเชค) เช›เซ‡.

, Android

"เชฌเช‚เชฆเชฐเซ‹ เชชเชฐ เชจเซ‹เช•" เชœเชพเชนเซ‡เชฐเชพเชค เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเชพเชคเซเชฐ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชคเชฆเซเชฆเชจ เชชเซเชฐเชคเชฟเชญเชพเชตเชถเซ€เชฒ เช›เซ‡.

เชนเชพเชฌเซเชฐเซ‡ เชชเชฐ เชชเซ€เชเชธ เชฎเชพเชฐเซเช•เชกเชพเช‰เชจ, เช…เชฒเชฌเชคเซเชค, เชญเช—เชตเชพเชจ เชคเซ‡เชจเซ‡ เช•เซ‹เชˆ เชฆเชฟเชตเชธ เช†เชถเซ€เชฐเซเชตเชพเชฆ เช†เชชเซ‡...

เชฏเซเชชเซ€เชกเซ€ 1: เชฎเชพเชŸเซ‡ เช†เชญเชพเชฐ เชธเชพเชฐเซ€ เชตเซเชฏเช•เซเชคเชฟ เชฎเชพเชŸเซ‡ เชฎเชณเซ€ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เช—เซเชฐเชพเชนเช• เชตเชฟเชจเซเชกเซ‹เช เชนเซ‡เช เชณ.
เชฏเซเชชเซ€เชกเซ€ 2: เชฌเซ€เชœเซ‹ เช•เซ‹เชˆ เชธเชพเชฐเซ‹ เชฎเชพเชฃเชธ เชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเซเชฏเซเช‚ เช•เซ‡ iptables เชจเชพ เช…เช‚เชคเซ‡ เชจเชตเชพ เชจเชฟเชฏเชฎเซ‹ เชฎเซ‚เช•เชตเชพ เชนเช‚เชฎเซ‡เชถเชพ เช‰เชชเชฏเซ‹เช—เซ€ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ - เชคเซ‡ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹