tm

   Зарисовка о настройке TACACS+ с доменной авторизацией на Ubuntu 16.

Пакет, находящийся в репозиториях Ubuntu не подходит. Счачиваем или от сюда или с сайта разработчика.

Нужно установить ещё:

apt-get install libnet-ldap-perl

Содаём каталоги:

sudo mkdir /var/log/tac_plus
sudo mkdir /var/log/tac_plus/access
sudo mkdir /var/log/tac_plus/accounting
sudo mkdir /var/log/tac_plus/authentication

Распаковываем архив и переходим в директорию с исходниками:

bzip2 -dc DEVEL.tar.bz2 | tar xvfp -
cd /tmp/PROJECTS

Устанавливаем необходимый инструментарий:

apt-get install libpcre3-dev libpcre3-dev libpcre2-dev gcc make

Выполняем

make

При возниконовении ошибок типа:

ERROR
./PROJECTS/mavis/mavis_parse.c

./PROJECTS/mavis/mavis_parse.c: In function ‘cfg_close’:
./PROJECTS/mavis/mavis_parse.c:936:21: warning: unused parameter ‘url’ [-Wunused-parameter]
int cfg_close(char *url, char *buf, int buflen)
./PROJECTS/mavis/mavis_parse.c: In function ‘mavis_cond_eval’:
./PROJECTS/mavis/mavis_parse.c:2071:14: error: ‘sym’ undeclared (first use in this function)
parse_error(sym, "You're using PCRE syntax, but this binary wasn't compiled with PCRE support.");
./PROJECTS/mavis/mavis_parse.c:2071:14: note: each undeclared identifier is reported only once for each function it appears in
./PROJECTS/mavis/mavis_parse.c: In function ‘mavis_script_eval_r’:
./PROJECTS/mavis/mavis_parse.c:2241:19: error: ‘sym’ undeclared (first use in this function)
parse_error(sym, "Substring matching requires PCRE support.");
make[2]: *** [mavis_parse.o] Error 1
make[2]: Leaving directory `./PROJECTS/build/linux-3.19.0-80-generic-x86_64/mavis'
make[1]: *** [build] Error 2
make[1]: Leaving directory `./PROJECTS/mavis'
make: *** [dirs] Error 1

выполняем:

./configure --with-pcre

и снова 

make
make install

Установка должна пройти без ошибок.

Создаём файл конфигурации:

nano /usr/local/etc/tac_plus.cfg
#!/usr/local/sbin/tac_plus
id = spawnd {
listen = { address = 0.0.0.0 port = 49 }
spawn = {
instances min = 1
instances max = 10
}
background = yes
}
id = tac_plus {
access log = /var/log/tac_plus/access/access-%d-%m-%Y.txt
accounting log = /var/log/tac_plus/accounting/accounting-%d-%m-%Y.txt
authentication log = /var/log/tac_plus/authentication/authentication-%d-%m-%Y.txt
mavis module = external {
setenv LDAP_SERVER_TYPE = "microsoft"
setenv LDAP_HOSTS = "192.168.50.20:389 192.168.50.22:389"
setenv LDAP_BASE = "DC=domain,DC=local"
setenv LDAP_SCOPE = sub
setenv LDAP_FILTER = "(&(objectClass=user)(objectClass=person)(sAMAccountName=%s))"
setenv LDAP_USER = "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
setenv LDAP_PASSWD = "SDsdkj$"
setenv UNLIMIT_AD_GROUP_MEMBERSHIP = 1
setenv EXPAND_AD_GROUP_MEMBERSHIP = 0
setenv AD_GROUP_PREFIX = ""
setenv REQUIRE_TACACS_GROUP_PREFIX = 0
exec = /usr/local/lib/mavis/mavis_tacplus_ldap.pl
}
login backend = mavis
user backend = mavis
pap backend = mavis
host = world {
address = 192.168.50.0/24, 192.168.60.0/24
prompt = "Your actions are recording...\n"
key = "TacKdey!f"
}
group = TACADM {
message = "[Admin privileges]"
default service = permit
service = shell {
default command = permit
default attribute = permit
set priv-lvl = 15
}
}
user = ssv {
member = TACADM
}
}

Права для файла конфигурации:

chmod 755 /usr/local/etc/tac_plus.cfg

Далее создаём технологическую учётку в домене с неограниченным сроком действия пароля и без возможности изменить его же.

Технологическая учётка

и группу, для адинистраторов и операторов, например:

tacgroup

И в качестве члена этой группы добавляем какого-нибудь пользователя.

   Проверяем конфижный файл на ошибки:

/usr/local/sbin/tac_plus -P /usr/local/etc/tac_plus.cfg

В ответ ничего не должны получить. Далее проверяем конфигурацию AD:

/usr/local/bin/mavistest -d -1 /usr/local/etc/tac_plus.cfg tac_plus TACPLUS <user> <password>

В качестве пользователя берём любого доменного пользователя. В ответ должны получить помимо всего прочего:

TEST
. . . . .
Input attribute-value-pairs:
TYPE                TACPLUS
TIMESTAMP           mavistest-6452-1515587476-0
USER                zal1
PASSWORD            Zal1
TACTYPE             AUTH
Output attribute-value-pairs:
TYPE                TACPLUS
TIMESTAMP           mavistest-6452-1515587476-0
USER                zal1
RESULT              ACK
PASSWORD            Zal1
SERIAL              wNX4CrfmtNE190ITLDhtRA=
DBPASSWORD          Zal1
TACMEMBER           "MedPersonalNemDan"
TACTYPE             AUTH

Далее копируем скрипт запуска процесса Tacacs+ из диретории куда распаковали иходники, в /etс/init.d/:

cp ./PROJECTS/tac_plus/extra/etc_init.d_tac_plus /etc/init.d/tac_plus

Права на файл:

chmod 755 /etc/init.d/tac_plus
chown root:root /etc/init.d/tac_plus

И стартуем процесс:

/etc/init.d/tac_plus start

В качестве проверки, что 49 порт прослушивается и сервис работает нормально:

netstat -tulpen | grep tac
service tac_plus status

Указываем на файл конфигурации:

/usr/local/sbin/tac_plus /usr/local/etc/tac_plus.cfg

Это всё.

Комментарии отключены