āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻŸāĻŋāĻĒāĻ¸ āĻāĻŦāĻ‚ āĻ•ā§ŒāĻļāĻ˛: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°, āĻ–ā§āĻ˛ā§āĻ¨

āĻ¯āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœā§‡āĻĻā§‡āĻ°āĻ•ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻœāĻ¨āĻ•ā§‡, SSH/RDP/āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯, āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ RTFM/spur-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻļā§āĻŦā§‡āĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻšāĻžāĻ¤ā§‡āĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻĨā§‡āĻ•ā§‡ VPN āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ˜āĻŖā§āĻŸāĻž āĻāĻŦāĻ‚ āĻŦāĻžāĻāĻļāĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻāĻŦāĻ‚ āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻŦā§āĻ¯āĻžāĻ¯āĻŧāĻžāĻŽ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ knockd, āĻ¸ā§‹āĻœāĻž āĻ…āĻ¸ā§āĻ¤ā§āĻ° āĻāĻŦāĻ‚ āĻ•āĻžāĻœ 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:

āĻŽāĻžāĻ¨āĻžāĻ¤ā§‡āĻ“ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¸āĻ āĻŋāĻ• āĻ¨āĻ¯āĻŧ), āĻ¤āĻŦā§‡ āĻ¨āĻ•āĻĄ āĻāĻŽāĻ¨ āĻāĻ•āĻœāĻ¨ āĻŦāĻ¨ā§āĻ§ā§ āĻ¯āĻŋāĻ¨āĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§‡āĻļ āĻ•ā§ƒāĻĒāĻŖ, āĻ¤āĻžāĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ–ā§āĻŦ āĻ¸āĻ¤āĻ°ā§āĻ• āĻĨāĻžāĻ•āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

  • āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ
    Fedora/CentOS āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡, āĻ†āĻœāĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¨āĻ•āĻĄ āĻšāĻ˛ 0.63āĨ¤ āĻ•ā§‡ UDP āĻšāĻžāĻ¯āĻŧ - 0.70 āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤
  • āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸
    āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ Fedora/CentOS āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻāĻ‡ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ¨āĻž. āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻ¤ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻžāĨ¤
  • āĻ¸āĻŽāĻ¯āĻŧ āĻļā§‡āĻˇ
    āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻŦāĻžāĻĻ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻšāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¯ā§‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻŋāĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸ āĻ¸ā§āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ° āĻŦāĻŸāĻŸāĻŋ āĻ­ā§‡āĻ™ā§‡ āĻ¯āĻžāĻŦā§‡ (āĻāĻŦāĻ‚ 146% āĻ¸ā§āĻ•ā§āĻ¯āĻžāĻ¨ āĻ•āĻ°āĻŦā§‡)āĨ¤
  • āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸ/āĻ¸ā§āĻŸāĻĒ/āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĨ¤
    āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āĻ¯āĻĻāĻŋ āĻĻā§āĻŸāĻŋ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ start_command+stop_commandāĨ¤
    āĻ­ā§āĻ˛ āĻ•āĻ°āĻ˛ā§‡ āĻ¨āĻ•āĻĄ āĻšā§āĻĒ āĻĨāĻžāĻ•āĻŦā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻžāĨ¤
  • āĻĒā§āĻ°ā§‹āĻŸā§‹
    āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ•āĻ­āĻžāĻŦā§‡, 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 - āĻāĻŦāĻ‚ āĻ§āĻ¨ā§āĻ• āĻ›āĻžāĻĄāĻŧāĻžāĨ¤

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ­āĻžāĻŦā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻ‡. āĻĻā§ƒāĻļā§āĻ¯āĻ¤ āĻ†āĻŽāĻžāĻ° āĻ—ā§āĻ—āĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻˇā§āĻŸāĻ• āĻ¨āĻž.

āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸

āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¸āĻšāĻœ:

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 (āĻĢā§āĻ°āĻŋ, āĻ¸ā§āĻŸā§‹āĻ° āĻĨā§‡āĻ•ā§‡)āĨ¤

āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§‡āĻĄ

"āĻŦāĻ¨ā§āĻĻāĻ°āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¨āĻ•" āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻŦā§‡āĻļ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻļā§€āĻ˛āĨ¤

āĻšāĻžāĻŦāĻ°ā§‡ āĻĒāĻŋāĻāĻ¸ āĻŽāĻžāĻ°ā§āĻ•āĻĄāĻžāĻ‰āĻ¨, āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻˆāĻļā§āĻŦāĻ° āĻ¤āĻžāĻ•ā§‡ āĻāĻ•āĻĻāĻŋāĻ¨ āĻ†āĻļā§€āĻ°ā§āĻŦāĻžāĻĻ āĻ•āĻ°ā§āĻ¨...

āĻ‡āĻ‰āĻĒāĻŋāĻĄāĻŋ 1: āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ āĻāĻ•āĻœāĻ¨ āĻ­āĻžāĻ˛ā§‹ āĻŽāĻžāĻ¨ā§āĻˇā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ›ā§‡ āĻ•āĻ°ā§āĻŽāĻ°āĻ¤ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡āĨ¤
āĻ‡āĻ‰āĻĒāĻŋāĻĄāĻŋ 2: āĻ†āĻ°ā§‡āĻ•āĻŸāĻž āĻ­āĻžāĻ˛ āĻŽāĻžāĻ¨ā§āĻˇ āĻ†āĻŽāĻžāĻ•ā§‡ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡ iptables āĻāĻ° āĻļā§‡āĻˇā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ°āĻžāĻ–āĻž āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¨āĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ - āĻāĻŸāĻž āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨