LinOTP ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืกืขืจื•ื•ืขืจ

LinOTP ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืกืขืจื•ื•ืขืจ

ื”ื™ื™ึทื ื˜ ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื˜ื™ื™ืœืŸ ื•ื•ื™ ืฆื• ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ ืึท ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืกืขืจื•ื•ืขืจ ืฆื• ื‘ืึทืฉื™ืฆืŸ ืึท ืคึฟื™ืจืžืข ื ืขืฅ, ื–ื™ื™ื˜ืœืขืš, ื‘ืึทื“ื™ื ื•ื ื’ืก, ืกืฉ. ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึธืžื‘ื™ื ืึทืฆื™ืข: LinOTP + FreeRadius.

ืคืืจื•ื•ืืก ื˜ืึธืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืขืก?
ื“ืึธืก ืื™ื– ืึท ื’ืึธืจ ืคืจื™ื™, ื‘ืึทืงื•ื•ืขื ืœื™ื™ื–ื•ื ื’ ืื™ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื ืขืฅ, ืคืจื™ื™ึท ืคื•ืŸ ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื–.

ื“ืขืจ ื“ื™ื ืกื˜ ืื™ื– ื–ื™ื™ืขืจ ื‘ืึทืงื•ื•ืขื, ื’ืึทื ืฅ ื•ื•ื™ื–ืฉืึทื•ื•ืึทืœ, ื ื™ื˜ ืขื ืœืขืš ืื ื“ืขืจืข ืึธืคึฟืŸ ืžืงื•ืจ ืคึผืจืึธื“ื•ืงื˜ืŸ, ืื•ืŸ ืื•ื™ืš ืฉื˜ื™ืฆื˜ ืึท ืจื™ื–ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ืคึผืึทืœืึทืกื™ื– (ืœืžืฉืœ, ืœืึธื’ื™ืŸ + ืคึผืึทืจืึธืœ + (PIN + OTPToken)). ื“ื•ืจืš ื“ื™ ืึทืคึผื™, ืขืก ื™ื ื˜ืึทื’ืจื™ื™ืฅ ืžื™ื˜ SMS ืฉื™ืงื˜ ื‘ืึทื“ื™ื ื•ื ื’ืก (LinOTP Config-> Provider Config-> SMS ืคึผืจืึทื•ื•ื™ื™ื“ืขืจ), ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืงืึธื•ื“ื– ืคึฟืึทืจ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืึทื–ืึท ื•ื•ื™ Google ืึทื•ื˜ื”ืขื ื˜ื™ืคื™ืงืึทื˜ืึธืจ ืื•ืŸ ืคื™ืœ ืžืขืจ. ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ืžืขืจ ื‘ืึทืงื•ื•ืขื ื•ื•ื™ ื“ื™ ืกืขืจื•ื•ื™ืก ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ืึทืจื˜ื™ืงืœ.

ื“ืขืจ ืกืขืจื•ื•ืขืจ ืึทืจื‘ืขื˜ ื‘ื™ืฉืœื™ื™ืžืขืก ืžื™ื˜ Cisco ASA, OpenVPN ืกืขืจื•ื•ืขืจ, Apache2 ืื•ืŸ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืžื™ื˜ ื›ึผืžืขื˜ ืึทืœืฅ ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ื“ื•ืจืš ืึท RADIUS ืกืขืจื•ื•ืขืจ (ืœืžืฉืœ ืคึฟืึทืจ SSH ืื™ืŸ ื“ื™ ื“ืึทื˜ืŸ ืฆืขื ื˜ืขืจ).

ืขืก ืื™ื– ืคืืจืœืื ื’ื˜:

1) ื“ืขื‘ื™ืึทืŸ 8 (ื“ื–ืฉืขืกืกื™) - ื“ืึทื•ื•ืงืข! (ืคึผืจืึธืฆืขืก ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ืื•ื™ืฃ ื“ืขื‘ื™ืึทืŸ 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

ื“ืึธืก ืื™ื– ื“ืขืจ ืขืจืฉื˜ ื’ื ื•ืคึผื’ ืกืขื˜ืึทืคึผ. ืก 'ืื™ื– ื’ื•ื˜. ื ืึธืจ ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ื™ื“ืขืจ.
ืฆื• ื“ืขื‘ื™ืึทืŸ ืก ืงืฉื™ื:

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 ืกืขืจื•ื•ืขืจ, ืึธื‘ืขืจ ืคึฟืึทืจ ืคึผืึทืฉื˜ืขืก ืื™ืš ื•ื•ืขืœ ื ื•ืฆืŸ ืขืก ื•ื•ื™ ืจืขืงืึทืžืขื ื“ื™ื“ ืคึฟืึทืจ LinOTP.

(ื ืึธืš ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืจื™ืงืึทื ืคื™ื’ื™ืขืจื™ื ื’ ื“ื™ LinOTP ื“ืึทื˜ืึทื‘ื™ื™ืก, ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืจื•ื ื’. ื“ืึธ ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ื‘ืึทืคึฟืขืœ: dpkg-reconfigure linotp ืฆื• ื˜ื•ื™ืฉืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ืฉื•ื™ืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ mysql).

# apt-get install mysql-server

# apt-get update

(ืขืก ื•ื•ืึธืœื˜ ื ื™ืฉื˜ ืฉืึทื˜ืŸ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ื•ื•ื™ื“ืขืจ)
ื™ื ืกื˜ืึทืœื™ืจืŸ LinOTP ืื•ืŸ ื ืึธืš ืžืึทื“ื–ืฉื•ืœื–:

# apt-get install linotp

ืžื™ืจ ืขื ื˜ืคึฟืขืจืŸ ื“ื™ ืคึฟืจืื’ืŸ ืคื•ืŸ ื“ื™ ื™ื ืกื˜ืึทืœืœืขืจ:
ื ื™ืฆืŸ Apache2: ื™ืึธ
ืฉืึทืคึฟืŸ ืึท ืคึผืึทืจืึธืœ ืคึฟืึทืจ ืึทื“ืžื™ืŸ ืœื™ื ืึธื˜ืคึผ: "ื“ื™ื™ืŸ ืคึผืึทืจืึธืœ"
ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื–ื™ืš-ื’ืขื—ืชืžืขื˜ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ?: ื™ืึธ
ื ื™ืฆืŸ MySQL?: ื™ืึธ
ื•ื•ื• ืื™ื– ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก: localhost
ืฉืึทืคึฟืŸ ืึท LinOTP ื“ืึทื˜ืึทื‘ื™ื™ืก (ื‘ืึทื–ืข ื ืึธืžืขืŸ) ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ: LinOTP2
ืฉืึทืคึฟืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืคึฟืึทืจ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก: LinOTP2
ืžื™ืจ ืฉื˜ืขืœืŸ ืึท ืคึผืึทืจืึธืœ ืคึฟืึทืจ ื“ื™ ื‘ืึทื ื™ืฆืขืจ: "ื“ื™ื™ืŸ ืคึผืึทืจืึธืœ"
ื–ืึธืœ ืื™ืš ืฉืึทืคึฟืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ืฆื˜? (ืขืคึผืขืก ื•ื•ื™ "ื‘ื™ืกื˜ ืื™ืจ ื–ื™ื›ืขืจ ืื™ืจ ื•ื•ื™ืœืŸ ..."): ื™ืึธ
ืึทืจื™ื™ึทืŸ ื“ื™ MySQL ื•ื•ืึธืจืฆืœ ืคึผืึทืจืึธืœ ื•ื•ืึธืก ืื™ืจ ื”ืึธื˜ ื‘ืืฉืืคืŸ ื•ื•ืขืŸ ืื™ืจ ื™ื ืกื˜ืึทืœื™ืจืŸ ืขืก: "YourPassword"
ื’ืขื˜ืืŸ.

(ืึทืคึผืฉืึทื ืึทืœ, ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืขืก)

# apt-get install linotp-adminclient-cli 

(ืึทืคึผืฉืึทื ืึทืœ, ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืขืก)

# apt-get install libpam-linotp  

ืื•ืŸ ืึทื–ื•ื™ ืื•ื ื“ื–ืขืจ Linotp ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“ ืื™ื– ืื™ืฆื˜ ื‘ื ื™ืžืฆื ืื™ืŸ:

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

ืื™ืš ื•ื•ืขืœ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ืื™ืŸ ื“ื™ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“ ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ.

ืื™ืฆื˜, ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง ื–ืึทืš! ืžื™ืจ ื›ืึทืคึผืŸ FreeRadius ืื•ืŸ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืขืก ืžื™ื˜ ืœื™ื ืึธื˜ืคึผ.

ื™ื ืกื˜ืึทืœื™ืจืŸ FreeRadius ืื•ืŸ ืžืึธื“ื•ืœืข ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ LinOTP

# 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

ืžื™ืจ ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ื˜ืขืงืข, ื–ืึธื’ืŸ ืจืึทื“ื™ื•ืก ืึทื– ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ืคึผืขืจืœ ืคึฟืึทืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

ื“ืขืจื ืึธืš, ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ื˜ืขืงืข /etc/freeradius/modules/perl

# nano /etc/freeradius/modules/perl

ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ืขื ื“ืจืš ืฆื• ื“ื™ ืคึผืขืจืœ ืœื™ื ืึธื˜ืคึผ ืฉืจื™ืคื˜ ืื™ืŸ ื“ื™ ืžืึธื“ื•ืœืข ืคึผืึทืจืึทืžืขื˜ืขืจ:

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

ืื™ืš ื•ื•ืขืœ ื’ื™ื™ืŸ ืื™ืŸ ืึท ื‘ื™ืกืœ ืžืขืจ ื“ืขื˜ืึทืœ ื“ืึธ ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง:

ื’ืึทื ืฅ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ืžื™ื˜ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ:
# IP ืคื•ืŸ ื“ื™ LinOTP ืกืขืจื•ื•ืขืจ (IP ืึทื“ืจืขืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ LinOTP ืกืขืจื•ื•ืขืจ)
URL = https://172.17.14.103/validate/simplecheck
# ืื•ื ื“ื–ืขืจ ื’ืขื’ื ื˜ ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ืฉืึทืคึฟืŸ ืื™ืŸ ื“ื™ LinOTP ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“.)
REALM=rearm1
# ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ื’ืจื•ืคึผืข ื•ื•ืึธืก ืื™ื– ื‘ืืฉืืคืŸ ืื™ืŸ ื“ื™ 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
}

ื•ื•ื™ื™ึทื˜ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ืžืึทื›ืŸ ืึท ืกื™ื ืœื™ื ืง:

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

ืคึผืขืจืกื ืึทืœื™, ืื™ืš ื˜ื™ื™ื˜ืŸ ืคืขืœื™ืงื™ื™ึทื˜ ืจืึทื“ื™ื•ืก ื–ื™ื™ื˜ืœืขืš, ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื“ืึทืจืคึฟืŸ ื–ื™ื™, ืื™ืจ ืงืขื ืขืŸ ืึธื“ืขืจ ืจืขื“ืึทื’ื™ืจืŸ ื–ื™ื™ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืึธื“ืขืจ ื“ื™ืกื™ื™ื‘ืึทืœ ื–ื™ื™.

# 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, ืึธื“ืขืจ ื”ื™ื’ืข ื ื™ืฆืขืจืก ืคื•ืŸ ื“ื™ ืคืœืึทื˜ืคื™ืœืข ืกื™ืกื˜ืขื.

ืคึผืœืึธืžื‘ื™ืจืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืคืขืœื“ืขืจ.

ื•ื•ื™ื™ึทื˜ืขืจ ืžื™ืจ ืžืึทื›ืŸ REALMS:
ืื™ืŸ ื“ืขืจ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ืจืขื›ื˜ ื•ื•ื™ื ืงืœ, ื’ื™ื˜ LinOTP Config -> Realms -> New.
ืื•ืŸ ื’ืขื‘ืŸ ืึท ื ืึธืžืขืŸ ืฆื• ืื•ื ื“ื–ืขืจ REALMS, ืื•ืŸ ืื•ื™ืš ื’ื™ื˜ ืื•ื™ืฃ ื“ื™ ืคืจื™ืขืจ ื‘ืืฉืืคืŸ UserIdResolvers.

FreeRadius ื“ืึทืจืฃ ืึทืœืข ื“ื™ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ /etc/linotp2/rlm_perl.ini ื˜ืขืงืข, ื•ื•ื™ ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ืื•ื™ื‘ืŸ, ืึทื–ื•ื™ ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ืจืขื“ืึทื’ื™ืจืŸ ืขืก ื“ืขืžืึธืœื˜, ื˜ืึธืŸ ื“ืึธืก ืื™ืฆื˜.

ื“ืขืจ ืกืขืจื•ื•ืขืจ ืื™ื– ืึทืœืข ืงืึทื ืคื™ื’ื™ืขืจื“.

ื“ืขืจืฆื•:

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ LinOTP ืื•ื™ืฃ Debian 9:

ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’:

# 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, ื“ืึทื ืง ืฆื• ืื™ื ืคึฟืึทืจ ื“ืขื!):

ืกืขืจื•ื•ืขืจ ืœื™ื ืึธื˜ืคึผ {
ื”ืขืจืŸ {
ื™ืคึผืึทื“ื“ืจ = *
ืคึผืึธืจื˜ = 1812
ื˜ื™ืคึผ = ืึทื•ื˜ื”
}
ื”ืขืจืŸ {
ื™ืคึผืึทื“ื“ืจ = *
ืคึผืึธืจื˜ = 1813
ื˜ื™ืคึผ = ืึทืงื˜
}
ื“ืขืจืœื•ื™ื‘ื˜ {
ืคึผืจื™ืคึผืจืึธืกืขืก
ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ {
&control:Auth-Type := ืคึผืขืจืœ
}
}
ืึธื˜ืขื ื˜ื™ืคื™ืฆื™ืจืŸ {
ืึธื˜-ื˜ื™ืคึผ ืคึผืขืจืœ {
ืคึผืขืจืœ
}
}
ื—ืฉื‘ื•ืŸ {
ื™ื•ื ื™ืงืก
}
}

ืจืขื“ืึทื’ื™ืจืŸ /etc/freeradius/3.0/mods-enabled/perl

ืคึผืขืจืœ {
ื˜ืขืงืข ื ืึธืžืขืŸ = /usr/share/linotp/radius_linotp.pm
func_authenticate = ืึธื˜ืขื ื˜ืึทืงื™ืจืŸ
func_authorize = ื“ืขืจืœื•ื™ื‘ืŸ
}

ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ืื™ืŸ ื“ืขื‘ื™ืึทืŸ 9 ื“ื™ radius_linotp.pm ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ื ื™ืฉื˜ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืคึฟื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ื–, ืึทื–ื•ื™ ืžื™ืจ ื•ื•ืขืœืŸ ื ืขืžืขืŸ ืขืก ืคึฟื•ืŸ ื’ื™ื˜ื”ื•ื‘.

# 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

ืงืœื™ืขื ื˜ ืกืขืจื•ื•ืขืจืก {
ื™ืคึผืึทื“ื“ืจ = 192.168.188.0/24
ืกื•ื“ = ื“ื™ื™ืŸ ืคึผืึทืจืึธืœ
}

ืื™ืฆื˜ ืœืึธื–ืŸ ืื•ื ื“ื– ืจื™ื›ื˜ื™ืง ื ืึทื ืึธ /etc/linotp2/rlm_perl.ini

ืžื™ืจ ืคึผืึทืคึผ ื“ื™ ื–ืขืœื‘ืข ืงืึธื“ ื“ืึธืจื˜ ื•ื•ื™ ื•ื•ืขืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ืื•ื™ืฃ ื“ืขื‘ื™ืึทืŸ 8 (ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื™ื‘ืŸ)

ื“ืึธืก ืื™ื– ืึทืœืฅ ืœื•ื™ื˜ืŸ ื’ืขื“ืึทื ืง. (ื ื™ืฉื˜ ื˜ืขืกื˜ืขื“ ื ืึธืš)

ืื™ืš ื•ื•ืขืœ ืœืึธื–ืŸ ืื•ื ื˜ืŸ ืึท ื‘ื™ืกืœ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ืขืŸ ื•ื•ืขื’ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืกื™ืกื˜ืขืžืขืŸ ื•ื•ืึธืก ืึธืคื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ืคึผืจืึธื˜ืขืงื˜ืขื“ ืžื™ื˜ ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ:
ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ืึทืคึผืึทื˜ืฉืขืงืกื ื•ืžืงืก

ืกืขื˜ืึทืคึผ ืžื™ื˜ Cisco ASA(ืึท ืึทื ื“ืขืจืฉ ืกื™ืžืขืŸ ื“ื•ืจ ืกืขืจื•ื•ืขืจ ืื™ื– ื’ืขื ื™ืฆื˜ ื“ืึธืจื˜, ืึธื‘ืขืจ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ืคื•ืŸ ื“ื™ ASA ื–ื™ืš ื–ืขื ืขืŸ ื“ื™ ื–ืขืœื‘ืข).

VPN ืžื™ื˜ ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ

Customize ืฆื•ื•ื™ื™ ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ssh (ืœื™ื ืึธื˜ืคึผ ืื™ื– ืื•ื™ืš ื’ืขื ื™ืฆื˜ ื“ืึธืจื˜) - ื“ืึทื ืง ืฆื• ื“ืขื ืžื—ื‘ืจ. ื“ืึธืจื˜ ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ื’ืขืคึฟื™ื ืขืŸ ื˜ืฉื™ืงืึทื•ื•ืข ื˜ื™ื ื’ื– ื•ื•ืขื’ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืœื™ืึธื˜ืคึผ ืคึผืึทืœืึทืกื™ื–.

ืื•ื™ืš, ื“ื™ ืงืžืก ืคื•ืŸ ืคื™ืœืข ื–ื™ื™ื˜ืœืขืš ืฉื˜ื™ืฆืŸ ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ (ืคึฟืึทืจ ื•ื•ืึธืจื“ืคึผืจืขืกืก, LinOTP ืืคื™ืœื• ื”ืื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกืคึผืขืฆื™ืขืœ ืžืึธื“ื•ืœืข ืคึฟืึทืจ ื’ื™ื˜ื”ื•ื‘), ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืžืึทื›ืŸ ืึท ืคึผืจืึธื˜ืขืงื˜ืขื“ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื•ื™ืฃ ื“ื™ื™ืŸ ืคึฟื™ืจืžืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ืคึฟืึทืจ ืคื™ืจืžืข ืขืžืคึผืœื•ื™ื™ื–.
ื•ื•ื™ื›ื˜ื™ืง ืคืึทืงื˜! ื“ื• ื–ืืœืกื˜ ื ื™ืฉื˜ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ "ื’ื•ื’ืœ ืึธื˜ืขื ื˜ื™ืคื™ืงืึทื˜ืึธืจ" ืงืขืกื˜ืœ ืฆื• ื ื•ืฆืŸ Google ืึทื•ื˜ื”ืขื ื˜ื™ืงืึทื˜ืึธืจ! ื“ืขืจ QR ืงืึธื“ ืื™ื– ื ื™ืฉื˜ ืœื™ื™ื ืขื•ื•ื“ื™ืง ื“ืขืžืึธืœื˜ ... (ืžืึธื“ื ืข ืคืึทืงื˜)

ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืจื˜ื™ืงืœืขืŸ ืื™ื– ื’ืขื ื™ืฆื˜:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

ื“ืึทื ืง ืฆื• ื“ื™ ืžื—ื‘ืจื™ื.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’