Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Установка и настройка Freeradius cache ====== Данный способ использует [[billing/freeradius_api]] ===== Установка ===== <tabs> * [[#tab-debian|Debian]] * [[#tab-radhat|Centos]] <pane id="tab-debian"> Установим базовый пакет Freeradius <code> apt install freeradius freeradius-utils </code> Переименуем оригинальную директорию с настройками радиуса: <code> mv /etc/freeradius/3.0 /etc/freeradius/3.0.original </code> теперь скачаем подготовленный {{ :billing:freeradius.tar.gz |freeradius}} сервер в режиме cache <code> wget -O freeradius.tar.gz https://wiki.mikbill.pro/_media/billing/freeradius.tar.gz </code> распакуем архив и переместим его в конфиг радиуса <code> tar -xzvf freeradius.tar.gz /bin/cp -Rf freeradius/* /etc/freeradius </code> добавим необходимые атрибуты в **/usr/share/freeradius/dictionary** <code> ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr ATTRIBUTE DHCP-Mask 242 integer ATTRIBUTE L4-Redirect 243 integer ATTRIBUTE L4-Redirect-ipset 244 string ATTRIBUTE DHCP-Option82 245 octets #ATTRIBUTE DHCP-Agent-Circuit-Id 1 octets #ATTRIBUTE DHCP-Agent-Remote-Id 2 octets ATTRIBUTE AccelRemoteId 246 octets ATTRIBUTE AccelCircuitId 247 octets #ATTRIBUTE DHCP-Attr-272 272 ipaddr </code> создаем скрипт загрузи кеша с API биллинга <code> #!/bin/bash API_DOMAIN="https://admin.ispnet.demo" API_NAME="freeradius" API_KEY="1234567890" API_URL="${API_DOMAIN}/ajax/index/${API_NAME}/key/${API_KEY}" BRAS="accelv2" PATTERN_LOCAL_MAC="{{local_mac}}" PATTERN_MAC_ONU="{{dev_mac}}" RAD_DIR="/etc/freeradius/3.0" RAD_SERVICE="freeradius" TMP_DIR="/tmp/${API_NAME}/" WGET_APP="wget --content-disposition --no-check-certificate -q" MV_APP=$(which mv) function restart_freeradius() { service ${RAD_SERVICE} restart } function download() { # $1 - filename # $2 - url $WGET_APP -O "${TMP_DIR}/${1}" "${2}" if [ $? -ne 0 ]; then echo "error on downloading request: ${2}" return 1 fi lines_count=$(wc -l "${TMP_DIR}/${1}" | awk '{ print $1 }') if [ "${lines_count}" > "3" ]; then echo "move ${TMP_DIR}/${1} to ${RAD_DIR}/${1}" $MV_APP "${TMP_DIR}/${1}" "${RAD_DIR}/${1}" else echo "empty file: ${TMP_DIR}/${1}" fi } if [ ! -d "${RAD_DIR}" ]; then echo "wrong path to freeradius config dir: ${RAD_DIR}" exit 1 fi if [ ! -d "${TMP_DIR}" ]; then mkdir -p "${TMP_DIR}" fi download "users" "${API_URL}/request/cache/type/${BRAS}/pattern/${PATTERN_MAC_ONU}" download "clients.conf" "${API_URL}/request/config/file/clients" restart_freeradius </code> Заменяем на свои значения: <code> API_DOMAIN="https://admin.ispnet.demo" API_KEY="1234567890" </code> после чего можно добавлять данный скрипт в крон на необходимую частоту обновления кеша. </pane> <pane id="tab-radhat"> Установим базовый пакет Freeradius <code> yum install freeradius freeradius-utils </code> Переименуем оригинальную директорию с настройками радиуса: <code> mv /etc/freeradius/3.0 /etc/freeradius/3.0.original </code> теперь скачаем подготовленный {{ :billing:raddb.tar.gz |freeradius}} сервер в режиме cache <code> wget -O freeradius.tar.gz https://wiki.mikbill.pro/_media/billing/raddb.tar.gz </code> распакуем архив и переместим его в конфиг радиуса <code> tar -xzvf freeradius.tar.gz /bin/cp -Rf raddb/* /etc/raddb/ </code> добавим необходимые атрибуты в **/usr/share/freeradius/dictionary** <code> ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr ATTRIBUTE DHCP-Mask 242 integer ATTRIBUTE L4-Redirect 243 integer ATTRIBUTE L4-Redirect-ipset 244 string ATTRIBUTE DHCP-Option82 245 octets #ATTRIBUTE DHCP-Agent-Circuit-Id 1 octets #ATTRIBUTE DHCP-Agent-Remote-Id 2 octets ATTRIBUTE AccelRemoteId 246 octets ATTRIBUTE AccelCircuitId 247 octets #ATTRIBUTE DHCP-Attr-272 272 ipaddr </code> создаем скрипт загрузи кеша с API биллинга <code> #!/bin/bash API_DOMAIN="https://admin.ispnet.demo" API_NAME="freeradius" API_KEY="1234567890" API_URL="${API_DOMAIN}/ajax/index/${API_NAME}/key/${API_KEY}" BRAS="accelv2" PATTERN_LOCAL_MAC="{{local_mac}}" PATTERN_MAC_ONU="{{dev_mac}}" RAD_DIR="/etc/raddb" RAD_SERVICE="radiusd" TMP_DIR="/tmp/${API_NAME}/" WGET_APP="wget --content-disposition --no-check-certificate -q" MV_APP=$(which mv) function restart_freeradius() { service ${RAD_SERVICE} restart } function download() { # $1 - filename # $2 - url $WGET_APP -O "${TMP_DIR}/${1}" "${2}" if [ $? -ne 0 ]; then echo "error on downloading request: ${2}" return 1 fi lines_count=$(wc -l "${TMP_DIR}/${1}" | awk '{ print $1 }') if [ "${lines_count}" > "3" ]; then echo "move ${TMP_DIR}/${1} to ${RAD_DIR}/${1}" $MV_APP "${TMP_DIR}/${1}" "${RAD_DIR}/${1}" else echo "empty file: ${TMP_DIR}/${1}" fi } if [ ! -d "${RAD_DIR}" ]; then echo "wrong path to freeradius config dir: ${RAD_DIR}" exit 1 fi if [ ! -d "${TMP_DIR}" ]; then mkdir -p "${TMP_DIR}" fi download "users" "${API_URL}/request/cache/type/${BRAS}/pattern/${PATTERN_MAC_ONU}" download "clients.conf" "${API_URL}/request/config/file/clients" restart_freeradius </code> Заменяем на свои значения: <code> API_DOMAIN="https://admin.ispnet.demo" API_KEY="1234567890" </code> после чего можно добавлять данный скрипт в крон на необходимую частоту обновления кеша. </pane> </tabs> billing/freeradius_cache.txt Последнее изменение: 2 лет назад — alexd