Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Также у вас должно быть собрано ядро с:
|
либо загрузить модулем:
|
Остальное, что нужно mpd он сам загрузит.
И так, приступим.
1. Abills.
|
В портах есть abills-0.41. На сайте сть 0.5-я версия. Я ставил из портов.
|
Создаем пользователя для абиллса:
|
|
Загружаем таблицы в базу.
|
Правим /usr/local/abills/libexec/config.pl
|
При изменении значения в $conf{secretkey} поменяйте его также в файле abills.sql
Вносим в cron периодические процессы /etc/crontab
|
В /usr/local/abills/libexec/config.pl добавляем
|
2. mpd5
Настройка mpd5 уже не раз обсуждалась, но в кратце повторюсь, для полноты картины так сказать.
Для того, что бы собрать mpd с поддержкой ng_car рекомендуют, что бы модуль ng_car был уже загружен ядром.
|
|
|
После установки правим дефолтный конфиг до такого состояния:
|
Обращаем внимание на слудющие строки:
Они понадобятся для настройки Abills'a.
|
em0 - интерфейс, на котором слушает mpd5 (pppoe)
|
PASSWD - пароль для подключения к радиус-серверу.
|
Не забываем также про ТАБуляцию, свойственную mpd.
3. FreeRadius. Пробовал freeradius2, но с ним у меня что-то не срослось. Интерфейс поднимался и через несколько секунд падал. Я не победил, по-этому переполз на 1-й.
|
|
После успешной установки правим конфиги радиуса:
|
файл users
|
файл acct_users
|
в файл clients.conf прописываем пароль для доступа к радиус-серверу, тот что мы указывали в mpd.conf
|
В файле radiusd.conf
Нужно создать функции для преавторизации и поставторизации в секции 'modules'
|
Комментируем использование модулей 'chap' и добавим 'pre_auth' в разделе 'authorize'
|
Для оповещения о неавторизированых пользователях. Внесите в секцию 'post-auth'
|
Создаем словарь для мпд dictionary.mpd:
|
в файле dictionary добавляем строку:
|
4. Добавляем нужные модули perl. Также проверьте пусть к бинарнику перла. К примеру в 8-ке он лежит уже не в /usr/bin/perl , а в /usr/local/bin/perl. По-этому я делал симлинк:
|
|
5. Настриваем apache
Добавляем
|
И сгенерим сертификаты:
|
Имейте ввиду, нужно что бы Common Name (eg, YOUR name) []: совпадал с именем вашего сервера (hostname).
Стартуем apache.
Если ставите apache22 и в логах ругань на
[warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter |
то добавьте в /boot/loader.conf
|
6. Настраиваем Abbils.
Заходим на https://your.host:9443/admin/
Выбираем русский язык.
Теперь нужно сконфигурировать сервер доступа NAS
Идем в Система -> Сервер доступа
|
Теперь добавляем ему пул адресов, которые будут выдаваться клиентам при подключении к ВПН-серверу.
Заходим в IP POOLs
|
Если нужно больше, увеличиваем сеть или создаем еще пулы. Их будем указывать в тарифном плане.
Теперь настроим хотя бы один тарифный план: Система -> Internet -> Тарифные планы -> Добавить
Тут настраиваем по вкусу, при этом указываем пул-адресов (IP Pool:) и RADIUS Parameters (,).
RADIUS Parameters (,) - это собственно и есть параметры передаваемые радиусом системе ng_car.
Сюда для примера добавим:
|
где первая цифра (rate-limit) собственно ограничение скорости при закачке
вторая - (normal burst) - какую полосу отдать за 1 секунду
третья - (extended burst) за первые полторы секунды
Формулы расчета burst (Cisco like rate-limit):
|
Теперь добавим пользователя Клиенты -> Логины -> Добавить
Затем привязываем к нему тарифный план. Далее исходя из тарифного плана (предоплата/постоплата) смотрим, нужно ли ему для успешной авторизации деньги на счету, и если нужны, то добавляем. Далее активируем пользователя.
Запускаем mpd, radius (предварительно добавив параметры запуска в rc.conf)
Проверяем, может ли пользователь авторизироваться в радиусе:
|
если ему выдался ИП и т.д., то все ок.
Для логирования mpd, добавляем следующее в /etc/syslog.conf
|
Создаем файл, даем права и рестартуем syslog
|
7. Настроим ipfw и nat
Укажу минимальный набор правил для доступа пользователей в интернет:
rl1 - внешняя сетевая карта
rl0 - внутреняя сетевая карта
192.168.1.0/24 - локальная сеть
${eip} - Внешний IP-адрес
table(1) - содержит созданные вами пулы адресов
Фаервол по-умолчанию закрытый.
|
Пробуем настроить соединение в Windows:
1. На рабочем столе откройте Мой компьютер, в нем откройте Панель управления. Здесь открывайте Сетевые подключения.
2. В пункте меню Файл выберете Новое подключение...
3. Нажимайте Далее
4. Выбирайте Подключится к Интернет и нажимайте Далее
5. Выбирайте Установить подключение вручную и нажимайте Далее
6. Выбирайте Через высокоскоростное соединение, запрашивающее имя пользователя и пароль и нажимайте Далее
7. В поле Имя поставщика услуг введите название соединения, INET. Нажимайте Далее
8. В поля Имя пользователя и Пароль вводите имя и пароль для входа в Интернет соответственно, и нажимайте Далее
9. Установите пункт Добавить ярлык подключения на рабочий стол и нажимайте Готово
10. Для подключения к интернет нажимайте Подключение.
Дальше проверяем работу интернета, скорость закачки. Если что-то не так смотрим логи.
Литература:
http://abills.net.ua/wiki/doku.php/abills:index
http://mpd.sourceforge.net/doc/mpd.html
|
m0ps, 2009-10-30 в 16:56:39
как-раз искал how-to на подобную тему
Sun, 2009-10-30 в 20:12:16
Статья сыровата, по настроки веб сервера опишите подробнее, просто то что в портах 0.41 имеет некоторые ошибки в abills_httpd.conf надо в ручную допиливать.
Sun, 2009-10-30 в 21:22:57
А также есть грабли с параметром $conf{secretkey}="test12345678901234567890"; если во время установки по незнанию сменить то в админку зайти не получится.Выход в дампе править этот параметр в пользователе.Час убил на эту хрень )))
schizoid, 2009-11-02 в 14:42:32
Sun, можно по-конкретнее. я ничего по-моему не правил в нем (abills_httpd.conf). По-моему там даже пути были правильные.
на счет secretkey - собсна тоже сказано:
При изменении значения в $conf{secretkey} поменяйте его также в файле abills.sql
при чем выделенно жирным.
Sun, 2009-11-02 в 16:21:25
ой,сорри. через строчку читал ))) балин )) а кто нить со вторым радиусом это проделывал?
schizoid, 2009-11-02 в 19:21:56
у меня не завелся
Sun, 2009-11-03 в 5:41:05
у меня частично завелось,радтест из базы забирает настройки верные,а на клиенте выдает не 619,а маленькое окошко с примечанием типа таких тут нет,и ниже три поля логин пароль домен, листая логи дагоняю что где то проблема с шифрованием...
Sun, 2009-11-03 в 10:52:22
Ура победил!))) freeradius2+mpd5+mysql5+abills_0.41b+freebsd-6.2!)))
Vlad, 2009-11-03 в 17:48:11
Sun, и rlm_perl работает?
Sun, 2009-11-03 в 18:31:32
не это пока не пробовал... шифрование работает и авторизация по мсчап2 тоже,ток вот понять не могу одного,чисто случайно зашел под логином а он оказался уже подключен и получилось 2 пользователя под одним логином работают
schizoid, 2009-11-04 в 10:24:01
уверен, что оба полноценно работают? ;)
вообще вроде есть параметр mpd, который запрещает это.
sun, 2009-11-04 в 12:54:56
разобрался,нормально работали оба ) а вот в настройках в админке заметил параметр "Одновременно" по умолчанию ноль, полагаю что как раз оно,еще не проверял,проверю отпишусь.Кста кто нить настроил Paysys,я понимаю что он платный,но может кто таблетку знает? А то уже начал собирать инфу по написанием модулей для него,нужен агрегатор для VM.
sun, 2009-11-04 в 12:55:18
разобрался,нормально работали оба ) а вот в настройках в админке заметил параметр "Одновременно" по умолчанию ноль, полагаю что как раз оно,еще не проверял,проверю отпишусь.Кста кто нить настроил Paysys,я понимаю что он платный,но может кто таблетку знает? А то уже начал собирать инфу по написанием модулей для него,нужен агрегатор для VM.
Al, 2009-11-11 в 13:17:11
> 2 пользователя под одним логином работают
set auth max-logins 1
в настройки радиуса в мпд и будет подключаться не больше одного.
>ой,сорри. через строчку читал ))) балин )) а кто нить со вторым радиусом это проделывал?
Для второго радиуса файл dictionary выглядит как минимум так
# dictionary.mpd
# id = [local id + 3000 for compability with other dictionaries]
VENDOR mpd 12341
BEGIN-VENDOR mpd
#ATTRIBUTE mpd-rule 1 string
#ATTRIBUTE mpd-pipe 2 string
#ATTRIBUTE mpd-queue 3 string
#ATTRIBUTE mpd-table 4 string
#ATTRIBUTE mpd-table-static 5 string
ATTRIBUTE mpd-filter 6 string
ATTRIBUTE mpd-limit 7 string
#ATTRIBUTE mpd-input-octets 8 string
#ATTRIBUTE mpd-input-packets 9 string
#ATTRIBUTE mpd-output-octets 10 string
#ATTRIBUTE mpd-output-packets 11 string
#ATTRIBUTE mpd-link 12 string
#ATTRIBUTE mpd-bundle 13 string
#ATTRIBUTE mpd-iface 14 string
#ATTRIBUTE mpd-iface-index 15 integer
#ATTRIBUTE mpd-input-acct 16 string
#ATTRIBUTE mpd-output-acct 17 string
#ATTRIBUTE mpd-action 18 string
#ATTRIBUTE mpd-drop-user 54 integer
END-VENDOR mpd
alik, 2009-11-26 в 14:53:37
хорошая статья, а можно вас попросить переконвентировать правило фаервола с ipfw на pf.
Заранее спасибо.
schizoid, 2009-11-28 в 22:29:21
фаервол собсна не учавствует в связке как основное звено. берите любой, главное НАТить, тот пул адресов, которые указываете в абиллсе.
Sun, 2010-01-01 в 18:31:01
>Для второго радиуса файл dictionary выглядит как минимум так
А я маленько по другому заводил, там косяк в модуле авторизации как раз у абиллса,где то находил в рунете как подправить, но сейчас не вспомню,поищу выложу.
schizoid, 2010-01-02 в 23:15:50
Выкладывайте, будет потребность обновим статью ;)
Sun, 2010-01-03 в 17:33:27
http://abills.net.ua/forum/viewtopic.php?f=2&t=4165&start=30
вот нашел,прочитав эту тему решилась проблема с радиусом вторым
Если совсем точно то в Auth.pm
#*******************************************************************
# Authorization module
# pre_auth()
#*******************************************************************
sub pre_auth {
if ($self->{TOTAL} > 0) {
my $list = $self->{list}->[0];
my $password = $list->[0];
$self->{'RAD_CHECK'}{'User-Password'}="$password";
# freeeradius 1xx
#print "User-Password == \"$password\"";
# freeradius v2
print "Cleartext-Password := \"$password\"";
return 0;
}
pin, 2010-01-05 в 10:31:26
Доброго времени суток! Почему в статье не описана замена "штатного" ppp демона на комплект из поставки абиллса? У меня на 7.2 не получилось завести. Или вы трафик по тарифным зонам не считаете?
schizoid, 2010-01-05 в 22:14:23
Это так сказать необходимый минимум, далее можете воротить все что захотите ;)
~AsmodeuS~, 2010-01-06 в 17:11:56
Abills + MPD5 можно считать трафик по направлениям
RusBiT, 2010-01-07 в 6:51:38
Abills - отличный выбор!
Только в названии статьи опечатка "Abiils"
Sun, 2010-01-10 в 14:02:31
Народ вопрос может конечно немного не в тему.Но вот у абилса есть агрегатор для электронных платежей модуль Paysys который стоит денег, может есть у кого альтернативный самописный модуль?
schizoid, 2010-01-11 в 18:22:56
2 RusBiT, fixed ;)
Laa, 2010-01-27 в 17:33:52
Лучше сразу ставить abills из cvs.
Вот так:
cvs -d:pserver:anonymous@abills.cvs.sourceforge.net:/cvsroot/abills login
cvs -z3 -d:pserver:anonymous@abills.cvs.sourceforge.net:/cvsroot/abills checkout -r rel-0-5 abills
так сразу будет последняя версия.
Так же и обновлять.
Сам вчера обновил 0.5 на 0.51.
При обновлении не забывать читать changelog на сайте и выполнять из него sql-команды (база-то изменяется)!
schizoid, 2010-01-28 в 10:27:40
В портах обычно стабильная версия.
-=N.K=-, 2010-02-03 в 16:12:56
ИМХО PPPOE полное говно, какой нить дурак по незнанию создаст в винде входящее соединение и понеслись проблемы:)
~AsmodeuS~, 2010-03-05 в 0:47:03
Для работы с freeradius 2 нужно указать параметр в конфигурационном файле $conf{RADIUS2}=1;
gekz, 2010-04-21 в 17:04:36
дошёл до этого пункта
админилка не пускает с сообщением не верный логин или пароль
вроде всё провели, ошибок ни где нет
где искать, подскажите?
6. Настраиваем Abbils.
Заходим на https://your.host:9443/admin/
Выбираем русский язык.
rubsd, 2010-05-31 в 12:21:59
не ставится у меня Abills. при установке freeradius вылезает ошибка ===> ucd-snmp-4.2.7.1 is marked as broken: does not build.
*** Error code 1
Stop in /usr/ports/net-mgmt/net-snmp4.
*** Error code 1
Stop in /usr/ports/net/freeradius.
*** Error code 1
Stop in /usr/ports/net/freeradius.
*** Error code 1
Stop in /usr/ports/net/abills.
И всё. уже даже с сырцов поставил я этот net-snmp4. А толку нет:(((
помогите пожалуйста.
div, 2010-06-14 в 12:22:29
классное хав ту =)
поднимал на 7.2, только через pptp, все прекрасно работало, а вот на 8-ке при подключении клиента через vpn все работает до той поры пока клиент не переподключится, после этого падает nat и перестает работать у всех ранее подключенных, если сделать реконфиг ipfw то все опять работает... может кто встречался?
xChek, 2010-06-15 в 22:02:21
В целом статья хорошая, но нужно описать подключение модулей, ибо без них нет смысла, данального тарифного плана нет.
Покрайней мере в 5.0 и 5.1.
ЗЫ в паке есьть дефолтный конфи его можно поправить+ есть куча конфигурационных файлов и в поставке
Laa, 2010-07-30 в 16:08:10
Скорость циска рекомендует так выставлять:
Cisco recommends the following values for the normal and extended burst parameters:
normal burst = configured rate * (1 byte)/(8 bits) * 1.5 seconds
extended burst = 2 * normal burst
источник
Xumuk, 2010-12-01 в 10:05:47
поставил 5.1, не найду где тариф создавать. Что за прикол, как его создать ?
levantuev, 2011-03-21 в 12:36:39
пишет ошибку в логе:
Error: Errors reading dictionary: dict_init: Dictionary "/usr/local/share/freeradius/" is not a regular file
что может быть?
ka4a, 2011-04-06 в 17:23:33
Отличная статья. Добавьте описание HangUp в этой связке. Пробывал на фри бсд всё получилось пучком!
ttys, 2011-12-28 в 11:26:35
1 0 * * * root /usr/local/abills/libexec/periodic daily
1 1 * * * root /usr/local/abills/libexec/periodic monthly
это так и есть? monthly и daily срабатывают каждый день? с разницой в час? или всё же это опечатка?
Вносим в cron периодические процессы /etc/crontab
*/5 * * * * root /usr/local/abills/libexec/billd -all
а вот за это надо руки отбивать!
нах трогать системный крон?
чем рутовый crontab -e не устраивает?
ttys, 2013-04-26 в 16:35:11
вариант фрибсд:
1 1 * * * root /usr/abills/libexec/periodic monthly
вариант линух:
1 0 1 * * root /usr/abills/libexec/periodic monthly
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
вверх
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [39 шт.]