Linux เดจเตเดฑเตเด™เตเด™เตเด•เดณเตเด‚ เดคเดจเตเดคเตเดฐเด™เตเด™เดณเตเด‚: เดธเต†เตผเดตเตผ, เดคเตเดฑเด•เตเด•เตเด•

SSH/RDP/เดฎเดฑเตเดฑเตเดณเตเดณเดต เดตเดดเดฟ เดฒเต‹เด•เดคเตเดคเต†เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเตเด‚ เด…เดตเดฐเตเดŸเต† เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเต, เด…เดตเดฐเตเดŸเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸเดตเตผเด•เตเด•เต, เด’เดฐเต เดšเต†เดฑเดฟเดฏ RTFM/spur.

เด•เตˆเดฏเดฟเดฒเตเดณเตเดณ เดเดคเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ VPN เด•เต‚เดŸเดพเดคเต† เดฎเดฑเตเดฑเต เดฌเต†เดฒเตเดฒเตเด•เดณเตเด‚ เดตเดฟเดธเดฟเดฒเตเด•เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเต† เดžเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดธเต†เตผเดตเดฑเตเดฎเดพเดฏเดฟ เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดตเตเดฏเดพเดฏเดพเดฎเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ.

เด‡เดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฃเตเดŸเดคเต เดคเดŸเตเดŸเดฟ, เดจเต‡เดฐเดพเดฏ เด•เตˆเด•เดณเตเด‚ 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 เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ (/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:

เดฎเดจเดฏเดฟเตฝ เดŽเดฒเตเดฒเดพเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด•เตƒเดคเตเดฏเดฎเดฒเตเดฒ), เดชเด•เตเดทเต‡ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเดฟเตฝ เดชเดฟเดถเตเด•เตเด•เต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเตเดนเตƒเดคเตเดคเดพเดฃเต เดจเต‹เด•เตเด•เต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดตเดณเดฐเต† เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

  • เดชเดคเดฟเดชเตเดชเต
    Fedora/CentOS เดถเต‡เด–เดฐเดฃเด™เตเด™เดณเดฟเตฝ, เด‡เดจเตเดจเดคเตเดคเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ knockd 0.63 เด†เดฃเต. เด†เตผเด•เตเด•เดพเดฃเต UDP เดตเต‡เดฃเตเดŸเดคเต - 0.70 เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เดจเต‹เด•เตเด•เตเด•.
  • เด‡เดจเตเดฑเตผเดซเต‡เดธเต
    เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ Fedora/CentOS เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดˆ เดตเดฐเดฟ เดนเดพเดœเดฐเดฒเตเดฒ. เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตˆเด•เตŠเดฃเตเดŸเต เดšเต‡เตผเด•เตเด•เตเด•, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ.
  • เดŸเตˆเด‚ เด”เดŸเตเดŸเต
    เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เดญเดฟเดฐเตเดšเดฟเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเด‚. เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเต เดŽเดฒเตเดฒเดพ เด•เดฟเด•เตเด•เตเด•เตพเด•เตเด•เตเด‚ เดฎเดคเดฟเดฏเดพเดฏ เดธเดฎเดฏเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต - เด•เต‚เดŸเดพเดคเต† เดชเต‹เตผเดŸเตเดŸเต เดธเตเด•เดพเดจเตผ เดฌเต‹เดŸเตเดŸเต เดคเด•เดฐเตเด‚ (146% เดธเตเด•เดพเตป เดšเต†เดฏเตเดฏเตเด‚).
  • เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•/เดจเดฟเตผเดคเตเดคเตเด•/เด•เดฎเดพเตปเดกเต เดšเต†เดฏเตเดฏเตเด•.
    เด’เดฐเต เด•เดฎเดพเตปเดกเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด•เดฎเดพเตปเดกเต, เดฐเดฃเตเดŸเต†เดฃเตเดฃเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, start_command+stop_command.
    เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดคเต†เดฑเตเดฑเต เดšเต†เดฏเตเดคเดพเตฝ, knockd เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเด‚, เดชเด•เตเดทเต‡ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ.
  • เดชเตเดฐเต‹เดŸเตเดŸเต‹
    เดธเตˆเดฆเตเดงเดพเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ, 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

เด…เดคเต เด‡เดŸเดชเต†เดŸเตเดจเตเดจเต.

INPUT เดถเตƒเด‚เด–เดฒเดฏเตเดŸเต† เด…เดตเดธเดพเดจเด‚ knockd เดจเดฟเดฏเดฎเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเดฎเตเด•เตเด•เต เดจเดฟเดฐเดธเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚.

เดˆ เดจเดฟเดฐเดธเดฟเด•เตเด•เตเดจเตเดจเดคเต เด“เดซเต เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดฟเดจเตผเดคเตเดฅเด‚ เด•เดพเตผ เดŽเดฒเตเดฒเดพ เด•เดพเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เตเด‚ เดคเตเดฑเด•เตเด•เตเด• เดŽเดจเตเดจเดพเดฃเต.

iptables-เตฝ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป, เดŽเดจเตเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดŽเดจเตเดคเต เดคเดฟเดฐเตเด•เดฃเด‚ (เด‡เดคเตเดชเต‹เดฒเต† เด†เดณเตเด•เตพ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเด•) เดจเดฎเตเด•เตเด•เต เด‡เดคเต เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเด‚:

  • เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ CentOS/Fedora-เตฝ เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เดจเดฟเดฏเดฎเด‚ ("เดจเดฟเดฐเต‹เดงเดฟเด•เตเด•เดพเดคเตเดคเดคเต เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต") เดตเดฟเดชเดฐเต€เดคเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด‚,
  • เดžเด™เตเด™เตพ เด…เดตเดธเดพเดจ เดจเดฟเดฏเดฎเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดซเดฒเด‚ เด‡เดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดกเตเดฐเต‹เดชเตเดชเดฟเดจเต เดชเด•เดฐเด‚ เดจเดฟเดฐเดธเดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดกเตเดฐเต‹เดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดœเต€เดตเดฟเดคเด‚ เดฌเต‹เดŸเตเดŸเตเด•เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดฐเดธเด•เดฐเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

3. เด•เตเดฒเดฏเดจเตเดฑเต

เดˆ เดธเตเดฅเดฒเด‚ เดเดฑเตเดฑเดตเตเด‚ เดฐเดธเด•เดฐเดฎเดพเดฃเต (เดŽเดจเตเดฑเต† เด•เดพเดดเตเดšเดชเตเดชเดพเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต), เดจเดฟเด™เตเด™เตพ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเต€เดšเตเดšเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดเดคเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดจเดฟเดฐเดตเดงเดฟ เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต เดธเตˆเดฑเตเดฑเต เดชเตเดฐเตŠเดœเด•เตเดฑเตเดฑเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต "เดŽเดฒเตเดฒเดพเด‚ เด‡เตปเดฑเตผเดจเต†เดฑเตเดฑเดฟเดฒเดพเดฃเต" เดŽเดจเตเดจ เด…เดคเต‡ เดชเดฐเดฎเตเดชเดฐเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณเดคเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เด‡เดตเดฟเดŸเต†เดฏเตเด‚ เด‡เดชเตเดชเต‹เดณเตเด‚ เดŽเดจเตเดฑเต† เดตเดฟเดฐเตฝเดคเตเดคเตเดฎเตเดชเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดžเดพเตป เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚.

เด’เดฐเต เด•เตเดฒเดฏเดจเตเดฑเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดคเต เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เด•เดพเดฒเดคเดพเดฎเดธเด‚ เด“เดชเตเดทเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด…เดคเต†, เดฌเต€เดšเตเดšเตเด•เดณเตเด‚ 100 เดฎเต†เด—เดพเดฌเตˆเดฑเตเดฑเตเด‚ เดคเดฎเตเดฎเดฟเตฝ เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เดณเตเดฃเตเดŸเต, เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดธเตเดฅเดฒเดคเตเดคเต เดจเดฟเดจเตเดจเต เดถเดฐเดฟเดฏเดพเดฏ เดธเดฎเดฏเดคเตเดคเต เดถเดฐเดฟเดฏเดพเดฏ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เดŽเดคเตเดคเตเดฎเต†เดจเตเดจเต เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เด‰เดฑเดชเตเดชเตเดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เด…เดคเต†, เด’เดฐเต เด•เตเดฒเดฏเดจเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เดพเดฒเดคเดพเดฎเดธเด‚ เดจเดฟเด™เตเด™เตพ เดธเตเดตเดฏเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเดฎเดฏเดชเดฐเดฟเดงเดฟ - เดฌเต‹เดŸเตเดŸเตเด•เตพ เด†เด•เตเดฐเดฎเดฟเด•เตเด•เตเด‚, เดตเดณเดฐเต† เด•เตเดฑเดšเตเดšเต - เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเต เดธเดฎเดฏเดฎเดฟเดฒเตเดฒ. เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เด•เดพเดฒเดคเดพเดฎเดธเด‚ - เด•เตเดฒเดฏเดจเตเดฑเต เด•เตƒเดคเตเดฏเดธเดฎเดฏเดคเตเดคเต เด…เดคเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเดฟเดกเตเดขเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดธเด‚เด˜เดŸเตเดŸเดจเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚ ("เดฑเต‡เด•เตเด•เตเด•เตพ" เด•เดพเดฃเตเด•), เดตเดณเดฐเต† เด•เตเดฑเดšเตเดšเต - เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเด‚.

เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตฝ=5เดธเต†เด•เตเด•เตปเดฑเต, เด•เดพเดฒเดคเดพเดฎเดธเด‚=100..500ms เดŽเดจเตเดจเดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฏ เด“เดชเตเดทเดจเดพเดฃเต

เดตเดฟเตปเดกเต‡เดพเดธเต

เด‡เดคเต เดŽเดคเตเดฐ เดคเดฎเดพเดถเดฏเดพเดฏเดฟ เดคเต‹เดจเตเดจเดฟเดฏเดพเดฒเตเด‚, เดˆ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเตเดณเตเดณ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดจเต‹เด•เตเด•เต เด•เตเดฒเดฏเดจเตเดฑเดพเดฏ Google-เดจเต เด‡เดคเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดฒเตเดฒ. CLI เด•เดพเดฒเดคเดพเดฎเดธเด‚, TCP - เด•เต‚เดŸเดพเดคเต† เดตเดฟเดฒเตเดฒเตเด•เดณเดฟเดฒเตเดฒเดพเดคเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดคเดฐเดคเตเดคเดฟเตฝ.

เดชเด•เดฐเดฎเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚ เด‡เดคเดพเดฃเดคเต. เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ เดŽเดจเตเดฑเต† เด—เต‚เด—เดฟเตพ เด’เดฐเต เด•เต‡เด•เตเด•เต เด…เดฒเตเดฒ.

เดฒเดฟเดจเด•เตเดธเต

เด‡เดตเดฟเดŸเต† เดŽเดฒเตเดฒเดพเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต:

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

เดเด’เดŽเดธเต

เด’เดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เด“เดชเตเดทเตป KnockOnD เด†เดฃเต (เดธเตŒเดœเดจเตเดฏเดฎเดพเดฏเดฟ, เดธเตเดฑเตเดฑเต‹เดฑเดฟเตฝ เดจเดฟเดจเตเดจเต).

เด†เตปเดกเตเดฐเต‡เดพเดฏเดฟเดกเต

"เดคเตเดฑเดฎเตเด–เด™เตเด™เดณเดฟเตฝ เดฎเตเดŸเตเดŸเตเด•" เดชเดฐเดธเตเดฏเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดคเดฟเด•เดšเตเดšเตเด‚ เดชเตเดฐเดคเดฟเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดตเดฐเดพเดฃเต.

เดนเดฌเตเดฐเต†เดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ PS เดฎเดพเตผเด•เตเด•เตเดกเต—เตบ, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดฆเตˆเดตเด‚ เด…เดตเดจเต† เดŽเดจเตเดจเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดจเตเด—เตเดฐเดนเดฟเด•เตเด•เดŸเตเดŸเต†...

UPD1: เดจเดจเตเดฆเดฟ เด’เดฐเต เดจเดฒเตเดฒ เดตเตเดฏเด•เตเดคเดฟเด•เตเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เตเดฒเดฏเดจเตเดฑเต เดตเดฟเตปเดกเต‹เดธเดฟเดจเต เด•เต€เดดเดฟเตฝ.
UPD2: เดฎเดฑเตเดฑเตŠเดจเตเดจเต เดจเดฒเตเดฒ เดฎเดจเตเดทเตเดฏเตป iptables-เดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ เดชเตเดคเดฟเดฏ เดจเดฟเดฏเดฎเด™เตเด™เตพ เด‡เดŸเตเดจเตเดจเดคเต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดฒเตเดฒเต†เดจเตเดจเต เดŽเดจเตเดจเต† เด“เตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดšเตเดšเต. เดชเด•เตเดทเต‡ - เด…เดคเต เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•