LinOTP เดŸเต-เดซเดพเด•เตเดŸเตผ เด“เดคเดจเตเดฑเดฟเด•เตเด•เต‡เดทเตป เดธเต†เตผเดตเตผ

LinOTP เดŸเต-เดซเดพเด•เตเดŸเตผ เด“เดคเดจเตเดฑเดฟเด•เตเด•เต‡เดทเตป เดธเต†เตผเดตเตผ

เด’เดฐเต เด•เต‹เตผเดชเตเดชเดฑเต‡เดฑเตเดฑเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต, เดธเตˆเดฑเตเดฑเตเด•เตพ, เดธเต‡เดตเดจเด™เตเด™เตพ, ssh เดŽเดจเตเดจเดฟเดต เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃ เดธเต†เตผเดตเตผ เดŽเด™เตเด™เดจเต† เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เด‡เดจเตเดจเต เดžเดพเตป เดชเด™เตเด•เดฟเดŸเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดธเต†เตผเดตเตผ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เดฎเตเดชเดฟเดจเต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚: LinOTP + FreeRadius.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดžเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดตเต‡เดฃเตเดŸเดคเต?
เด‡เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเตŒเดœเดจเตเดฏเดตเตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดตเตเดฎเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต, เดธเตเดตเดจเตเดคเด‚ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดจเตเดณเตเดณเดฟเตฝ, เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดฆเดพเดคเดพเด•เตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฃเต.

เดˆ เดธเต‡เดตเดจเด‚ เดฎเดฑเตเดฑเต เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดตเตเด‚ เดฆเตƒเดถเตเดฏเดชเดฐเดตเตเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดงเดพเดฐเดพเดณเด‚ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเต†เดฏเตเด‚ เดจเดฏเด™เตเด™เดณเต†เดฏเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฒเต‹เด—เดฟเตป+เดชเดพเดธเตโ€Œเดตเต‡เดกเต+(PIN+OTPToken)). API เดตเดดเดฟ, เด‡เดคเต sms เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เดธเต‡เดตเดจเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต (LinOTP เด•เต‹เตบเดซเดฟเด—เต-> เดชเตเดฐเตŠเดตเตˆเดกเตผ เด•เต‹เตบเดซเดฟเด—เต-> เดŽเดธเตเดŽเด‚เดŽเดธเต เดชเตเดฐเตŠเดตเตˆเดกเตผ), Google Authentificator เดชเต‹เดฒเตเดณเตเดณ เดฎเตŠเดฌเตˆเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด•เต‹เดกเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เดšเตผเดšเตเดš เดšเต†เดฏเตเดค เดธเต‡เดตเดจเดคเตเดคเต‡เด•เตเด•เดพเตพ เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต เดฒเต‡เด–เดจเด‚.

เดˆ เดธเต†เตผเดตเตผ 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

เด‡เดคเดพเดฃเต เดชเตเดฐเดพเดฐเด‚เดญ 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 เดธเต†เตผเดตเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเดพเตป เด‡เดคเต LinOTP-เดจเต เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

(LinOTP เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดจเดƒเด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเตพเดชเตเดชเต†เดŸเต†เดฏเตเดณเตเดณ เด…เดงเดฟเด• เดตเดฟเดตเดฐเด™เตเด™เตพ, เด‡เดคเดฟเดจเดพเดฏเดฟ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เด•เดพเดฃเดพเด‚. เดฒเดฟเด™เตเด•เต. เดจเดฟเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ mysql เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต dpkg-reconfigure linotp เดŽเดจเตเดจ เด•เดฎเดพเตปเดกเตเด‚ เด…เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚.

# apt-get install mysql-server

# apt-get update

(เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด•เตพ เดตเต€เดฃเตเดŸเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‰เดชเดฆเตเดฐเดตเดฟเด•เตเด•เดฟเดฒเตเดฒ)
LinOTP เด‰เด‚ เด…เดงเดฟเด• เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•:

# apt-get install linotp

เด‡เตปเดธเตเดฑเตเดฑเดพเดณเดฑเดฟเดจเตเดฑเต† เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เดžเด™เตเด™เตพ เด‰เดคเตเดคเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเต:
Apache2 เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•: เด…เดคเต†
เด…เดกเตเดฎเดฟเตป Linotp-เดจเต เด’เดฐเต เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•: "เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดพเดธเตโ€Œเดตเต‡เดกเต"
เดธเตเดตเดฏเด‚ เด’เดชเตเดชเดฟเดŸเตเดŸ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดฃเต‹?: เด…เดคเต†
MySQL เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเต‹?: เด…เดคเต†
เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต: เดฒเต‹เด•เตเด•เตฝ เดนเต‹เดธเตเดฑเตเดฑเต
เดธเต†เตผเดตเดฑเดฟเตฝ เด’เดฐเต LinOTP เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต (เด…เดŸเดฟเดธเตเดฅเดพเดจ เดจเดพเดฎเด‚) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•: LinOTP2
เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•: LinOTP2
เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด’เดฐเต เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ: "เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดพเดธเตโ€Œเดตเต‡เดกเต"
เดžเดพเตป เด‡เดชเตเดชเต‹เตพ เด’เดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‰เดฃเตเดŸเดพเด•เตเด•เดฃเต‹? ("เดจเดฟเด™เตเด™เตพเด•เตเด•เดพเดตเดถเตเดฏเดฎเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเดฃเต‹..." เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดจเตเดจเต): เด…เดคเต†
เด‡เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดš 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

เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ 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=flat_file
#เด“เดชเตเดทเดฃเตฝ: เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ เด•เดฎเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเด•
เดกเต€เดฌเด—เต=เดธเดคเตเดฏเด‚
#เด“เดชเตเดทเดฃเตฝ: เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดตเดฏเด‚ เด’เดชเตเดชเดฟเดŸเตเดŸ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เด…เดญเดฟเดชเตเดฐเดพเดฏเดฎเดฟเดŸเตเด• (เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ 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 เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป -> UserIdResolvers -> เดชเตเดคเดฟเดฏเดคเต เด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดฏเตเด•
เดžเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเต เดžเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต: LDAP (AD win, LDAP samba), เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ SQL เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดซเตเดฒเดพเดฑเตเดฑเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ.

เด†เดตเดถเตเดฏเดฎเดพเดฏ เดซเต€เตฝเดกเตเด•เตพ เดชเต‚เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดžเด™เตเด™เตพ REALMS เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต:
เดฎเตเด•เดณเดฟเตฝ เดตเดฒเดคเต เด•เต‹เดฃเดฟเตฝ, LinOTP เด•เต‹เตบเดซเดฟเด—เต -> Realms -> New เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•.
เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เดณเตเดŸเต† REALMS-เดจเต เด’เดฐเต เดชเต‡เดฐเต เดจเตฝเด•เตเด•, เด•เต‚เดŸเดพเดคเต† เดฎเตเดฎเตเดชเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš UserIdResolvers-เดฒเตเด‚ เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•.

/etc/linotp2/rlm_perl.ini เดซเดฏเดฒเดฟเตฝ FreeRadius-เดจเต เดˆ เดŽเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดžเดพเตป เดฎเตเด•เดณเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดคเต เดชเต‹เดฒเต†, เด…เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เดณเดคเต เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‡เดชเตเดชเต‹เตพ เดคเดจเตเดจเต† เดšเต†เดฏเตเดฏเตเด•.

เดธเต†เตผเดตเตผ เดŽเดฒเตเดฒเดพเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเต.

เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตฝ:

เดกเต†เดฌเดฟเดฏเตป 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
}
}
เด†เดงเดฟเด•เดพเดฐเดฟเด•เดฎเดพเด•เตเด•เตเด• {
เด“เดคเตเดคเต-เดŸเตˆเดชเตเดชเต เดชเต‡เตพ {
เดฎเตเดคเตเดคเต
}
}
เด…เด•เตเด•เต†เต—เดฃเตเดŸเดฟเด‚เด—เต {
unix
}
}

เดŽเดกเดฟเดฑเตเดฑเต /etc/freeradius/3.0/mods-enabled/perl

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 เดถเดฐเดฟเดฏเดพเด•เตเด•เดพเด‚

เดกเต†เดฌเดฟเดฏเตป 8-เตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด…เดคเต‡ เด•เต‹เดกเต เดžเด™เตเด™เตพ เด…เดตเดฟเดŸเต† เด’เดŸเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต (เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดคเต)

เด†เดถเดฏเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เด…เดคเตเดฐเดฎเดพเดคเตเดฐเด‚. (เด‡เดคเตเดตเดฐเต† เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ)

เดฎเดฟเด•เตเด•เดชเตเดชเต‹เดดเตเด‚ เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เตเดฑเดšเตเดšเต เดฒเดฟเด™เตเด•เตเด•เตพ เดžเดพเตป เดšเตเดตเดŸเต† เดจเตฝเด•เตเดจเตเดจเต:
เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต Apache2

Cisco ASA เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•(เด’เดฐเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดŸเต‹เด•เตเด•เตบ เดœเดจเดฑเต‡เดทเตป เดธเต†เตผเดตเตผ เด…เดตเดฟเดŸเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ ASA เดฏเตเดŸเต† เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดคเดจเตเดจเต† เด†เดฃเต).

เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดฎเตเดณเตเดณ VPN

เด•เดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเต ssh-เตฝ เดฐเดฃเตเดŸเต เด˜เดŸเด•เด‚ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ (LinOTP เด…เดตเดฟเดŸเต†เดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต) - เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเต เดจเดจเตเดฆเดฟ. LiOTP เดจเดฏเด™เตเด™เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฐเดธเด•เดฐเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเดฟเดŸเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚.

เด•เต‚เดŸเดพเดคเต†, เดชเดฒ เดธเตˆเดฑเตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ cms เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต (WordPress-เดจเต, LinOTP-เดจเต เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดชเตเดฐเดคเตเดฏเต‡เด• เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดฃเตเดŸเต เดธเดพเดฎเต‚เดนเดฟเด•เด‚), เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด•เดฎเตเดชเดจเดฟ เดœเต€เดตเดจเด•เตเด•เดพเตผเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต‹เตผเดชเตเดชเดฑเต‡เดฑเตเดฑเต เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเดฟเตฝ เด’เดฐเต เดชเดฐเดฟเดฐเด•เตเดทเดฟเดค เดตเดฟเดญเดพเด—เด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ.
เดธเตเดชเตเดฐเดงเดพเดจ เดตเดธเตเดคเตเดค! Google Authenticator เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป "Google autenteficator" เดฌเต‹เด•เตโ€Œเดธเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดฐเตเดคเต! เด…เดชเตเดชเต‹เตพ QR เด•เต‹เดกเต เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ... (เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏ เดตเดธเตเดคเตเดค)

เดˆ เดฒเต‡เด–เดจเด‚ เดŽเดดเตเดคเดพเตป, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฒเต‡เด–เดจเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

เดฐเดšเดฏเดฟเดคเดพเด•เตเด•เตพเด•เตเด•เต เดจเดจเตเดฆเดฟ.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•