Микротик

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

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

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

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

Здесь:

  • ether2 - интерфейс, который смотрит в интернет
  • 10.1.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 = '10.1.0.11';
$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


Заглушка

Рассмотрим ситуацию, когда сервер с админкой NoDeny находится в одной логической сети с абонентами.

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

/ip firewall mangle
add action=mark-routing chain=prerouting dst-port=80 new-routing-mark=cap passthrough=no protocol=tcp src-address-list=!goodboys
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
/ip route
add check-gateway=arp distance=10 gateway=10.1.0.1 routing-mark=cap

Здесь:

  • 10.1.0.1 - ip сервера с админкой NoDeny
  • ether1 - интерфейс, смотрящий в сеть с абонентами и админкой NoDeny
  • ether2 - интерфейс, смотрящий в интернет

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

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

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 160 skipto 2000 ip from any to me

${f} add 300 fwd 127.0.0.1,8080 tcp from any to any dst-port 80
${f} add 320 allow ip from any to any out
${f} add 359 deny ip from any to any

${f} add 1000 allow tcp from any to any setup keep-state
${f} add 1010 allow udp from any 53 to any
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 22,80,443,5006
${f} add 2060 allow udp from any to any 53
${f} add 2100 deny ip from any to any

Если сервер с админкой NoDeny не выполняет функции DNS - удалите правила 1010 и 2060. Если на этом сервере находится mysql и никакие другие ваши сервера не обращаются к нему - в правиле 2020 удалите число 5006.