เจฒเฉ€เจจเจ•เจธ เจธเฉเจเจพเจ… เจ…เจคเฉ‡ เจšเจพเจฒ: เจธเจฐเจตเจฐ, เจ–เฉ‹เจฒเฉเจนเฉ‹

เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ, เจ†เจชเจฃเฉ‡ เจ…เจœเจผเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ, SSH/RDP/เจนเฉ‹เจฐ, เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ RTFM/spur เจฐเจพเจนเฉ€เจ‚ เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจš เจ•เจฟเจคเฉ‡ เจตเฉ€ เจ†เจชเจฃเฉ‡ เจธเจฐเจตเจฐเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจธเจพเจจเฉ‚เฉฐ เจนเฉฑเจฅ เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเจฟเจตเจพเจˆเจธ เจคเฉ‹เจ‚, VPN เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจ˜เฉฐเจŸเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจธเฉ€เจŸเฉ€เจ†เจ‚ เจฆเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฐเจตเจฐ เจจเจพเจฒ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ•เจธเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจฒเจˆ เจฒเฉ‹เฉœ เจนเฉˆ เจ–เฉœเจ•เจพเจ‡เจ†, เจธเจฟเฉฑเจงเฉ€เจ†เจ‚ เจฌเจพเจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ 5 เจฎเจฟเฉฐเจŸเฅค

"เจธเจญ เจ•เฉเจ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจคเฉ‡ เจนเฉˆ," เจฌเฉ‡เจธเจผเจ• (เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจนเจพเจฌเจฐเฉ‡), เจชเจฐ เจœเจฆเฉ‹เจ‚ เจ‡เจน เจ‡เฉฑเจ• เจ–เจพเจธ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ—เฉฑเจฒ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจน เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ...

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚ เจซเฉ‡เจกเฉ‹เจฐเจพ/เจธเฉˆเจ‚เจŸเฉ‹เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจ…เจญเจฟเจ†เจธ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจชเจฐ เจ‡เจธ เจจเจพเจฒ เจ•เฉ‹เจˆ เจซเจผเจฐเจ• เจจเจนเฉ€เจ‚ เจชเฉˆเจ‚เจฆเจพเฅค

เจธเจชเฉเจฐ เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเจจ เจตเจพเจฒเจฟเจ†เจ‚ เจ…เจคเฉ‡ เจฎเจพเจนเจฐเจพเจ‚ เจฆเฉ‹เจตเจพเจ‚ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚, เจชเจฐ เจ‰เจน เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚.

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 เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจตเจพเจฒเจพ เจ‡เฉฑเจ• เจฌเฉ‡เจคเฉเจ•เจพ เจฆเฉ‹เจธเจค เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจนเฉเจค เจธเจพเจตเจงเจพเจจ เจฐเจนเจฟเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

  • เจตเจฐเจœเจจ
    เจซเฉ‡เจกเฉ‹เจฐเจพ/เจธเฉˆเจ‚เจŸเฉ‹เจธ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš, เจ…เฉฑเจœ เจฒเจˆ เจจเจตเฉ€เจจเจคเจฎ เจฆเจธเจคเจ• 0.63 เจนเฉˆเฅค เจ•เฉŒเจฃ UDP เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆ - 0.70 เจชเฉˆเจ•เฉ‡เจŸ เจฒเฉฑเจญเฉ‹เฅค
  • เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ
    เจกเจฟเจซเจพเจฒเจŸ เจซเฉ‡เจกเฉ‹เจฐเจพ/เจธเฉˆเจ‚เจŸเฉ‹เจธ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจ‡เจน เจฒเจพเจˆเจจ เจ•เฉ‹เจˆ เจตเฉ€. เจ†เจชเจฃเฉ‡ เจนเฉฑเจฅเจพเจ‚ เจจเจพเจฒ เจœเฉ‹เฉœเฉ‹, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพ.
  • เจธเจฎเจพเจ‚ เจ–เจผเจคเจฎ
    เจ‡เฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจธเฉเจ†เจฆ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจšเฉ‹เจฃ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹. เจ‡เจน เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจ•เจฟ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ•เฉ‹เจฒ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เจฟเฉฑเจ•เจพเจ‚ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจธเจฎเจพเจ‚ เจนเฉ‹เจตเฉ‡ - เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจธเจ•เฉˆเจจเจฐ เจฌเฉ‹เจŸ เจŸเฉเฉฑเจŸ เจœเจพเจตเฉ‡เจ—เจพ (เจ…เจคเฉ‡ 146% เจธเจ•เฉˆเจจ เจ•เจฐเฉ‡เจ—เจพ).
  • เจธเจŸเจพเจฐเจŸ/เจธเจŸเจพเจช/เจ•เจฎเจพเจ‚เจกเฅค
    เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจนเฉˆ, เจคเจพเจ‚ เจ•เจฎเจพเจ‚เจก, เจœเฉ‡เจ•เจฐ เจฆเฉ‹ เจนเจจ, เจคเจพเจ‚ start_command+stop_commandเฅค
    เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ—เจฒเจคเฉ€ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฆเจธเจคเจ• เจšเฉเฉฑเจช เจฐเจนเฉ‡เจ—เฉ€, เจชเจฐ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เฉ€.
  • เจชเฉเจฐเฉ‹เจŸเฉ‹
    เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡, 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 เจฆเฉ€ เจฌเจœเจพเจ เจ…เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ DROP เจจเจพเจฒ เจœเฉ€เจตเจจ เจฌเฉ‹เจŸเจพเจ‚ เจฒเจˆ เจตเจงเฉ‡เจฐเฉ‡ เจฎเจœเจผเฉ‡เจฆเจพเจฐ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

3. เจ•เจฒเจพเจ‡เฉฐเจŸ

เจ‡เจน เจธเจฅเจพเจจ เจธเจญ เจคเฉ‹เจ‚ เจฆเจฟเจฒเจšเจธเจช เจนเฉˆ (เจฎเฉ‡เจฐเฉ‡ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚), เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฌเฉ€เจš เจคเฉ‹เจ‚ เจนเฉ€ เจจเจนเฉ€เจ‚, เจธเจ—เฉ‹เจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเจฟเจตเจพเจˆเจธ เจคเฉ‹เจ‚ เจตเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ.

เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ—เจพเจนเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจธเจพเจˆเจŸ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ, เจชเจฐ เจ‡เจน เจ‰เจธเฉ‡ เจฒเฉœเฉ€ เจคเฉ‹เจ‚ เจนเฉˆ "เจธเจญ เจ•เฉเจ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจคเฉ‡ เจนเฉˆ." เจ‡เจธ เจฒเจˆ, เจฎเฉˆเจ‚ เจธเฉ‚เจšเฉ€ เจฌเจฃเจพเจตเจพเจ‚เจ—เจพ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจ…เจคเฉ‡ เจนเฉเจฃ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจ‰เจ‚เจ—เจฒเจพเจ‚ 'เจคเฉ‡ เจ•เฉ€ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ.

เจ‡เฉฑเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจชเฉˆเจ•เจŸเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฆเฉ‡เจฐเฉ€ เจตเจฟเจ•เจฒเจช เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจนเจพเจ‚, เจฌเฉ€เจšเจพเจ‚ เจ…เจคเฉ‡ 100 เจฎเฉˆเจ—เจพเจฌเจฟเจŸ เจตเจฟเจšเจ•เจพเจฐ เจ…เฉฐเจคเจฐ เจนเจจ เจ•เจฆเฉ‡ เจตเฉ€ เจ‡เจธ เจ—เฉฑเจฒ เจฆเฉ€ เจ—เจฐเฉฐเจŸเฉ€ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฐเจฆเฉ‡ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ เจฆเจฟเฉฑเจคเฉ‡ เจธเจฅเจพเจจ เจคเฉ‹เจ‚ เจธเจนเฉ€ เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจธเจนเฉ€ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจชเจนเฉเฉฐเจšเจฃเจ—เฉ‡เฅค

เจ…เจคเฉ‡ เจนเจพเจ‚, เจ‡เฉฑเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจฆเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ. เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจค - เจฌเฉ‹เจŸ เจนเจฎเจฒเจพ เจ•เจฐเจจเจ—เฉ‡, เจฌเจนเฉเจค เจ˜เฉฑเจŸ - เจ•เจฒเจพเจ‡เฉฐเจŸ เจ•เฉ‹เจฒ เจธเจฎเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจฆเฉ‡เจฐเฉ€ - เจ—เจพเจนเจ• เจ‡เจธ เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚ เจธเจฟเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพ เจœเจพเจ‚ เจฎเฉ‚เจฐเจ–เจพเจ‚ เจฆเจพ เจŸเจ•เจฐเจพเจ… เจนเฉ‹เจตเฉ‡เจ—เจพ ("เจฐเฉ‡เจ•" เจฆเฉ‡เจ–เฉ‹), เจฌเจนเฉเจค เจ˜เฉฑเจŸ - เจชเฉˆเจ•เฉ‡เจŸ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ 'เจคเฉ‡ เจ—เฉเฉฐเจฎ เจนเฉ‹ เจœเจพเจฃเจ—เฉ‡เฅค

เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจคเฉ€=5s เจฆเฉ‡ เจจเจพเจฒ, เจฆเฉ‡เจฐเฉ€=100..500ms เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเจพ เจตเจฟเจ•เจฒเจช เจนเฉˆ

Windows เจจเฉ‚เฉฐ

เจญเจพเจตเฉ‡เจ‚ เจ‡เจน เจ•เจฟเฉฐเจจเจพ เจตเฉ€ เจฎเจœเจผเจพเจ•เฉ€เจ† เจฒเฉฑเจ— เจฐเจฟเจนเจพ เจนเฉ‹เจตเฉ‡, เจ‡เจน เจ‡เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจ—เฉ‚เจ—เจฒ เจฒเจˆ เจ‡เฉฑเจ• เจธเจชเฉฑเจธเจผเจŸ เจฆเจธเจคเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจ—เฉˆเจฐ-เจฎเจพเจฎเฉ‚เจฒเฉ€ เจนเฉˆเฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ CLI เจฆเฉ‡เจฐเฉ€, TCP - เจ…เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ•เจฎเจพเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจตเจฟเจ•เจฒเจชเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจคเฉเจธเฉ€เจ‚ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจฌเจธ เจ‡เจน เจนเฉ€ เจธเฉ€. เจœเจผเจพเจนเจฐ เจนเฉˆ เจ•เจฟ เจฎเฉ‡เจฐเจพ เจ—เฉ‚เจ—เจฒ เจ•เฉ‹เจˆ เจ•เฉ‡เจ• เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจฒเฉ€เจจเจ•เจธ

เจ‡เจน เจ‡เฉฑเจฅเฉ‡ เจธเจงเจพเจฐเจจ เจนเฉˆ:

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

เจ†เจˆเจ“เจเจธ

เจ‡เฉฑเจ• เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเจพ เจตเจฟเจ•เจฒเจช เจนเฉˆ KnockOnD (เจฎเฉเจซเจผเจค, เจธเจŸเฉ‹เจฐ เจคเฉ‹เจ‚)เฅค

เจ›เฉเจชเจพเจ“

"เจฌเฉฐเจฆเจฐเจ—เจพเจนเจพเจ‚ 'เจคเฉ‡ เจฆเจธเจคเจ•" เจตเจฟเจ—เจฟเจ†เจชเจจ เจจเจนเฉ€เจ‚, เจชเจฐ เจ‡เจน เจธเจฟเจฐเจซ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ…เจคเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ•เจพเจซเจผเฉ€ เจœเจตเจพเจฌเจฆเฉ‡เจน เจนเจจ.

เจนเฉˆเจฌเจฐเฉ‡ 'เจคเฉ‡ PS เจฎเจพเจฐเจ•เจกเจพเจ‰เจจ, เจฌเฉ‡เจธเจผเจ•, เจฐเฉฑเจฌ เจ‰เจธเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจฆเจฟเจจ เจ…เจธเฉ€เจธ เจฆเฉ‡เจตเฉ‡ ...

เจฏเฉ‚ เจชเฉ€ เจกเฉ€ 1: เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจ‡เฉฑเจ• เจšเฉฐเจ—เฉ‡ เจตเจฟเจ…เจ•เจคเฉ€ เจจเฉ‚เฉฐ เจชเจพเจ‡เจ† เจ•เฉฐเจฎ เจ•เจฐ เจฐเจนเฉ‡ เจ—เจพเจนเจ• เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฆเฉ‡ เจ…เจงเฉ€เจจ.
เจฏเฉ‚ เจชเฉ€ เจกเฉ€ 2: เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจšเฉฐเจ—เจพ เจ†เจฆเจฎเฉ€ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‡เจ† เจ•เจฟ iptables เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ เจจเจฟเจฏเจฎ เจฒเจ—เจพเจ‰เจฃเจพ เจนเจฎเฉ‡เจธเจผเจพ เจฒเจพเจญเจฆเจพเจ‡เจ• เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจชเจฐ - เจ‡เจน เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹