ЛинОТП сервер за двофакторну аутентификацију

ЛинОТП сервер за двофакторну аутентификацију

Данас желим да поделим како да подесите сервер за аутентификацију са два фактора да заштитите вашу корпоративну мрежу, веб локације, услуге, ссх. Сервер ће покренути следећу комбинацију: ЛинОТП + ФрееРадиус.

Зашто смо му потребни?
Ово је потпуно бесплатно, практично решење, унутар сопствене мреже, независно од провајдера трећих страна.

Ова услуга је веома згодна, прилично визуелна, за разлику од других производа отвореног кода, а такође подржава велики број функција и политика (На пример, логин+пассворд+(ПИН+ОТПТокен)). Преко АПИ-ја се интегрише са услугама слања смс порука (ЛинОТП Цонфиг->Провидер Цонфиг->СМС Провидер), генерише кодове за мобилне апликације као што је Гоогле Аутхентифицатор и још много тога. Мислим да је то згодније од услуге о којој се говори Чланак.

Овај сервер савршено ради са Цисцо АСА, ОпенВПН сервером, Апацхе2 и уопште са скоро свиме што подржава аутентификацију преко РАДИУС сервера (на пример, за ССХ у дата центру).

Потребно је:

1) Дебиан 8 (јессие) - Увек! (пробна инсталација на Дебиан 9 је описана на крају чланка)

Почетак:

Инсталирање Дебиана 8.

Додајте ЛинОТП спремиште:

# 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

Инсталирајте мискл. У теорији, можете користити други скл сервер, али ради једноставности ја ћу га користити како је препоручено за ЛинОТП.

(додатне информације, укључујући реконфигурисање ЛинОТП базе података, могу се наћи у званичној документацији за веза. Тамо такође можете пронаћи команду: дпкг-рецонфигуре линотп за промену параметара ако сте већ инсталирали мискл).

# apt-get install mysql-server

# apt-get update

(не би шкодило да поново проверите ажурирања)
Инсталирајте ЛинОТП и додатне модуле:

# apt-get install linotp

Одговарамо на питања инсталатера:
Користите Апацхе2: да
Креирајте лозинку за администратора Линотп: „Ваша лозинка“
Генерисати самопотписани сертификат?: да
Користити МиСКЛ?: да
Где се налази база података: лоцалхост
Креирајте ЛинОТП базу података (основно име) на серверу: ЛинОТП2
Креирајте засебног корисника за базу података: ЛинОТП2
Поставили смо лозинку за корисника: „Ваша лозинка“
Да ли сада треба да направим базу података? (нешто попут „Да ли сте сигурни да желите...“): да
Унесите МиСКЛ роот лозинку коју сте креирали приликом инсталације: „ИоурПассворд“
Готово.

(опционо, не морате да га инсталирате)

# apt-get install linotp-adminclient-cli 

(опционо, не морате да га инсталирате)

# apt-get install libpam-linotp  

И тако је наш Линотп веб интерфејс сада доступан на:

"<b>https</b>: //IP_сервера/manage"

О подешавањима у веб интерфејсу ћу говорити мало касније.

Сада, најважнија ствар! Подижемо ФрееРадиус и повезујемо га са Линотп-ом.

Инсталирајте ФрееРадиус и модул за рад са ЛинОТП-ом

# 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

Затим уредите датотеку /етц/фреерадиус/модулес/перл

# 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

Ући ћу у мало више детаља јер је важно:

Комплетан опис датотеке са коментарима:
#ИП линОТП сервера (ИП адреса нашег ЛинОТП сервера)
УРЛ=хттпс://172.17.14.103/валидате/симплецхецк
#Наша област коју ћемо креирати у ЛинОТП веб интерфејсу.)
РЕАЛМ=реарм1
#Назив корисничке групе која је креирана у ЛинОТП веб-у.
РЕСЦОНФ=флат_филе
#опционо: коментаришите ако изгледа да све функционише добро
Дебуг=Тачно
#опционо: користите ово, ако имате самопотписане сертификате, у супротном коментаришите (ССЛ ако креирамо сопствени сертификат и желимо да га верификујемо)
ССЛ_ЦХЕЦК=Нетачно

Затим креирајте датотеку /етц/фреерадиус/ситес-аваилабле/линотп

# 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

Сада се вратимо на веб лице и погледајмо га мало детаљније:
У горњем десном углу кликните на ЛинОТП Цонфиг -> УсерИдРесолверс -> Нев
Ми бирамо шта желимо: ЛДАП (АД вин, ЛДАП самба), или СКЛ, или локални корисници Флатфиле система.

Попуните обавезна поља.

Затим креирамо РЕАЛМС:
У горњем десном углу кликните на ЛинОТП Цонфиг -> Реалмс -> Нев.
и дајте име нашем РЕАЛМС-у, а такође кликните на претходно креиране УсерИдРесолверс.

ФрееРадиус-у су потребни сви ови подаци у датотеци /етц/линотп2/рлм_перл.ини, као што сам писао горе, па ако то нисте уређивали тада, урадите то сада.

Сервер је конфигурисан.

Додатак:

Постављање ЛинОТП-а на Дебиан 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

(подразумевано, у Дебиану 9 мискл (мариаДБ) не нуди постављање роот лозинке, наравно можете да је оставите празно, али ако читате вести, то врло често доводи до „епских неуспеха“, па ћемо је поставити У сваком случају)

# 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

Залепите код (послао ЈуриМ, хвала му на томе!):

сервер линотп {
слушај {
ипаддр = *
лука = 1812
типе=аутх
}
слушај {
ипаддр = *
лука = 1813
тип = аццт
}
ауторизовати {
препроцесу
ажурирање {
&цонтрол:Аутх-Типе := Перл
}
}
аутентификовати {
Аутх-Типе Перл {
перл
}
}
рачуноводство {
уник
}
}

Уредите /етц/фреерадиус/3.0/модс-енаблед/перл

перл {
име датотеке = /уср/схаре/линотп/радиус_линотп.пм
фунц_аутхентицате = аутентификовати
фунц_аутхоризе = ауторизовати
}

Нажалост, у Дебиан-у 9 библиотека радиус_линотп.пм није инсталирана из спремишта, па ћемо је преузети са гитхуб-а.

# 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

сада уредимо /етц/фреерадиус/3.0/цлиентс.цонф

клијент сервери {
ипаддр = 192.168.188.0/24
тајна = ваша лозинка
}

Сада да исправимо нано /етц/линотп2/рлм_перл.ини

Тамо налепимо исти код као када инсталирамо на дебиан 8 (описано горе)

то је све по замисли. (још није тестирано)

У наставку ћу оставити неколико линкова о постављању система који најчешће треба да буду заштићени двофакторском аутентификацијом:
Подешавање двофакторске аутентификације у АпацхеКСНУМКС

Подешавање са Цисцо АСА(тамо се користи другачији сервер за генерисање токена, али су подешавања самог АСА-а иста).

ВПН са двофакторском аутентификацијом

подешавање двофакторска аутентификација у ссх (Тамо се користи и ЛинОТП) - хвала аутору. Тамо такође можете пронаћи занимљиве ствари о постављању ЛиОТП политика.

Такође, цмс многих сајтова подржава двофакторску аутентификацију (за ВордПресс, ЛинОТП чак има свој посебан модул за гитхуб), на пример, ако желите да направите заштићени одељак на вашој корпоративној веб локацији за запослене компаније.
ВАЖНА ЧИЊЕНИЦА! НЕМОЈТЕ чекирати поље „Гоогле аутентификатор“ да бисте користили Гоогле Аутхентицатор! КР код тада није читљив... (чудна чињеница)

За писање овог чланка коришћене су информације из следећих чланака:
итнан.ру/пост.пхп?ц=1&п=270571
ввв.дигиталбеарс.нет/?п=469

Хвала ауторима.

Извор: ввв.хабр.цом

Додај коментар