Микротик
==Включение/выключение доступа в интернет
На Микротик включаем 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 находится в одной логической сети с абонентами.
На микротике выполним команды:
add action=mark-connection chain=input dst-address=10.1.0.1 in-interface=ether1 new-connection-mark=cap passthrough=no add action=mark-routing chain=output connection-mark=cap new-routing-mark=cap passthrough=no 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 add action=masquerade chain=srcnat out-interface=ether2 src-address=10.1.0.0/16 src-address-list=goodboys /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 udp from any 53 to any ${f} add 1010 allow tcp from any to any setup keep-state ${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