Користувальницькькі налаштування

Налаштування сайту


microtik

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія По сторонах наступні версії
microtik [2013/04/30 13:36]
microtik [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
Рядок 1: Рядок 1:
 +====== Эта реализация считается устаревшей и не поддерживается с релиза 0.4.3 ====== 
 +**используйте [[mikrotikapi|Управление MikroTik через API]]**
 +
 +====== Использование Mikrotik в роли NAS ======
 +Одним из популярных способов терминации пользователей на Mikrotik является использование последнего как DHCP-Relay с последующим шейпингом и ассоциацией IP+MAC там же. Ubilling начиная с версии 0.2.6 умеет напрямую общаться с Mikrotik с целью контроля вышеуказанных задач налету. 
 +
 +
 +===== Подготовка =====
 +
 +1. Генерируем ключ без пароля для пользователя ubilling
 +  # cd docs/mikrotik/
 +  # sh ssh_keygen.sh ubilling
 +  # cp dsakey.ubilling /etc/stargazer/
 + 
 +2. Добавляем пользователя ubilling на Mikrotik 
 +  [admin@MikroTik] > user add name=ubilling group=write
 +  
 +3. Заливаем публичный файл ключей на Mikrotik
 +  # ftp 172.17.0.5
 +  # Connected to 172.17.0.5.
 +  220 MikroTik FTP server (MikroTik 4.5) ready
 +  Name (172.17.0.5:nightfly): admin
 +  331 Password required for admin
 +  Password:
 +  230 User admin logged in
 +  Remote system type is UNIX.
 +  ftp> put dsakey.ubilling.pub
 +  local: dsakey.ubilling.pub remote: dsakey.ubilling.pub
 +  500 'EPSV': command not understood
 +  227 Entering Passive Mode (172,17,0,5,220,47).
 +  150 Opening ASCII mode data connection for '/dsakey.ubilling.pub'
 +  226 ASCII transfer complete
 +  599 bytes sent in 00:00 (70.39 KB/s)
 +  ftp> quit 
 +  221 Closing
 +  
 +4. Вешаем только что залитый ключ на пользователя Mikrotik
 +  [admin@MikroTik] > user ssh-keys import file=dsakey.ubilling.pub user=ubilling
 +
 +5. Убеждаемся что все прошло нормально и ключ импортнулся
 +    ssh -l ubilling  -i /etc/stargazer/dsakey.ubilling  172.17.0.5  "/system resource print"
 +
 +
 +===== Настройка Ubilling =====
 +1. Утаскиваем обработчик для Mikrotik-direct куда нужно:
 +  # cp mk_push /etc/stargazer/
 +  # chmod a+x /etc/stargazer/mk_push
 +  
 +2. Уносим определялку сервера доступа куда бы вы думали?:
 +  # cp presets/stargazer/GetNasIP /etc/stargazer/
 +  # chmod a+x /etc/stargazer/GetNasIP
 +  # cp presets/stargazer/GetNasType /etc/stargazer/
 +  # chmod a+x /etc/stargazer/GetNasType
 +правильно, тоже куда нужно.\\
 +
 +3. Засовываем следующие заготовки в OnConnect и OnDisconnect 
 +
 +**/etc/stargazer/OnConnect**
 +<code>
 +# detect correct NAS ip by user login
 +NASIP=`/etc/stargazer/GetNasIP ${LOGIN}`
 +
 +#arp fix
 +/etc/stargazer/mk_push ${NASIP} "/ip arp add address=${IP} disabled=no interface=[интерфейс_абонентской_сети] mac-address=${MAC} comment=${LOGIN}"
 +#second way
 +#/etc/stargazer/mk_push ${NASIP} "/ip arp set static ${IP} ${MAC} comment=${LOGIN}"
 +
 +#allow 
 +/etc/stargazer/mk_push ${NASIP} "/ip firewall address-list add address=${IP} disabled=no list=ALLOW comment=${LOGIN}"
 +
 +#adding shaper queue
 +/etc/stargazer/mk_push ${NASIP} "/queue simple add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s direction=both disabled=no interface=all limit-at=${UPSPEED}k/${SPEED}k max-limit=${UPSPEED}k/${SPEED}k name=${LOGIN} parent=none priority=8 queue=default-small/default-small target-addresses=${IP} total-queue=default-small"
 +</code>
 +\\
 +**/etc/stargazer/OnDisconnect**
 +<code>
 +# detect correct NAS ip by user login
 +NASIP=`/etc/stargazer/GetNasIP ${LOGIN}`
 +
 +#arp cleanup
 +/etc/stargazer/mk_push ${NASIP} "/ip arp remove [find comment=${LOGIN}]"
 +#second way: /ip arp set static ${IP} 00:00:00:00:00:00 comment=${LOGIN}
 +
 +#deny
 +/etc/stargazer/mk_push ${NASIP} "/ip firewall address-list remove [find comment=${LOGIN}]"
 +
 +#delete shape queue
 +/etc/stargazer/mk_push ${NASIP} "/queue simple remove [find name=${LOGIN}]"
 +</code>
 +
 +===== Настройка сенсора NetFlow на Mikrotik =====
 +Если мы желаем вести учет трафика на NAS делаем следующее:\\
 +1. Убеждаемся что stargazer использует cap_nf для подсчета трафика (он является умолчальным при установке Ubilling)\\
 +2. Настраиваем сенсор netflow:
 +  [admin@MikroTik] > ip traffic-flow set enabled=yes
 +  [admin@MikroTik] > ip traffic-flow target add address=[айпишка_сервера_ubilling]:42111 version=5
 +  [admin@MikroTik] > ip traffic-flow set interfaces=[интерфейс_на_котором_считать] active-flow-timeout=20m inactive-flow-timeout=15s cache-entries=4k enabled=yes
 +
 +===== Обеспечение привязки IP+MAC =====
 +В норме для обеспечения резервирования IP абонента его MAC адресом используется конструкция 
 +  "/ip arp add address=[IP_абонента] disabled=no interface=[интерфейс_абонентской_сети] mac-address=[MAC_абонента] comment=[логин_абонента]"
 +
 +Для обеспечения единообразия имен интерфейсов указываемых в скриптах OnConnect/OnDisconnect рекомендуется объединить эти интерфейсы в одинаково именованый бридж следующим способом:
 +  [admin@MikroTik] > /interface bridge add 
 +  [admin@MikroTik] > /interface bridge port add interface=ether1 bridge=bridge1
 +
 +делать это следует единоразово
 +  
 +===== Контроль доступа =====
 + В норме, если не производиться дополнительного контроля доступа на сервере c FreeBSD/Linux, следует объявить запрет доступа по умолчанию для всех пользователей на Mikrotik
 +  [admin@MikroTik] >  /ip firewall filter add action=drop chain=forward disabled=no src-address-list=!ALLOW 
 +  
 +===== DHCP-Relay =====
 +Настраиваем перенаправление всех DHCP запросов на сервер с Ubilling для интерфейсов, смотрящих в сторону пользователей на Mikrotik приблизительно так как показано на рисунке ниже. Это нужно для того, чтобы гибко управлять опциями выдаваемыми DHCP пользователям со стороны сервера.\\
 +{{ :mtdhcprelay.png? |}}
 +
 +===== Управление DHCP сервером Mikrotik =====
 +Если протащить DHCP трафик до пользователей находящихся за NAS Mikrotik является затруднительным, вы можете попробовать управлять DHCP сервером на Mikrotik напрямую из OnConnect
 +
 +  /etc/stargazer/mk_push ${NASIP}  "/ip dhcp-server lease remove [find address=${IP}]"
 +  /etc/stargazer/mk_push ${NASIP}  "/ip dhcp-server lease add address=${IP} disabled=no mac-address=${MAC} server=server1"
 +
 +
 +===== Сервера доступа разных типов =====
 +Если вы желаете использовать в своей сети сервера доступа разных типов(rscriptd, Mikrotik итд) , вы можете использовать определение типа сервера доступа при помощи GetNasType для обертки разных обработчиков.\\
 +
 +Пример использования для Mikrotik Direct (доступ к Mikrotik по ssh):\\
 +
 +<code>
 +NASTYPE=`/etc/stargazer/GetNasType ${LOGIN}`
 +if [ "$NASTYPE" = "mtdirect" ]
 +then
 +# здесь обработка событий OnConnect/OnDisconnect на Mikrotik  (см. Выше)
 +fi
 +
 +</code>
 +
 +===== Редирект на страницу пользователя =====
 +
 +<code>
 +/ip firewall nat chain=srcnat action=masquerade protocol=tcp src-address-list=deny dst-port=80 
 +/ip firewall nat chain=dstnat action=dst-nat to-addresses=IP-билинга to-ports=80 protocol=tcp src-address-list=deny dst-port=80
 +</code>
 +
 +на дефолтном виртуалхосте сервера на которй происходит перенаправление пользователя из Mikrotik, должен висеть JS редирект вида:
 +<code php>
 +<script type="text/javascript">
 +<!--
 +window.location = "http://статистика_пользователя"
 +//-->
 +</script>
 +</code>