"๋ณด์ ์
ธ" SSH๋ ํธ์คํธ ๊ฐ ๋ณด์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ํ ๋คํธ์ํฌ ํ๋กํ ์ฝ๋ก, ํ์ค์ ์ผ๋ก ํฌํธ 22(๋ณ๊ฒฝํ๋ ๊ฒ์ด ๋ ์ข์)๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋๋ค. SSH ํด๋ผ์ด์ธํธ์ SSH ์๋ฒ๋ ๋๋ถ๋ถ์ ์ด์ ์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ SSH ๋ด์์ ์๋ํฉ๋๋ค. ์ฆ, ๋ค๋ฅธ ์ปดํจํฐ์์ ์๊ฒฉ์ผ๋ก ์์
ํ๊ณ ์ํธํ๋ ์ฑ๋์ ํตํด ์ค๋์ค ๋๋ ๋น๋์ค ์คํธ๋ฆผ์ ์ ์กํ ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ,
์ธ์ฆ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฃจ์ด์ง์ง๋ง ๊ฐ๋ฐ์์ ์์คํ
๊ด๋ฆฌ์๋ ์ ํต์ ์ผ๋ก SSH ํค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฌธ์ ๋ ๊ฐ์ธํค๊ฐ ๋๋๋นํ ์ ์๋ค๋ ์ ์ด๋ค. ์ํธ๋ฅผ ์ถ๊ฐํ๋ฉด ์ด๋ก ์ ์ผ๋ก ๊ฐ์ธ ํค ๋๋์ ๋ฐฉ์งํ ์ ์์ง๋ง ์ค์ ๋ก๋ ํค๋ฅผ ์ ๋ฌํ๊ณ ์บ์ฑํ ๋
์ด์ค ์ธ์ฆ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ
Honeycomb์ ๊ฐ๋ฐ์๊ฐ ์ต๊ทผ ๊ฒ์ํ์ต๋๋ค.
์ง์นจ์์๋ ์ธํฐ๋ท์ ์ด๋ ค ์๋ ํน์ ๊ธฐ๋ณธ ํธ์คํธ(์์)๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ธํฐ๋ท์ ํตํด ๋ ธํธ๋ถ์ด๋ ์ปดํจํฐ์์ ์ด ํธ์คํธ์ ์ฐ๊ฒฐํ๊ณ ๊ทธ ๋ค์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ์ฅ์น์ ์ก์ธ์คํ๋ ค๊ณ ํฉ๋๋ค. 2FA๋ ๊ณต๊ฒฉ์๊ฐ ๋งฌ์จ์ด ์ค์น ๋ฑ์ ํตํด ๋ ธํธ๋ถ์ ์ก์ธ์คํ๋๋ผ๋ ๋์ผํ ์์ ์ ์ํํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ต์ ์ OTP์ ๋๋ค.
OTP - ์ผํ์ฉ ๋์งํธ ๋น๋ฐ๋ฒํธ. ์ด ๊ฒฝ์ฐ ํค์ ํจ๊ป SSH ์ธ์ฆ์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ๊ณต๊ฒฉ์๊ฐ ๊ฐ์ง ์์๋ฅผ ์ธ์ฐ๊ณ OTP๋ฅผ ๊ฐ๋ก์ฑ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ด์์ ์ธ ์ต์ ์ด ์๋๋ผ๊ณ ์ผ์ต๋๋ค. ํ์ง๋ง ์๋ฌด๊ฒ๋ ์๋ ๊ฒ๋ณด๋ค๋ ๋ซ์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์๋ฒ ์ธก์์๋ ๋ค์ ์ค์ด Chef ๊ตฌ์ฑ์ ๊ธฐ๋ก๋ฉ๋๋ค.
metadata.rb
attributes/default.rb
~์attributes.rb
)files/sshd
recipes/default.rb
(๋ค์์์ ๋ณต์ฌrecipe.rb
)templates/default/users.oath.erb
๋ชจ๋ OTP ์ ํ๋ฆฌ์ผ์ด์
์ ํด๋ผ์ด์ธํธ ์ธก์ ์ค์น๋ฉ๋๋ค: Google Authenticator, Authy, Duo, Lastpass๊ฐ ์ค์น๋จ brew install oath-toolkit
๋๋ apt install oathtool openssl
, ์์์ base16 ๋ฌธ์์ด(ํค)์ด ์์ฑ๋ฉ๋๋ค. ๋ชจ๋ฐ์ผ ์ธ์ฆ์๊ฐ ์ฌ์ฉํ๋ Base32 ํ์์ผ๋ก ๋ณํ๋์ด ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ง์ ๊ฐ์ ธ์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก Bastion์ ์ฐ๊ฒฐํ๋ฉด ์ด์ ์ํธ ๋ฌธ๊ตฌ๋ฟ๋ง ์๋๋ผ ์ธ์ฆ์ ์ํ OTP ์ฝ๋๋ ํ์ํ๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
โ ssh -A bastion
Enter passphrase for key '[snip]':
One-time password (OATH) for '[user]':
Welcome to Ubuntu 18.04.1 LTS...
๋ ๋ฒ์งธ ์ต์ ์ ํ๋์จ์ด ์ธ์ฆ์ ๋๋ค.
์ด ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ์์๋ ํ๋์จ์ด ์ฅ์น๋ ์์ฒด ์ธ์์ด ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๋ ๋งค๋ฒ OTP ์ฝ๋๋ฅผ ์ ๋ ฅํ ํ์๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ Chef ๊ตฌ์ฑ์ ์ข ๋ ๋ณต์กํ๋ฉฐ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ์ OS์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๋จ๊ณ๋ฅผ ์๋ฃํ ํ MacOS์ ํด๋ผ์ด์ธํธ๋ ์ํธ ๋ฌธ๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ผ์์ ์๊ฐ๋ฝ์ ๋๋ฉด SSH์์ ์ธ์ฆ์ ํ์ธํ ์ ์์ต๋๋ค(๋ ๋ฒ์งธ ์์).
iOS ๋ฐ Android ์์ ์๊ฐ ๋ก๊ทธ์ธ์ ํ์ธํฉ๋๋ค.
Linux/ChromeOS์๋ YubiKey USB ํ ํฐ์ ์ฌ์ฉํ๋ ์ต์
์ด ์์ต๋๋ค. ๋ฌผ๋ก ๊ณต๊ฒฉ์๊ฐ ํ ํฐ์ ํ์น ์ ์์ง๋ง ์ฌ์ ํ ์ํธ๋ฅผ ๋ชจ๋ฆ
๋๋ค.
์ถ์ฒ : habr.com