Предоставляем доступ для пользователя и включаем нужные сервисы :
Для выполнения команд нужно создать SSH сертификат с пустым паролем и залить его на Mikrotik по ftp.
Перед созданием сертификата убедитесь что на Mikrotik'е включён сервис ftp, ssh.
Загружаем ключи и сертификаты :
# shell MIKROTIK_USERNAME='логин_для_микротика' MIKROTIK_IP='айпи_адрес_микротика' /usr/abills/misc/certs_create.sh ssh abills_admin -UPLOAD_FTP ${MIKROTIK_USERNAME}@${MIKROTIK_IP} # спросит пароль, загрузит ключи
На Микротике создаем пользователя и подключаем ему наш сгенерированный ключ :
[admin@mikrotik]> user add name=abills_admin group=write [admin@mikrotik]> user ssh-keys import public-key-file=id_rsa.abills_admin.pub user=abills_admin
Проверяем с биллинг сервера правильно ли мы все сделали (в консоль должно вывести name: MikroTik) :
ssh -l abills_admin -i /usr/abills/Certs/id_rsa.abills_admin ${MIKROTIK_IP} "/system identity print"
Самостоятельная активация сессии IPN абонентом
Добавить правила для перенаправления на клиентский кабинет для подключения к IPN :
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=10.0.0.10 to-ports=80 protocol=tcp src-address=192.168.6.0/24 dst-address=0.0.0.0/0 dst-port=80
Инициализация и контроль правил шейпера
/usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=1
Параметры для скрипта :
Ключ | Значение |
---|---|
NAT=1 | Поднять маскарадинг для всех адрес листов |
SKIP_NAT_IPS=xxx.xxx.xxx.xxx | Не маскарадить обращения к адресу |
NAS_IDS=1 | Номер сервера доступа |
Пример правила открытия доступа для модуля Ipn (тип сервера - mikrotik_dhcp)
abills/libexec/config.pl
$conf{IPN_FW_START_RULE}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn up getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_MNG_USER=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"'; $conf{IPN_FW_STOP_RULE}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn down getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_MNG_USER=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"';
Сертификат SSH (/usr/abills/Certs/id_rsa.abills_admin) должен быть доступен пользователю под которым работает веб сервер