์‚ฌ์ „ ์ธ์ฆ ์ทจ์•ฝ์ ์„ ์ˆ˜์ •ํ•œ OpenSSH 9.2 ์ถœ์‹œ

SSH 9.2 ๋ฐ SFTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„์˜ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์ธ OpenSSH 2.0 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์€ ์‚ฌ์ „ ์ธ์ฆ ๋‹จ๊ณ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ด์ค‘์œผ๋กœ ํ•ด์ œ๋˜๋Š” ์ทจ์•ฝ์ ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. OpenSSH 9.1 ๋ฆด๋ฆฌ์Šค๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฉฐ ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ทจ์•ฝ์  ๋ฐœํ˜„ ์กฐ๊ฑด์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด SSH ๋ฒ„์ „์— ๋”ฐ๋ผ "SSH_BUG_CURVE2.0PAD" ๋ฐ "SSH_OLD_DHGEX" ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด SSH ํด๋ผ์ด์–ธํŠธ ๋ฐฐ๋„ˆ๋ฅผ "SSH-9.1-FuTTYSH_1p25519"๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ. ์ด๋Ÿฌํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•œ ํ›„ "options.kex_algorithms" ๋ฒ„ํผ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋Š” compat_kex_proposal()์„ ํ˜ธ์ถœํ•˜๋Š” do_ssh2_kex() ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ์™€ input_userauth_request(), mm_getpwnamallow()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” do_authentication2() ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋‘ ๋ฒˆ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. ), ์ฒด์ธ์„ ๋”ฐ๋ผ copy_set_server_options(), assemble_algorithms() ๋ฐ kex_assemble_names().

์•…์šฉ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ทจ์•ฝ์ ์— ๋Œ€ํ•ด ์ž‘๋™ํ•˜๋Š” ์•…์šฉ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด์ค‘ ํ•ด์ œ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์‚ฌ์ „ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋Š” ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ๊ฐ์†Œ๋œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ.

์–ธ๊ธ‰๋œ ์ทจ์•ฝ์  ์™ธ์—๋„ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ณด์•ˆ ๋ฌธ์ œ๋„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

  • "PermitRemoteOpen" ์„ค์ •์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ "any" ๋ฐ "none" ๊ฐ’๊ณผ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” OpenSSH 8.7๋ณด๋‹ค ์ตœ์‹  ๋ฒ„์ „์—์„œ ๋‚˜ํƒ€๋‚˜๋ฉฐ ๊ถŒํ•œ์ด ํ•˜๋‚˜๋งŒ ์ง€์ •๋œ ๊ฒฝ์šฐ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฆ„ ํ™•์ธ์— ์‚ฌ์šฉ๋˜๋Š” DNS ์„œ๋ฒ„๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ณต๊ฒฉ์ž๋Š” CanonicalizeHostname ๋ฐ CanonicalizePermittedCNAMEs ์˜ต์…˜์ด ๊ตฌ์„ฑ์—์„œ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  ์‹œ์Šคํ…œ ํ™•์ธ์ž๊ฐ€ ํŒŒ์ผ์˜ ์ •ํ™•์„ฑ์„ ํ™•์ธํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Known_hosts ํŒŒ์ผ์— ํŠน์ˆ˜ ๋ฌธ์ž(์˜ˆ: "*")๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DNS ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜ ์‘๋‹ต. ๋ฐ˜ํ™˜๋œ ์ด๋ฆ„์€ CanonicalizePermittedCNAME์„ ํ†ตํ•ด ์ง€์ •๋œ ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ณต๊ฒฉ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ๋ช…๋ น์ค„์„ ์ œ๊ณตํ•˜๋Š” "~C" ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค์˜ ํด๋ผ์ด์–ธํŠธ ์ธก ์ฒ˜๋ฆฌ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ssh์šฉ ssh_config์— EnableEscapeCommandline ์„ค์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ œ ๋” ์—„๊ฒฉํ•œ ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด "~C" ์ฒ˜๋ฆฌ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ๋Ÿฐํƒ€์ž„ ์‹œ ํฌํŠธ ์ „๋‹ฌ์— "~C"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ด ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฑ„๋„ ๋น„ํ™œ์„ฑ ์‹œ๊ฐ„ ์ œํ•œ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด sshd์šฉ sshd_config์— ChannelTimeout ์ง€์‹œ์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ง€์‹œ์–ด์— ์ง€์ •๋œ ์‹œ๊ฐ„ ๋™์•ˆ ํŠธ๋ž˜ํ”ฝ์ด ๊ธฐ๋ก๋˜์ง€ ์•Š์€ ์ฑ„๋„์€ ์ž๋™์œผ๋กœ ๋‹ซํž™๋‹ˆ๋‹ค). ์„ธ์…˜, X11, ์—์ด์ „ํŠธ ๋ฐ ํŠธ๋ž˜ํ”ฝ ๋ฆฌ๋””๋ ‰์…˜์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๊ฐ„ ์ œํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • UnusedConnectionTimeout ์ง€์‹œ๋ฌธ์ด sshd์šฉ sshd_config์— ์ถ”๊ฐ€๋˜์–ด ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ํ™œ์„ฑ ์ฑ„๋„์ด ์—†์—ˆ๋˜ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„ ์ œํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • SSH ํด๋ผ์ด์–ธํŠธ์˜ ์œ ์‚ฌํ•œ ์˜ต์…˜๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด "-V" ์˜ต์…˜์ด sshd์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์ธ์ˆ˜์˜ ๊ฐ’์„ ๋ฐ˜์˜ํ•˜์—ฌ "ssh -G"์˜ ์ถœ๋ ฅ์— "Host" ํ–‰์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณต์‚ฌ ๋ฒ„ํผ ํฌ๊ธฐ ๋ฐ ๋ณด๋ฅ˜ ์ค‘์ธ ์š”์ฒญ ์ˆ˜์™€ ๊ฐ™์€ SFTP ํ”„๋กœํ† ์ฝœ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด "-X" ์˜ต์…˜์ด scp ๋ฐ sftp์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ssh-keyscan์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด CIDR ์ฃผ์†Œ ๋ฒ”์œ„(์˜ˆ: "ssh-keyscan 192.168.0.0/24")๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€