8.5๊ฐ์ ๊ฐ์ ๊ฐ๋ฐ ๋์ SSH 2.0 ๋ฐ SFTP ํ๋กํ ์ฝ์ ํตํ ์์ ์ ์ํ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ์ ๊ฐ๋ฐฉํ ๊ตฌํ์ธ OpenSSH XNUMX๊ฐ ์ถ์๋์์ต๋๋ค.
OpenSSH ๊ฐ๋ฐ์๋ ์ฃผ์ด์ง ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ ์ถฉ๋ ๊ณต๊ฒฉ์ ํจ์จ์ฑ ์ฆ๊ฐ๋ก ์ธํด SHA-1 ํด์๋ฅผ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๊ณง ํ๊ธฐ๋ ๊ฒ์์ ์๊ธฐ์์ผฐ์ต๋๋ค(์ถฉ๋ ์ ํ ๋น์ฉ์ ์ฝ $50๋ก ์ถ์ฐ๋ฉ๋๋ค). ๋ค๊ฐ์ค๋ ๋ฆด๋ฆฌ์ค ์ค ํ๋์์๋ SSH ํ๋กํ ์ฝ์ ๋ํ ์๋ณธ RFC์ ์ธ๊ธ๋์ด ์๊ณ ์ค์ ๋ก ๋๋ฆฌ ํผ์ ธ ์๋ "ssh-rsa" ๊ณต๊ฐ ํค ๋์งํธ ์๋ช ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํํ ๊ณํ์ ๋๋ค.
์์คํ ์์ ssh-rsa ์ฌ์ฉ์ ํ ์คํธํ๋ ค๋ฉด "-oHostKeyAlgorithms=-ssh-rsa" ์ต์ ์ ์ฌ์ฉํ์ฌ ssh๋ฅผ ํตํด ์ฐ๊ฒฐ์ ์๋ํ ์ ์์ต๋๋ค. ๋์์, ๊ธฐ๋ณธ์ ์ผ๋ก "ssh-rsa" ๋์งํธ ์๋ช ์ ๋นํ์ฑํํ๋ค๊ณ ํด์ RSA ํค ์ฌ์ฉ์ด ์์ ํ ์ค๋จ๋๋ ๊ฒ์ ์๋๋๋ค. SSH ํ๋กํ ์ฝ์ SHA-1 ์ธ์๋ ๋ค๋ฅธ ํด์ ๊ณ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํนํ, "ssh-rsa" ์ธ์๋ "rsa-sha2-256"(RSA/SHA256) ๋ฐ "rsa-sha2-512"(RSA/SHA512) ๋ฒ๋ค์ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ผ๋ก์ ์ํํ ์ ํ์ ์ํด OpenSSH 8.5์๋ ๊ธฐ๋ณธ์ ์ผ๋ก UpdateHostKeys ์ค์ ์ด ํ์ฑํ๋์ด ์์ด ํด๋ผ์ด์ธํธ๊ฐ ์๋์ผ๋ก ๋ณด๋ค ์์ ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉํ๋ฉด ํน์ ํ๋กํ ์ฝ ํ์ฅ์ด ํ์ฑํ๋ฉ๋๋ค.[์ด๋ฉ์ผ ๋ณดํธ]"๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์ฆ ํ ์๋ฒ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ํธ์คํธ ํค์ ๋ํด ํด๋ผ์ด์ธํธ์ ์๋ฆด ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ~/.ssh/known_hosts ํ์ผ์ ์ด๋ฌํ ํค๋ฅผ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํธ์คํธ ํค๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์๋ฒ์์ ํค๋ฅผ ๋ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
UpdateHostKeys ์ฌ์ฉ์ ๋์ค์ ์ ๊ฑฐ๋ ์ ์๋ ๋ช ๊ฐ์ง ์ฃผ์ ์ฌํญ์ผ๋ก ์ ํ๋ฉ๋๋ค. ํค๋ UserKnownHostsFile์์ ์ฐธ์กฐ๋์ด์ผ ํ๋ฉฐ GlobalKnownHostsFile์์๋ ์ฌ์ฉ๋์ด์๋ ์ ๋ฉ๋๋ค. ํค๋ ํ๋์ ์ด๋ฆ์ผ๋ก๋ง ์กด์ฌํด์ผ ํฉ๋๋ค. ํธ์คํธ ํค ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค. ํธ์คํธ ์ด๋ฆ์ผ๋ก ์๋ ค์ง ํธ์คํธ ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค. verifyHostKeyDNS ์ค์ ์ ๋นํ์ฑํํด์ผ ํฉ๋๋ค. UserKnownHostsFile ๋งค๊ฐ๋ณ์๊ฐ ํ์ฑ ์ํ์ฌ์ผ ํฉ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ๊ถ์ฅ๋๋ ์๊ณ ๋ฆฌ์ฆ์๋ RFC2 ๊ธฐ๋ฐ์ rsa-sha256-512/8332 RSA SHA-2(OpenSSH 7.2๋ถํฐ ์ง์๋๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋จ), ssh-ed25519(OpenSSH 6.5๋ถํฐ ์ง์) ๋ฐ ecdsa-sha2-nistp256/384/521 ๊ธฐ๋ฐ์ด ํฌํจ๋ฉ๋๋ค. RFC5656 ECDSA(OpenSSH 5.7๋ถํฐ ์ง์).
๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ:
- ๋ณด์ ๋ณ๊ฒฝ ์ฌํญ:
- ์ด๋ฏธ ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ(์ด์ค ํด์ )์ ๋ค์ ํด์ ํจ์ผ๋ก์จ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ด ssh-agent์์ ์์ ๋์์ต๋๋ค. ์ด ๋ฌธ์ ๋ OpenSSH 8.2 ๋ฆด๋ฆฌ์ค๋ถํฐ ์กด์ฌํ์ผ๋ฉฐ ๊ณต๊ฒฉ์๊ฐ ๋ก์ปฌ ์์คํ ์ ssh-agent ์์ผ์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ ์ ์ฌ์ ์ผ๋ก ์ ์ฉ๋ ์ ์์ต๋๋ค. ์ ์ฉ์ ๋์ฑ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ฒ์ ๋ฃจํธ์ ์๋ ์ฌ์ฉ์๋ง์ด ์์ผ์ ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ๊ณต๊ฒฉ ์๋๋ฆฌ์ค๋ ์์ด์ ํธ๊ฐ ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ โโ๊ณ์ ์ด๋ ๊ณต๊ฒฉ์๊ฐ ๋ฃจํธ ์ก์ธ์ค ๊ถํ์ ๊ฐ๊ณ ์๋ ํธ์คํธ๋ก ๋ฆฌ๋๋ ์ ๋๋ ๊ฒ์ ๋๋ค.
- sshd๋ ์ฌ์ฉ์ ์ด๋ฆ์ด ํฌํจ๋ ๋งค์ฐ ํฐ ๋งค๊ฐ๋ณ์๋ฅผ PAM ํ์ ์์คํ ์ ์ ๋ฌํ๋ ๊ฒ์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ฅผ ํตํด PAM(ํ๋ฌ๊ทธํ ์ธ์ฆ ๋ชจ๋) ์์คํ ๋ชจ๋์ ์ทจ์ฝ์ฑ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด ๋ณ๊ฒฝ ์ฌํญ์ sshd๊ฐ ์ต๊ทผ์ ๋ฐ๊ฒฌ๋ Solaris์ ๋ฃจํธ ์ทจ์ฝ์ (CVE-2020-14871)์ ์ ์ฉํ๋ ๋ฒกํฐ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ณ๊ฒฝ ์ฌํญ:
- ssh ๋ฐ sshd์์๋ ์์ ์ปดํจํฐ์ ์ถ์ธก์ ์ ํญํ๋ ์คํ์ ์ธ ํค ๊ตํ ๋ฐฉ๋ฒ์ด ์ฌ์ค๊ณ๋์์ต๋๋ค. ์์ ์ปดํจํฐ๋ ํ๋ ๋น๋์นญ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ์ด๊ฐ ๋๊ณ ๊ธฐ์กด ํ๋ก์ธ์์์๋ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ์์ฐ์๋ฅผ ์์ธ์๋ก ๋ถํดํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ ๋น ๋ฆ ๋๋ค. ์ฌ์ฉ๋ ๋ฐฉ๋ฒ์ ํฌ์คํธ ์์ ์ํธ ์์คํ ์ ์ํด ๊ฐ๋ฐ๋ NTRU Prime ์๊ณ ๋ฆฌ์ฆ๊ณผ X25519 ํ์ ๊ณก์ ํค ๊ตํ ๋ฐฉ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋์ ์ [์ด๋ฉ์ผ ๋ณดํธ] ์ด ๋ฐฉ๋ฒ์ ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์๋ณ๋ฉ๋๋ค. [์ด๋ฉ์ผ ๋ณดํธ] (sstrup4591761 ์๊ณ ๋ฆฌ์ฆ์ sntrup761๋ก ๋์ฒด๋์์ต๋๋ค.)
- ssh ๋ฐ sshd์์ ์ง์๋๋ ๋์งํธ ์๋ช ์๊ณ ๋ฆฌ์ฆ์ด ๋ฐํ๋๋ ์์๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ด์ ECDSA ๋์ ED25519๊ฐ ๋จผ์ ์ ๊ณต๋ฉ๋๋ค.
- ssh ๋ฐ sshd์์ ๋ํํ ์ธ์ ์ ๋ํ TOS/DSCP ์๋น์ค ํ์ง ๋งค๊ฐ๋ณ์ ์ค์ ์ ์ด์ TCP ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ ์ ์ํ๋ฉ๋๋ค.
- SSH ๋ฐ SSHD์์ ์ํธํ ์ง์์ด ์ค๋จ๋์์ต๋๋ค. [์ด๋ฉ์ผ ๋ณดํธ]๋ aes256-cbc์ ๋์ผํ๋ฉฐ RFC-4253์ด ์น์ธ๋๊ธฐ ์ ์ ์ฌ์ฉ๋์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก CheckHostIP ๋งค๊ฐ๋ณ์๋ ๋นํ์ฑํ๋์ด ์์ผ๋ฉฐ ๊ทธ ์ด์ ์ ๋ฌด์ํ ์ ์์ง๋ง ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์ ๋ค์ ํธ์คํธ์ ๋ํ ํค ์ํ์ด ์๋นํ ๋ณต์กํด์ง๋๋ค.
- ํด๋ผ์ด์ธํธ ์ฃผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ค๋ฌ ์คํ ๊ฐ๋๋ฅผ ์ ํํ๊ธฐ ์ํด PerSourceMaxStartups ๋ฐ PerSourceNetBlockSize ์ค์ ์ด sshd์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฌํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ MaxStartups ์ค์ ๊ณผ ๋น๊ตํ์ฌ ํ๋ก์ธ์ค ์์ ์ ํ์ ๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
- ์๋ก์ด LogVerbose ์ค์ ์ด ssh ๋ฐ sshd์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ ํ๋ฆฟ, ๊ธฐ๋ฅ ๋ฐ ํ์ผ๋ณ๋ก ํํฐ๋งํ๋ ๊ธฐ๋ฅ์ ํตํด ๋ก๊ทธ์ ๋คํ๋๋ ๋๋ฒ๊น ์ ๋ณด์ ์์ค์ ๊ฐ์ ๋ก ๋์ผ ์ ์์ต๋๋ค.
- SSH์์ ์ ํธ์คํธ ํค๋ฅผ ์๋ฝํ๋ฉด ํด๋น ํค์ ๊ด๋ จ๋ ๋ชจ๋ ํธ์คํธ ์ด๋ฆ๊ณผ IP ์ฃผ์๊ฐ ํ์๋ฉ๋๋ค.
- ssh์์๋ UserKnownHostsFile=none ์ต์ ์ ์ฌ์ฉํ์ฌ ํธ์คํธ ํค๋ฅผ ์๋ณํ ๋ Known_hosts ํ์ผ์ ์ฌ์ฉ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
- KnownHostsCommand ์ค์ ์ด ssh์ฉ ssh_config์ ์ถ๊ฐ๋์ด ์ง์ ๋ ๋ช ๋ น์ ์ถ๋ ฅ์์ โโKnown_hosts ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- SOCKS์ ํจ๊ป RemoteForward ์ต์ ์ ์ฌ์ฉํ ๋ ๋์์ ์ ํํ ์ ์๋๋ก ssh์ฉ ssh_config์ PermitRemoteOpen ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค.
- FIDO ํค์ฉ SSH์์๋ ์๋ชป๋ PIN์ผ๋ก ์ธํด ๋์งํธ ์๋ช ์์ ์ด ์คํจํ๊ณ ์ฌ์ฉ์์๊ฒ PIN์ ์ ๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋์ง ์๋ ๊ฒฝ์ฐ(์: ์ฌ๋ฐ๋ฅธ ์์ฒด ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์๊ณ ์ฅ์น๋ ์๋ PIN ์ ๋ ฅ์ผ๋ก ๋์ฒด๋์์ต๋๋ค).
- sshd๋ Linux์ seccomp-bpf ๊ธฐ๋ฐ ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐ ์์คํ ํธ์ถ์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
- contrib/ssh-copy-id ์ ํธ๋ฆฌํฐ๊ฐ ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru