LinOTP ์ด์ค‘ ์ธ์ฆ ์„œ๋ฒ„

LinOTP ์ด์ค‘ ์ธ์ฆ ์„œ๋ฒ„

์˜ค๋Š˜์€ ๊ธฐ์—… ๋„คํŠธ์›Œํฌ, ์‚ฌ์ดํŠธ, ์„œ๋น„์Šค, SSH๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ด์ค‘ ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” LinOTP + FreeRadius ์กฐํ•ฉ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์™œ ํ•„์š”ํ•œ๊ฐ€์š”?
์ด๋Š” ์ œXNUMX์ž ์ œ๊ณต์—…์ฒด์™€ ๊ด€๊ณ„์—†์ด ์ž์ฒด ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ์™„์ „ํžˆ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” ํŽธ๋ฆฌํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

์ด ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์˜คํ”ˆ์†Œ์Šค ์ œํ’ˆ๊ณผ ๋‹ฌ๋ฆฌ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ์‹œ๊ฐ์ ์ด๋ฉฐ, ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ์ •์ฑ…(์˜ˆ: ๋กœ๊ทธ์ธ+๋น„๋ฐ€๋ฒˆํ˜ธ+(PIN+OTTPoken))๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. API๋ฅผ ํ†ตํ•ด SMS ์ „์†ก ์„œ๋น„์Šค(LinOTP Config->Provider Config->SMS Provider)์™€ ํ†ตํ•ฉํ•˜๊ณ  Google Authentificator ๋“ฑ๊ณผ ๊ฐ™์€ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ๋ง์”€๋“œ๋ฆฐ ์„œ๋น„์Šค๋ณด๋‹ค ๋” ํŽธ๋ฆฌํ•œ ๊ฒƒ ๊ฐ™์•„์š” ๊ธฐ์‚ฌ.

์ด ์„œ๋ฒ„๋Š” Cisco ASA, OpenVPN ์„œ๋ฒ„, Apache2 ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ RADIUS ์„œ๋ฒ„๋ฅผ ํ†ตํ•œ ์ธ์ฆ์„ ์ง€์›ํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ SSH์šฉ).

ํ•„์ˆ˜ :

1) ๋ฐ๋น„์•ˆ 8(์ œ์‹œ) - ํ•„์ˆ˜! (Debian 9์˜ ํ‰๊ฐ€ํŒ ์„ค์น˜๋Š” ๊ธฐ์‚ฌ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค)

ํ™ˆ :

๋ฐ๋น„์•ˆ 8์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

LinOTP ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

# echo 'deb http://www.linotp.org/apt/debian jessie linotp' > /etc/apt/sources.list.d/linotp.list

ํ‚ค ์ถ”๊ฐ€:

# gpg --search-keys 913DFF12F86258E5

๊ฐ€๋” "์ƒˆ๋กœ" ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ๋น„์•ˆ์— ๋‹ค์Œ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

gpg: ัะพะทะดะฐะฝ ะบะฐั‚ะฐะปะพะณ `/root/.gnupg'
gpg: ัะพะทะดะฐะฝ ะฝะพะฒั‹ะน ั„ะฐะนะป ะฝะฐัั‚ั€ะพะตะบ `/root/.gnupg/gpg.conf'
gpg: ะ’ะะ˜ะœะะะ˜ะ•: ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะฒ `/root/.gnupg/gpg.conf' ะตั‰ะต ะฝะต ะฐะบั‚ะธะฒะฝั‹ ะฟั€ะธ ัั‚ะพะผ ะทะฐะฟัƒัะบะต
gpg: ัะพะทะดะฐะฝะฐ ั‚ะฐะฑะปะธั†ะฐ ะบะปัŽั‡ะตะน `/root/.gnupg/secring.gpg'
gpg: ัะพะทะดะฐะฝะฐ ั‚ะฐะฑะปะธั†ะฐ ะบะปัŽั‡ะตะน `/root/.gnupg/pubring.gpg'
gpg: ะฝะต ะทะฐะดะฐะฝั‹ ัะตั€ะฒะตั€ั‹ ะบะปัŽั‡ะตะน (ะธัะฟะพะปัŒะทัƒะนั‚ะต --keyserver)
gpg: ัะฑะพะน ะฟั€ะธ ะฟะพะธัะบะต ะฝะฐ ัะตั€ะฒะตั€ะต ะบะปัŽั‡ะตะน: ะฟะปะพั…ะพะน URI

์ด๊ฒƒ์ด ์ดˆ๊ธฐ gnupg ์„ค์ •์ž…๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์•„์š”. ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๋ฐ๋น„์•ˆ์˜ ์งˆ๋ฌธ์—:

gpg: ะฟะพะธัะบ "913DFF12F86258E5" ะฝะฐ hkp ัะตั€ะฒะตั€ะต keys.gnupg.net
(1)	LSE LinOTP2 Packaging <[email protected]>
	  2048 bit RSA key F86258E5, ัะพะทะดะฐะฝ: 2010-05-10
Keys 1-1 of 1 for "913DFF12F86258E5".  ะ’ะฒะตะดะธั‚ะต ั‡ะธัะปะฐ, N) ะกะปะตะดัƒัŽั‰ะธะน ะธะปะธ Q) ะ’ั‹ั…ะพะด>

์šฐ๋ฆฌ๋Š” ๋Œ€๋‹ตํ•ฉ๋‹ˆ๋‹ค: 1

๋‹ค์Œ :

# gpg --export 913DFF12F86258E5 | apt-key add -

# apt-get update

MySQL์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ๋Š” ๋‹ค๋ฅธ SQL Server๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‹จ์ˆœํ™”๋ฅผ ์œ„ํ•ด LinOTP์— ๊ถŒ์žฅ๋˜๋Š” ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

(LinOTP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์žฌ๊ตฌ์„ฑ์„ ํฌํ•จํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋Š” ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ. ์ด๋ฏธ mysql์„ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ dpkg-reconfigure linotp ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

# apt-get install mysql-server

# apt-get update

(์—…๋ฐ์ดํŠธ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค)
LinOTP ๋ฐ ์ถ”๊ฐ€ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

# apt-get install linotp

์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•ฉ๋‹ˆ๋‹ค.
Apache2 ์‚ฌ์šฉ: ์˜ˆ
๊ด€๋ฆฌ์ž Linotp์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ƒ์„ฑ: "๊ท€ํ•˜์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ"
์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?: ์˜ˆ
MySQL์„ ์‚ฌ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?: ์˜ˆ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ: localhost
์„œ๋ฒ„์— LinOTP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๊ธฐ๋ณธ ์ด๋ฆ„) ๋งŒ๋“ค๊ธฐ: LinOTP2
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ์‚ฌ์šฉ์ž ์ƒ์„ฑ: LinOTP2
์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” "Your Password"์ž…๋‹ˆ๋‹ค.
์ง€๊ธˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? (โ€œ์ •๋ง๋กœ...์„ ์›ํ•˜์‹œ๋‚˜์š”?โ€์™€ ๊ฐ™์€ ๊ฒƒ): ์˜ˆ
์„ค์น˜ ์‹œ ์ƒ์„ฑํ•œ MySQL ๋ฃจํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: โ€œYourPasswordโ€
์™„๋ฃŒ.

(์„ ํƒ์‚ฌํ•ญ์ด๋ฏ€๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค)

# apt-get install linotp-adminclient-cli 

(์„ ํƒ์‚ฌํ•ญ์ด๋ฏ€๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค)

# apt-get install libpam-linotp  

์ด์ œ Linotp ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ค์Œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"<b>https</b>: //IP_ัะตั€ะฒะตั€ะฐ/manage"

๋‚˜์ค‘์— ์›น ์ธํ„ฐํŽ˜์ด์Šค์˜ ์„ค์ •์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ! FreeRadius๋ฅผ ์˜ฌ๋ฆฌ๊ณ  Linotp์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

LinOTP ์ž‘์—…์„ ์œ„ํ•œ FreeRadius ๋ฐ ๋ชจ๋“ˆ ์„ค์น˜

# apt-get install freeradius linotp-freeradius-perl

ํด๋ผ์ด์–ธํŠธ ๋ฐ ์‚ฌ์šฉ์ž ๋ฐ˜๊ฒฝ ๊ตฌ์„ฑ์„ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.

# mv /etc/freeradius/clients.conf  /etc/freeradius/clients.old

# mv /etc/freeradius/users  /etc/freeradius/users.old

๋นˆ ํด๋ผ์ด์–ธํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

# touch /etc/freeradius/clients.conf

์ƒˆ ๊ตฌ์„ฑ ํŒŒ์ผ ํŽธ์ง‘(๋ฐฑ์—…๋œ ๊ตฌ์„ฑ์„ ์˜ˆ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)

# nano /etc/freeradius/clients.conf

client 192.168.188.0/24 {
secret  = passwd # ะฟะฐั€ะพะปัŒ ะดะปั ะฟะพะดะบะปัŽั‡ะตะฝะธั ะบะปะธะตะฝั‚ะพะฒ
}

๋‹ค์Œ์œผ๋กœ ์‚ฌ์šฉ์ž ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

# touch /etc/freeradius/users

ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์—ฌ Radius์—์„œ ์ธ์ฆ์— Perl์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž„์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

๋‹ค์Œ์œผ๋กœ /etc/freeradius/modules/perl ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

# nano /etc/freeradius/modules/perl

๋ชจ๋“ˆ ๋งค๊ฐœ๋ณ€์ˆ˜์— perl linotp ์Šคํฌ๋ฆฝํŠธ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

Perl { .......
.........
<source lang="bash">module = /usr/lib/linotp/radius_linotp.pm

.....
๋‹ค์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ํŒŒ์ผ(๋„๋ฉ”์ธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํŒŒ์ผ)์„ ์ง€์ •ํ•˜๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

# touch /etc/linotp2/rlm_perl.ini

# nano /etc/linotp2/rlm_perl.ini

URL=https://IP_ะฒะฐัˆะตะณะพ_LinOTP_ัะตั€ะฒะตั€ะฐ(192.168.X.X)/validate/simplecheck
REALM=webusers1c
RESCONF=LocalUser
Debug=True
SSL_CHECK=False

์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฃผ์„์ด ํฌํ•จ๋œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ „์ฒด ์„ค๋ช…:
#linOTP ์„œ๋ฒ„์˜ IP(LinOTP ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ)
URL=https://172.17.14.103/validate/simplecheck
#LinOTP ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ƒ์„ฑํ•  ์˜์—ญ์ž…๋‹ˆ๋‹ค.)
REALM=์žฌ์œก์„ฑ1
#LinOTP ์›น ์ด๊ตฌ์— ์ƒ์„ฑ๋œ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
RESCONF=ํ”Œ๋žซ_ํŒŒ์ผ
#์„ ํƒ ์‚ฌํ•ญ: ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฉด ์ฃผ์„ ์ฒ˜๋ฆฌ
๋””๋ฒ„๊ทธ=์ฐธ
#์„ ํƒ์‚ฌํ•ญ: ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ฃผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค(์ž์ฒด ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ํ™•์ธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ SSL).
SSL_CHECK=๊ฑฐ์ง“

๋‹ค์Œ์œผ๋กœ /etc/freeradius/sites-available/linotp ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

# touch /etc/freeradius/sites-available/linotp

# nano /etc/freeradius/sites-available/linotp

๊ทธ๋ฆฌ๊ณ  ๊ตฌ์„ฑ์„ ์—ฌ๊ธฐ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค(์•„๋ฌด ๊ฒƒ๋„ ํŽธ์ง‘ํ•  ํ•„์š” ์—†์Œ).

authorize {
#normalizes maleformed client request before handed on to other modules (see '/etc/freeradius/modules/preprocess')
preprocess
#  If you are using multiple kinds of realms, you probably
#  want to set "ignore_null = yes" for all of them.
#  Otherwise, when the first style of realm doesn't match,
#  the other styles won't be checked.
#allows a list of realm (see '/etc/freeradius/modules/realm')
IPASS
#understands something like USER@REALM and can tell the components apart (see '/etc/freeradius/modules/realm')
suffix
#understands USERREALM and can tell the components apart (see '/etc/freeradius/modules/realm')
ntdomain
#  Read the 'users' file to learn about special configuration which should be applied for
# certain users (see '/etc/freeradius/modules/files')
files
# allows to let authentification to expire (see '/etc/freeradius/modules/expiration')
expiration
# allows to define valid service-times (see '/etc/freeradius/modules/logintime')
logintime
# We got no radius_shortname_map!
pap
}
#here the linotp perl module is called for further processing
authenticate {
perl
}

๋‹ค์Œ์œผ๋กœ SIM ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

# ln -s ../sites-available/linotp /etc/freeradius/sites-enabled

๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ๊ธฐ๋ณธ Radius ์‚ฌ์ดํŠธ๋ฅผ ์ข…๋ฃŒํ•˜์ง€๋งŒ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ตฌ์„ฑ์„ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# rm /etc/freeradius/sites-enabled/default

# rm /etc/freeradius/sites-enabled/inner-tunnel

# service freeradius reload

์ด์ œ ์›น ํŽ˜์ด์Šค๋กœ ๋Œ์•„๊ฐ€์„œ ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์—์„œ LinOTP Config -> UserIdResolvers -> New๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
LDAP(AD win, LDAP samba), SQL ๋˜๋Š” Flatfile ์‹œ์Šคํ…œ์˜ ๋กœ์ปฌ ์‚ฌ์šฉ์ž ์ค‘์—์„œ ์›ํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์ž…๋ ฅ๋ž€์„ ์ž‘์„ฑํ•˜์„ธ์š”.

๋‹ค์Œ์œผ๋กœ REALMS๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์—์„œ LinOTP Config -> Realms -> New๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
REALMS์— ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ์ด์ „์— ์ƒ์„ฑ๋œ UserIdResolvers๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

FreeRadius๋Š” ์œ„์— ์“ด ๊ฒƒ์ฒ˜๋Ÿผ /etc/linotp2/rlm_perl.ini ํŒŒ์ผ์— ์ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๋‹น์‹œ ํŽธ์ง‘ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ง€๊ธˆ ํŽธ์ง‘ํ•˜์‹ญ์‹œ์˜ค.

์„œ๋ฒ„๊ฐ€ ๋ชจ๋‘ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ :

Debian 9์—์„œ LinOTP ์„ค์ •ํ•˜๊ธฐ:

ะฃัั‚ะฐะฝะพะฒะบะฐ :

# echo 'deb http://linotp.org/apt/debian stretch linotp' > /etc/apt/sources.list.d/linotp.list 
# apt-get install dirmngr

# apt-key adv --recv-keys 913DFF12F86258E5
# apt-get update

# apt-get install mysql-server

(๊ธฐ๋ณธ์ ์œผ๋กœ Debian 9์—์„œ mysql(mariaDB)์€ ๋ฃจํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋น„์›Œ ๋‘˜ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‰ด์Šค๋ฅผ ์ฝ์œผ๋ฉด ์ด๋Š” ์ข…์ข… "๋Œ€๋‹จํ•œ ์‹คํŒจ"๋กœ ์ด์–ด์ง€๋ฏ€๋กœ ์„ค์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„)

# mysql -u root -p
use mysql;
UPDATE user SET Password = PASSWORD('ั‚ัƒั‚_ะฟะฐั€ะพะปัŒ') WHERE User = 'root';
exit
# apt-get install linotp
# apt-get install linotp-adminclient-cli
# apt-get install python-ldap
# apt install freeradius
# nano /etc/freeradius/3.0/sites-enabled/linotp

์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์œผ์„ธ์š”(JuriM์ด ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!):

์„œ๋ฒ„ linotp {
๋“ฃ๋‹ค {
ipaddr = *
ํฌํŠธ = 1812
์œ ํ˜•=์ธ์ฆ
}
๋“ฃ๋‹ค {
ipaddr = *
ํฌํŠธ = 1813
์œ ํ˜• = ๊ณ„์ •
}
์Šน์ธํ•˜๋‹ค {
์ „์ฒ˜๋ฆฌ
์—…๋ฐ์ดํŠธ {
&control:Auth-Type := Perl
}
}
์ธ์ฆํ•˜๋‹ค {
์ธ์ฆ ์œ ํ˜• Perl {
ํŽ„
}
}
ํšŒ๊ณ„ {
์œ ๋‹‰์Šค
}
}

/etc/freeradius/3.0/mods-enabled/perl ํŽธ์ง‘

ํŽ„ {
ํŒŒ์ผ ์ด๋ฆ„ = /usr/share/linotp/radius_linotp.pm
func_authenticate = ์ธ์ฆ
func_authorize = ์Šน์ธ
}

๋ถˆํ–‰ํžˆ๋„ Debian 9์—์„œ๋Š” radius_linotp.pm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์„ค์น˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ github์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

# apt install git
# git clone https://github.com/LinOTP/linotp-auth-freeradius-perl
# cd linotp-auth-freeradius-perl/
# cp radius_linotp.pm /usr/share/linotp/radius_linotp.pm

์ด์ œ /etc/freeradius/3.0/clients.conf๋ฅผ ํŽธ์ง‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ {
ipaddr = 192.168.188.0/24
๋น„๋ฐ€ = ๋‹น์‹ ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ
}

์ด์ œ nano /etc/linotp2/rlm_perl.ini๋ฅผ ์ˆ˜์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Debian 8์— ์„ค์น˜ํ•  ๋•Œ์™€ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค(์œ„์—์„œ ์„ค๋ช…).

๊ทธ๊ฒƒ์€ ๋ชจ๋‘ ๊ทธ ์ƒ๊ฐ์— ๋”ฐ๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์•„์ง ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์Œ)

์ด์ค‘ ์ธ์ฆ์œผ๋กœ ๊ฐ€์žฅ ์ž์ฃผ ๋ณดํ˜ธํ•ด์•ผ ํ•˜๋Š” ์‹œ์Šคํ…œ ์„ค์ •์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋งํฌ๋ฅผ ์•„๋ž˜์— ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.
์ด์ค‘ ์ธ์ฆ ์„ค์ • Apache2

Cisco ASA๋กœ ์„ค์ •(๋‹ค๋ฅธ ํ† ํฐ ์ƒ์„ฑ ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ASA ์ž์ฒด์˜ ์„ค์ •์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.)

์ด์ค‘ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ VPN

์กฐ์ • SSH์˜ XNUMX๋‹จ๊ณ„ ์ธ์ฆ (LinOTP๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.) - ์ €์ž์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. LiOTP ์ •์ฑ… ์„ค์ •์— ๋Œ€ํ•œ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ๋„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋งŽ์€ ์‚ฌ์ดํŠธ์˜ cms๋Š” XNUMX๋‹จ๊ณ„ ์ธ์ฆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(WordPress์˜ ๊ฒฝ์šฐ LinOTP์—๋Š” github), ์˜ˆ๋ฅผ ๋“ค์–ด ํšŒ์‚ฌ ์ง์›์„ ์œ„ํ•ด ํšŒ์‚ฌ ์›น์‚ฌ์ดํŠธ์— ๋ณดํ˜ธ๋œ ์„น์…˜์„ ๋งŒ๋“ค๋ ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
์ค‘์š”ํ•œ ์‚ฌ์‹ค! Google OTP๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด "Google autenteficator" ์ƒ์ž๋ฅผ ์„ ํƒํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค! ๊ทธ๋Ÿฌ๋ฉด QR์ฝ”๋“œ๋ฅผ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค... (์ด์ƒํ•œ ์‚ฌ์‹ค)

์ด ๊ธฐ์‚ฌ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๊ธฐ์‚ฌ์˜ ์ •๋ณด๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

์ €์ž์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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