์ด ๊ธฐ์ฌ์์๋ ์ฐ๊ฒฐ ์ ํ์ธ ์์ฒญ์ ๋ณด๋ด๋ Telegram ๋ด์ผ๋ก XNUMX๋จ๊ณ ์ธ์ฆ์ ํ์ฑํํ๊ธฐ ์ํด OpenVPN ์๋ฒ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
OpenVPN์ ๋ด๋ถ ์กฐ์ง ๋ฆฌ์์ค์ ๋ํ ์ง์์ ๋ณด์ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ ์๋ ค์ง ๋ฌด๋ฃ ์คํ ์์ค VPN ์๋ฒ์ ๋๋ค.
VPN ์๋ฒ์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ธ์ฆ์ผ๋ก๋ ์ผ๋ฐ์ ์ผ๋ก ํค์ ์ฌ์ฉ์ ๋ก๊ทธ์ธ/๋น๋ฐ๋ฒํธ์ ์กฐํฉ์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋์์ ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋ ๋น๋ฐ๋ฒํธ๋ ์ ์ฒด ์ธํธ๋ฅผ ์ ์ ํ ๋ณด์ ์์ค์ ์ ๊ณตํ์ง ์๋ ๋จ์ผ ์์๋ก ๋ง๋ญ๋๋ค. ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ป์ ๊ณต๊ฒฉ์๋ VPN ์๋ฒ์๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ ํนํ Windows๋ฅผ ์คํํ๋ ์ปดํจํฐ์์ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ์ ํด๋น๋ฉ๋๋ค.
๋ ๋ฒ์งธ ์์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌด๋จ ์ก์ธ์ค ์ํ์ด 99% ๊ฐ์ํ๊ณ ์ฌ์ฉ์์ ์ฐ๊ฒฐ ํ๋ก์ธ์ค๊ฐ ์ ํ ๋ณต์กํด์ง์ง ์์ต๋๋ค.
์ง๊ธ ๋ฐ๋ก ์์ฝํ๊ฒ ์ต๋๋ค. ๊ตฌํ์ ์ํด์๋ ํ์์ ๋ฐ๋ผ ๋ฌด๋ฃ ๊ด์ธ๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ์ฌ ์ธ์ฆ ์๋ฒ multifactor.ru์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
์ด์ ์์น
- OpenVPN์ ์ธ์ฆ์ ์ํด openvpn-plugin-auth-pam ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค.
- ํ๋ฌ๊ทธ์ธ์ ์๋ฒ์์ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํ๊ณ Multifactor ์๋น์ค์ RADIUS ํ๋กํ ์ฝ์ ํตํด ๋ ๋ฒ์งธ ์์๋ฅผ ์์ฒญํฉ๋๋ค.
- Multifactor๋ Telegram ๋ด์ ํตํด ์ฌ์ฉ์์๊ฒ ์ก์ธ์ค๋ฅผ ํ์ธํ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค.
- ์ฌ์ฉ์๋ ํ ๋ ๊ทธ๋จ ์ฑํ ์์ ์ก์ธ์ค ์์ฒญ์ ํ์ธํ๊ณ VPN์ ์ฐ๊ฒฐํฉ๋๋ค.
OpenVPN ์๋ฒ ์ค์น
OpenVPN ์ค์น ๋ฐ ๊ตฌ์ฑ ๊ณผ์ ์ ์ค๋ช ํ๋ ๊ธฐ์ฌ๊ฐ ์ธํฐ๋ท์ ๋ง์ด ์์ผ๋ฏ๋ก ์ค๋ณต๋์ง๋ ์์ต๋๋ค. ๋์์ด ํ์ํ๋ฉด ๊ธฐ์ฌ ๋ ๋ถ๋ถ์ ํํ ๋ฆฌ์ผ์ ๋ํ ์ฌ๋ฌ ๋งํฌ๊ฐ ์์ต๋๋ค.
๋ค๋จ๊ณ ์ค์
์ด๋
์ผ๋จ ์์ฑ๋๋ฉด ๋ค์ ๋ ๊ฐ์ง ์ต์
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. NAS ์๋ณ์ ะธ ๊ณต์ ๋น๋ฐ, ํ์ ๊ตฌ์ฑ์ ํ์ํฉ๋๋ค.
"๊ทธ๋ฃน" ์น์ ์์ "๋ชจ๋ ์ฌ์ฉ์" ๊ทธ๋ฃน ์ค์ ์ผ๋ก ์ด๋ํ์ฌ "๋ชจ๋ ๋ฆฌ์์ค" ํ๋๊ทธ๋ฅผ ์ ๊ฑฐํ๋ฉด ํน์ ๊ทธ๋ฃน์ ์ฌ์ฉ์๋ง VPN ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ ๊ทธ๋ฃน "VPN ์ฌ์ฉ์"๋ฅผ ์์ฑํ๊ณ ํ ๋ ๊ทธ๋จ์ ์ ์ธํ ๋ชจ๋ ์ธ์ฆ ๋ฐฉ๋ฒ์ ๋นํ์ฑํํ๊ณ ์ฌ์ฉ์๊ฐ ์์ฑ๋ VPN ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์์ ๋ํ๋ ๋๋ค.
"์ฌ์ฉ์" ์น์ ์์ VPN์ ์ก์ธ์คํ ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ "VPN ์ฌ์ฉ์" ๊ทธ๋ฃน์ ์ถ๊ฐํ ํ ๋ ๋ฒ์งธ ์ธ์ฆ ์์๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ๋งํฌ๋ฅผ ๋ณด๋ ๋๋ค. ์ฌ์ฉ์ ๋ก๊ทธ์ธ์ VPN ์๋ฒ์ ๋ก๊ทธ์ธ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
OpenVPN ์๋ฒ ์ค์
ํ์ผ ์ด๊ธฐ /etc/openvpn/server.conf PAM ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ํ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํฉ๋๋ค.
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
ํ๋ฌ๊ทธ์ธ์ ๋๋ ํ ๋ฆฌ์ ์์นํ ์ ์์ต๋๋ค. /usr/lib/openvpn/ํ๋ฌ๊ทธ์ธ/ ๋๋ /usr/lib64/openvpn/ํ๋ฌ๊ทธ์ธ/ ๊ทํ์ ์์คํ ์ ๋ฐ๋ผ.
๋ค์์ผ๋ก pam_radius_auth ๋ชจ๋์ ์ค์นํด์ผ ํฉ๋๋ค.
$ sudo yum install pam_radius
ํธ์งํ ํ์ผ์ ์ฝ๋๋ค. /etc/pam_radius.conf Multifactor์ RADIUS ์๋ฒ ์ฃผ์๋ฅผ ์ง์ ํฉ๋๋ค.
radius.multifactor.ru shared_secret 40
์ง์ญ :
- radius.multifactor.ru โ ์๋ฒ ์ฃผ์
- shared_secret - ํด๋น VPN ์ค์ ๋งค๊ฐ๋ณ์์์ ๋ณต์ฌํฉ๋๋ค.
- 40์ด - ์ฌ์ ๊ฐ ํฐ ์์ฒญ ๋๊ธฐ ์๊ฐ ์ด๊ณผ
๋๋จธ์ง ์๋ฒ๋ ์ญ์ ํ๊ฑฐ๋ ์ฃผ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. (์ฒ์์ ์ธ๋ฏธ์ฝ๋ก ์ ์ ๋ ฅํ์ธ์.)
๋ค์์ผ๋ก ์๋น์ค ์ ํ openvpn์ ๋ํ ํ์ผ์ ๋ง๋ญ๋๋ค.
$ sudo vi /etc/pam.d/openvpn
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฑธ ์ฐ์ธ์
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-auth
์ฒซ ๋ฒ์งธ ์ค์ PAM ๋ชจ๋ pam_radius_auth๋ฅผ ๋งค๊ฐ๋ณ์์ ์ฐ๊ฒฐํฉ๋๋ค:
- Skip_passwd - RADIUS Multifactor ์๋ฒ๋ก์ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ ์ ์ก์ ๋นํ์ฑํํฉ๋๋ค(์ ํ์๊ฐ ์์).
- client_id โ [NAS-Identifier]๋ฅผ VPN ๋ฆฌ์์ค ์ค์ ์ ํด๋น ๋งค๊ฐ๋ณ์๋ก ๋ฐ๊ฟ๋๋ค.
๊ฐ๋ฅํ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ ๋ค์์ ์ค๋ช ๋์ด ์์ต๋๋ค.๋ชจ๋์ ๋ํ ๋ฌธ์ .
๋ ๋ฒ์งธ ๋ฐ ์ธ ๋ฒ์งธ ์ค์๋ ๋ ๋ฒ์งธ ์ธ์ฆ ์์์ ํจ๊ป ์๋ฒ์ ๋ก๊ทธ์ธ, ๋น๋ฐ๋ฒํธ ๋ฐ ์ฌ์ฉ์ ๊ถํ์ ๋ํ ์์คํ ํ์ธ์ด ํฌํจ๋ฉ๋๋ค.
OpenVPN ๋ค์ ์์
$ sudo systemctl restart openvpn@server
ํด๋ผ์ด์ธํธ ์ค์
ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ๋ฐ ๋น๋ฐ๋ฒํธ์ ๋ํ ์์ฒญ์ ํฌํจํฉ๋๋ค.
auth-user-pass
ะัะพะฒะตัะบะฐ
OpenVPN ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ๊ณ ์๋ฒ์ ์ฐ๊ฒฐํ ํ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ์ธ์. ํ ๋ ๊ทธ๋จ ๋ด์ ๋ ๊ฐ์ ๋ฒํผ์ด ์๋ ์ก์ธ์ค ์์ฒญ์ ๋ณด๋ ๋๋ค.
ํ๋์ ๋ฒํผ์ ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ณ ๋ ๋ฒ์งธ ๋ฒํผ์ ์ฐจ๋จํฉ๋๋ค.
์ด์ ํด๋ผ์ด์ธํธ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ๋ ๋ฒ์งธ ์์๋ ๋ฌด๋จ ์ก์ธ์ค๋ก๋ถํฐ OpenVPN ์๋ฒ๋ฅผ ์์ ์ ์ผ๋ก ๋ณดํธํฉ๋๋ค.
๋ญ๊ฐ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ
๋๋ฝ๋ ํญ๋ชฉ์ด ์๋์ง ์์ฐจ์ ์ผ๋ก ํ์ธํ์ธ์.
- ๋น๋ฐ๋ฒํธ๊ฐ ์ค์ ๋ OpenVPN์ ์ฌ์ฉํ๋ ์๋ฒ์ ์ฌ์ฉ์๊ฐ ์์ต๋๋ค
- ์๋ฒ๋ UDP ํฌํธ 1812๋ฅผ ํตํด radius.multifactor.ru ์ฃผ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
- NAS ์๋ณ์ ๋ฐ ๊ณต์ ๋น๋ฐ ๋งค๊ฐ๋ณ์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ ๋์์ต๋๋ค.
- ๋์ผํ ๋ก๊ทธ์ธ์ ๊ฐ์ง ์ฌ์ฉ์๊ฐ Multifactor ์์คํ ์์ ์์ฑ๋์์ผ๋ฉฐ VPN ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ๋ถ์ฌ๋์์ต๋๋ค.
- ์ฌ์ฉ์๊ฐ ํ ๋ ๊ทธ๋จ์ ํตํด ์ธ์ฆ ๋ฐฉ๋ฒ์ ๊ตฌ์ฑํ์ต๋๋ค.
์ด์ ์ OpenVPN์ ์ค์ ํ ์ ์ด ์๋ค๋ฉด ๋ค์ ๋ด์ฉ์ ์ฝ์ด๋ณด์ธ์.
์ง์นจ์ CentOS 7์ ์์ ๋ก ์์ฑ๋์์ต๋๋ค.
์ถ์ฒ : habr.com