рд╣рдо рдХрд╖реНрдЯрдкреНрд░рдж рдХреНрд░реВрд░рддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рд╕реНрдХреИрдирд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╣рд░ рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдЦ
рдкреЛрд░реНрдЯ рдиреЙрдХрд┐рдВрдЧ рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдХрд░ рд╕рд░реНрд╡рд░ рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛
рдкреЛрд░реНрдЯ рдиреЙрдХрд┐рдВрдЧ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдпрд╣ рдмрдВрдж рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдХрдИ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ: "рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?" рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рд╕рдВрдЧрдарди рдореЗрдВ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдП рдереЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдк (1) рд╕реБрд░рдХреНрд╖рд╛ рдкрдж рдкрд░ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдПрдХ рдкрд╛рд╕ рдЖрдкрдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ (2) рдЖрдкрдХреЛ рдХрд╛рд░реНрдорд┐рдХ рд╡рд┐рднрд╛рдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рднрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрддрдГ (3) рдЖрдк рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдмрд╛рддрдЪреАрдд рдФрд░ рдПрдХ рдирд┐рд░реНрдгрдп рдХрд░рддрд╛ рд╣реИред рдЕрдм рд╕реЛрдЪрд┐рдП рдХрд┐ рдЕрдЧрд░ рд╣рд░ рдХреЛрдИ рд╕реАрдзреЗ рдореИрдиреЗрдЬрд░ рдХреЗ рдкрд╛рд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдкреЛрд░реНрдЯ рдиреЙрдХрд┐рдВрдЧ рддрдХрдиреАрдХ рдмрдВрдж рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рддреА рд╣реИред рд╕рднреА рдкреЛрд░реНрдЯ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдк рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреА рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рднреА рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд░реНрд╡рд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрди рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рдереА, рддреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рдПрдЧреАред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдкреЛрд░реНрдЯ 22 рдкрд░ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ред
рдкреЛрд░реНрдЯ рдиреЙрдХрд┐рдВрдЧ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдЖрдкрдХреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ (рдЬреИрд╕реЗ, рдкрд╛рд╡рд░ рдСрдл, рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдмреВрдЯ, рдЖрджрд┐) рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
FreeBSD рдкрд░ рд╕реНрдерд╛рдкрдирд╛
рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ FreeBSD 9.1 рд╣реИ
рдкреЛрд░реНрдЯ рдиреЙрдХрд┐рдВрдЧ рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛрддреЗ рд╣реИрдВ:
- рд╕рд░реНрд╡рд░ (рдиреЙрдХ)
- рдЧреНрд░рд╛рд╣рдХ (рджрд╕реНрддрдХ)
рдореИрдВ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред
рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
cd /usr/ports/security/knock make config

рд╣рдо рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдПрдХ рдорд╛рд░реНрдХрд░ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рдиреНрдпрд╛рд╕
рдЕрдм рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЗрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, config рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред
рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдХрдИ рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ рд╣реИрдВ, рдореИрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛ред
knockd.conf [options] logfile = /var/log/knockd.log interface = em0 [opencloseSSH] sequence = 7000:udp,7007:tcp,7777:udp seq_timeout = 5 tcpflags = syn start_command = /sbin/pfctl -t good_hosts -T add %IP% cmd_timeout = 10 stop_command = /sbin/pfctl -t good_hosts -T delete %IP% [open22] sequence = 7134:tcp,7675:tcp,7253:udp seq_timeout = 5 tcpflags = syn command = /sbin/pfctl -t good_hosts -T add %IP% [close22] sequence = 7253:udp,7675:tcp,7134:tcp seq_timeout = 5 tcpflags = syn command = /sbin/pfctl -t good_hosts -T delete %IP%
рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдСрдЯреЛрд░рди рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реЗрдЯрдЕрдк
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдерд╛)
echo pf=\"YES\" >> /etc/rc.conf
рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдХрдиреЗрдХреНрд╢рди рдФрд░ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ sshhd-config рдореЗрдВ рд░реВрдЯ рд▓реЙрдЧрд┐рди рд╕рд╣рд┐рдд рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред/etc/pf.conf ext_if="rl0" table <good_hosts> persist block in on $ext_if all pass in on $ext_if inet proto tcp from <good_hosts> \ to $ext_if port 22 keep state
рд╣рдо рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдирд┐рдпрдо рдмрдирд╛рддреЗ рд╣реИрдВ
/sbin/ipfw add 100 allow tcp from %IP% to me 22 keep-state /sbin/ipfw delete 100
рд░реАрдмреВрдЯред
рджрд╕реНрддрдХ
рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ MacOS рдХреЗ рд▓рд┐рдП рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рд╣рд┐рдкрд┐рдВрдЧред