XNUMX๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ œ์‹œ๋œ ์„๋ฐฉํ•˜๋‹ค OpenSSH 8.0, SSH 2.0 ๋ฐ SFTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐฉํ˜• ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ์–‘์ž ์ปดํ“จํ„ฐ์— ๋Œ€ํ•œ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์— ์ €ํ•ญํ•˜๋Š” ํ‚ค ๊ตํ™˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์›์ด ssh ๋ฐ sshd์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–‘์ž ์ปดํ“จํ„ฐ๋Š” ํ˜„๋Œ€ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ์ดˆ๊ฐ€ ๋˜๊ณ  ๊ธฐ์กด ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ์ž์—ฐ์ˆ˜๋ฅผ ์†Œ์ธ์ˆ˜๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๊ทผ๋ณธ์ ์œผ๋กœ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ œ์•ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. NTRU ํ”„๋ผ์ž„ (ํ•จ์ˆ˜ ntrup4591761), ํฌ์ŠคํŠธ ์–‘์ž ์•”ํ˜ธ ์‹œ์Šคํ…œ์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ํƒ€์› ๊ณก์„  ํ‚ค ๊ตํ™˜ ๋ฐฉ๋ฒ• X25519;
  • sshd์—์„œ ListenAddress ๋ฐ PermitOpen ์ง€์‹œ๋ฌธ์€ IPv2001 ์ž‘์—…์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด "host:port" ๋Œ€์‹  6๋…„์— ๊ตฌํ˜„๋œ ๋ ˆ๊ฑฐ์‹œ "host/port" ๊ตฌ๋ฌธ์„ ๋” ์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„๋Œ€ ์ƒํ™ฉ์—์„œ๋Š” IPv6์— ๋Œ€ํ•ด "[::1]:22" ๊ตฌ๋ฌธ์ด ์„ค์ •๋˜์—ˆ์œผ๋ฉฐ "ํ˜ธ์ŠคํŠธ/ํฌํŠธ"๋Š” ์ข…์ข… ์„œ๋ธŒ๋„ท(CIDR)์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ๊ณผ ํ˜ผ๋™๋ฉ๋‹ˆ๋‹ค.
  • ssh, ssh-agent ๋ฐ ssh-add๋Š” ์ด์ œ ํ‚ค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ECDSA PKCS#11 ํ† ํฐ์—์„œ;
  • ssh-keygen์—์„œ๋Š” ์ƒˆ๋กœ์šด NIST ๊ถŒ์žฅ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๊ธฐ๋ณธ RSA ํ‚ค ํฌ๊ธฐ๊ฐ€ 3072๋น„ํŠธ๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.
  • ssh์—์„œ๋Š” "PKCS11Provider=none" ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ssh_config์— ์ง€์ •๋œ PKCS11Provider ์ง€์‹œ์–ด๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • sshd๋Š” sshd_config์˜ "ForceCommand=internal-sftp" ์ œํ•œ์œผ๋กœ ์ธํ•ด ์ฐจ๋‹จ๋œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ๋•Œ ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜๋Š” ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋กœ๊ทธ ํ‘œ์‹œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • SSH์—์„œ ์ƒˆ ํ˜ธ์ŠคํŠธ ํ‚ค ์ˆ˜๋ฝ์„ ํ™•์ธํ•˜๋Š” ์š”์ฒญ์„ ํ‘œ์‹œํ•  ๋•Œ "์˜ˆ" ์‘๋‹ต ๋Œ€์‹  ์ด์ œ ํ‚ค์˜ ์˜ฌ๋ฐ”๋ฅธ ์ง€๋ฌธ์ด ์ˆ˜๋ฝ๋ฉ๋‹ˆ๋‹ค(์—ฐ๊ฒฐ ํ™•์ธ ์ดˆ๋Œ€์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ์ˆ˜๋™์œผ๋กœ ๋น„๊ตํ•˜์ง€ ์•Š๋„๋ก ํด๋ฆฝ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ๋ณ„๋„๋กœ ์ˆ˜์‹ ๋œ ์ฐธ์กฐ ํ•ด์‹œ)
  • ssh-keygen์€ ๋ช…๋ น์ค„์—์„œ ์—ฌ๋Ÿฌ ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ƒ์„ฑํ•  ๋•Œ ์ธ์ฆ์„œ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์˜ ์ž๋™ ์ฆ๊ฐ€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ProxyJump ์„ค์ •๊ณผ ๋™์ผํ•œ ์ƒˆ๋กœ์šด ์˜ต์…˜ "-J"๊ฐ€ scp ๋ฐ sftp์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ssh-agent, ssh-pkcs11-helper ๋ฐ ssh-add์—์„œ ์ถœ๋ ฅ์˜ ์ •๋ณด ๋‚ด์šฉ์„ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด "-v" ๋ช…๋ น์ค„ ์˜ต์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ง€์ •๋œ ๊ฒฝ์šฐ ์ด ์˜ต์…˜์€ ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ssh-pkcs11-helper๊ฐ€ ssh-agent์—์„œ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ)
  • ๋””์ง€ํ„ธ ์„œ๋ช… ์ƒ์„ฑ ๋ฐ ํ™•์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ssh-agent์˜ ํ‚ค ์ ํ•ฉ์„ฑ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด "-T" ์˜ต์…˜์ด ssh-add์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • sftp-server๋Š” "openssh.com์˜ lsetstat" ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” SFTP์— ๋Œ€ํ•œ SSH2_FXP_SETSTAT ์ž‘์—…์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜์ง€๋งŒ ๋‹ค์Œ ๊ธฐํ˜ธ ๋งํฌ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ธฐํ˜ธ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์š”์ฒญ์œผ๋กœ chown/chgrp/chmod ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด sftp์— "-h" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • sshd๋Š” PAM์— ๋Œ€ํ•œ $SSH_CONNECTION ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • sshd์˜ ๊ฒฝ์šฐ "Match final" ์ผ์น˜ ๋ชจ๋“œ๊ฐ€ ssh_config์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” "Match canonical"๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์ •๊ทœํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฐฐ์น˜ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋œ ๋ช…๋ น ์ถœ๋ ฅ์˜ ๋ณ€ํ™˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด sftp์— '@' ์ ‘๋‘์‚ฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ์˜ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ
    "ssh-keygen -Lf /path/certificate"๋Š” ์ด์ œ CA๊ฐ€ ์ธ์ฆ์„œ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋ฃน ๋ฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” ๋น„๊ต ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋“ฑ Cygwin ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Microsoft ์ œ๊ณต OpenSSH ํฌํŠธ์™€์˜ ๊ฐ„์„ญ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด Cygwin ํฌํŠธ์˜ sshd ํ”„๋กœ์„ธ์Šค๊ฐ€ cygsshd๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹คํ—˜์ ์ธ OpenSSL 3.x ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ œ๊ฑฐ๋จ ์ทจ์•ฝ์  (CVE-2019-6111) ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ž„์˜ ํŒŒ์ผ์„ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” scp ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ตฌํ˜„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” scp๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ผ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ˜ํ™˜๋œ ๊ฐœ์ฒด ์ด๋ฆ„์˜ ์ •ํ™•์„ฑ๋งŒ ํ™•์ธํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ธก ๊ฒ€์‚ฌ๋Š” ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ("../")๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ด๋™์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ œํ•œ๋˜์ง€๋งŒ ์›๋ž˜ ์š”์ฒญํ•œ ์ด๋ฆ„๊ณผ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ€์ง„ ํŒŒ์ผ์˜ ์ „์†ก์€ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์žฌ๊ท€๋ณต์‚ฌ(-r)์˜ ๊ฒฝ์šฐ ํŒŒ์ผ๋ช… ์™ธ์—๋„ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„๋„ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์„œ๋ฒ„๋Š” ์š”์ฒญํ•œ ํŒŒ์ผ ๋Œ€์‹  .bash_aliases ๋˜๋Š” .ssh/authorized_keys๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ scp ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์˜ํ•ด ์‚ฌ์šฉ์ž์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ.

    ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” scp ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์–ด ์š”์ฒญ๋œ ํŒŒ์ผ ์ด๋ฆ„๊ณผ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์„œ๋ฒ„์—์„œ ๋ณด๋‚ธ ํŒŒ์ผ ์ด๋ฆ„ ๊ฐ„์˜ ์ผ์น˜์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํฌ ํ™•์žฅ ๋ฌธ์ž๊ฐ€ ์„œ๋ฒ„์ธก๊ณผ ํด๋ผ์ด์–ธํŠธ์ธก์—์„œ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์Šคํฌ ์ฒ˜๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฐจ์ด๋กœ ์ธํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ scp์—์„œ ํŒŒ์ผ ์ˆ˜๋ฝ์„ ์ค‘์ง€ํ•˜๋Š” ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ ์ธก ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด "-T" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด scp ํ”„๋กœํ† ์ฝœ์˜ ๊ฐœ๋…์  ์žฌ์ž‘์—…์ด ํ•„์š”ํ•˜๋ฉฐ, ์ด ํ”„๋กœํ† ์ฝœ ์ž์ฒด๋Š” ์ด๋ฏธ ๊ตฌ์‹์ด๋ฏ€๋กœ ๋Œ€์‹  sftp ๋ฐ rsync์™€ ๊ฐ™์€ ๋ณด๋‹ค ํ˜„๋Œ€์ ์ธ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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