Микротик: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 20: Рядок 20:
== DHCP ==
== DHCP ==
Настройка описана '''[[mirkotik dhcp|здесь]]'''
Настройка описана '''[[mirkotik dhcp|здесь]]'''
=Включение/выключение доступа в интернет=
На микротик включаем NAT и разрешаем натить только те ip, которые будут в списке goodboys
<pre>
/ip service enable api
/ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=ether2 src-address=10.0.0.0/16 src-address-list=goodboys
</pre>
Здесь:
* ether2 - интерфейс, который смотрит в интернет
* 10.0.0.0/16 - сеть абонентов
На сервере  NoDeny:
<source lang="bash">
cd /usr/local/nodeny/modules
cat mikrotik/create.cfg.mikrotik.cfg.pm >> MyNetwork/create.mikrotik1.cfg.pm
ee MyNetwork/create.mikrotik1.cfg.pm
</source>
В первой строке редактируемого файла добавим единичку в mikrotik.cfg.pm:
<pre>
#<ACTION> file=>'cfg/mikrotik1.cfg.pm',hook=>'new'
</pre>
А также изменим параметры подключения к Микротику:
<pre>
$host = '1.1.1.1';
$user = 'admin';
$pass = '';
</pre>
Установим новый конфиг:
<source lang="bash">
cd /usr/local/nodeny/
perl install.pl -x
</source>
Запустим с выводом процесса управления микротиком на консоль:
<source lang="bash">
perl noserver.pl -g=_mikrotik1.cfg.pm -v
</source>
Тестируем. Если все ок, то в автозагрузку:
<source lang="bash">
echo '/usr/bin/perl /usr/local/nodeny/noserver.pl -g=_mikrotik1.cfg.pm -d &' >> /etc/rc.local
</source>
<br>
=Заглушка=
На микротике выполним команды:
<pre>
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=!1.1.1.2 src-address=!1.1.1.2 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=1.1.1.2 to-ports=8080
</pre>
Здесь 1.1.1.2 - ip сервера с админкой NoDeny
Поскольку сервер с админкой не  предоставляет доступ в интернет абонентам, необходимо изменить фаервол на следующий:
<pre>
#!/bin/sh -
f='/sbin/ipfw'
${f} add 100 deny ip from any to not me in
${f} add 150 check-state
${f} add 200 allow ip from any to any via lo0
${f} add 300 allow icmp from any to any in
${f} add 350 allow tcp from any to any 22,80,443,8080 in
${f} add 400 allow udp from any to any 53 in
${f} add 450 allow udp from 1.1.1.1 to any 1812,1813 in
${f} add 500 deny ip from any to any in
${f} add 600 fwd 1.1.1.1 tcp from any 8080 to any
${f} add 650 allow udp from any 53 to any
${f} add 700 allow tcp from any to any setup keep-state
${f} add 750 allow udp from any to any keep-state
${f} add 800 allow ip from any to any
</pre>
Здесь 1.1.1.1 - ip микротика.
Если сервер с админкой NoDeny не выполняет функции DNS - удаляем правила 400 и 650.
Если заглушка не запущена (модуль  cap), необходимо записать в автозагрузку (/etc/rc.local) и запустить с консоли:
<source lang="bash">
/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d &
</source>
<br>

Версія за 09:14, 21 вересня 2018

Краткий обзор

Связь Микротика с NoDeny осуществляется по radius-протоколу. Вам необходимо поставить на сервер биллинга программу radius-сервер (установка описана ниже). Эта программа будет принимать запросы от Микротика, проверять пароль абонента и возвращать Микротику ip адрес этого абонента.

Микротик может предоставлять доступ в интернет по двум технологиям: посредством DHCP или PPPoE. Настройка радиус-сервера и процедур mysql отличаются у этих технологий - будте внимательны.


Далее вам необходимо определиться каким образом будет устанавливаться скорость:

  • через радиус-атрибуты (в радиус ответе, кроме ip будут присутствовать данные по скорости)
  • через модуль биллинга, который будет "заходить" на микротик и устанавливать скорость

Установка скорости через атрибуты более производительна, но теряется возможность динамичного изменения скорости - скорость может быть изменена только в момент, когда Микротик сделает запрос на radius-сервер. Это происходит с интервалом в 50 секунд для PPPoE и гораздо бОльшим интервалом в случае DHCP (пока не истечет время аренды ip). Таким образом, для PPPoE можно применить данный способ, а для DHCP мы бы не рекомендовали.

PPPoE

Настройка описана здесь

DHCP

Настройка описана здесь

Включение/выключение доступа в интернет

На микротик включаем NAT и разрешаем натить только те ip, которые будут в списке goodboys

/ip service enable api
/ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=ether2 src-address=10.0.0.0/16 src-address-list=goodboys

Здесь:

  • ether2 - интерфейс, который смотрит в интернет
  • 10.0.0.0/16 - сеть абонентов

На сервере NoDeny:

cd /usr/local/nodeny/modules
cat mikrotik/create.cfg.mikrotik.cfg.pm >> MyNetwork/create.mikrotik1.cfg.pm
ee MyNetwork/create.mikrotik1.cfg.pm

В первой строке редактируемого файла добавим единичку в mikrotik.cfg.pm:

#<ACTION> file=>'cfg/mikrotik1.cfg.pm',hook=>'new'

А также изменим параметры подключения к Микротику:

$host = '1.1.1.1';
$user = 'admin';
$pass = '';

Установим новый конфиг:

cd /usr/local/nodeny/
perl install.pl -x

Запустим с выводом процесса управления микротиком на консоль:

perl noserver.pl -g=_mikrotik1.cfg.pm -v

Тестируем. Если все ок, то в автозагрузку:

echo '/usr/bin/perl /usr/local/nodeny/noserver.pl -g=_mikrotik1.cfg.pm -d &' >> /etc/rc.local


Заглушка

На микротике выполним команды:

/ip firewall nat
add action=dst-nat chain=dstnat dst-address=!1.1.1.2 src-address=!1.1.1.2 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=1.1.1.2 to-ports=8080

Здесь 1.1.1.2 - ip сервера с админкой NoDeny

Поскольку сервер с админкой не предоставляет доступ в интернет абонентам, необходимо изменить фаервол на следующий:

#!/bin/sh -
f='/sbin/ipfw'

${f} add 100 deny ip from any to not me in
${f} add 150 check-state
${f} add 200 allow ip from any to any via lo0

${f} add 300 allow icmp from any to any in
${f} add 350 allow tcp from any to any 22,80,443,8080 in
${f} add 400 allow udp from any to any 53 in
${f} add 450 allow udp from 1.1.1.1 to any 1812,1813 in
${f} add 500 deny ip from any to any in

${f} add 600 fwd 1.1.1.1 tcp from any 8080 to any
${f} add 650 allow udp from any 53 to any
${f} add 700 allow tcp from any to any setup keep-state
${f} add 750 allow udp from any to any keep-state
${f} add 800 allow ip from any to any

Здесь 1.1.1.1 - ip микротика.

Если сервер с админкой NoDeny не выполняет функции DNS - удаляем правила 400 и 650.

Если заглушка не запущена (модуль cap), необходимо записать в автозагрузку (/etc/rc.local) и запустить с консоли:

/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d &