понедельник, 30 октября 2017 г.

Mikrotik hotspot ограничение количества сессий в периуд.

=====Настройка mikrotik=====

Редкостный кастыль для того что бы пользователи в ТЦ не злоупотребляли бесплатным wi-fi

1) в /ip hotspot user profile вставить скрипт1 как во вложении

2) в /system script add name=rm вставить скрипт 2

3) добавить в расписание
  /system scheduler add name= run_rm start-time=02:00:00 interval=24:00:00 on-event=" /system script run rm"

4) Настроить web-proxy
  /ip proxy set enabled=yes
Сбрасываем страничку сообщающую об ошибках:
  /ip proxy reset-html
Current html pages will be lost! Reset anyway? [y/N]:
жмем «y»
  /ip proxy access add action=deny disabled=no
в /file
заменяем фйл  webproxy/error.html на тот что по ссылке, ну или напишите свой.

5) добавляем правило
  /ip firewall nat add chain=dstnat action=redirect to-ports=8080 protocol=tcp src-address-list=ban dst-port=80,443 log=no comment="redirect-to web-proxy" place-before=0 
убедится что оно выше остальных.

6) разрешаем ходить на cраничку-заглушку
  /ip hotspot walled-garden ip add action=accept server=hotspot1 dst-address=10.21.32.1 protocol=tcp

Скрипт1
  :local kuser $user;
  :local kip [/ip hotspot active get [find user=$kuser] address];
  :local kfile ($kuser.".txt");
  :log info message=("LogIN: ".$kuser.";".$kip);
  :if ([:len [/file find name=$kfile]] = 0) do={/file print file=$kuser} else={:if ([/file get $kfile contents]~"^[2-5]") do={:if ([/file get $kfile contents] = 2) do={/file set $kfile contents=3} else={:if ( [/file get $kfile contents] = 3) do={/file set $kfile contents=4} else={:if ([/file get $kfile contents] = 4) do={/file set $kfile contents=5} else={:if ([/file get $kfile contents] = 5) do={/ip firewall address-list add list="ban" address=$kip} else={:log info message=("Eroor: ".$kfile)}}}}} else={/file set $kfile contents=2}};

Скрипт2
  :foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "9"]]!="nil") do={/file remove $i}; };
  /ip firewall address-list remove [/ip firewall address-list find list="ban"];

====Общее описание====

  * При активации на сервисе hotspot, отрабатывает скрипт который создает файл название которого - логин (благо у них это телефонный номер).
  * При последующих активациях в файл вносятся цифры от 2 до 5, и когда в файле 5 то ip клиента заносится в address list - "ban".
  * В firewall есть правила для этой группы запрещающее доступ в интернет и перенаправляющая все http запросы на web-proxy, в котором заглушка, сообщающая о превышении количества сессий в сутки.

воскресенье, 18 сентября 2016 г.

pptp static route mac os

==== Поднятие static route на macbook air XOS для VPN (pptp) /etc/ppp/ip-up====

  #!/bin/sh
  ifname=$1
  remoteip=$5
 
  case "$remoteip" in
          192.168.1.3)
                  /sbin/route -n add -host 192.168.0.213 192.168.88.249 > /tmp/ppp.log #user1
                  /sbin/route -n add -host 192.168.0.106 192.168.88.250 >> /tmp/ppp.log #user2
                  /sbin/route -n add -host 192.168.0.151 192.168.88.251 >> /tmp/ppp.log #user3
                  ;;
  esac
  exit 0;

==== Удаление static route на macbook air XOS для VPN (pptp)  /etc/ppp/ip-down====

  #!/bin/sh
  ifname=$1
  remoteip=$5
 
  case "$remoteip" in
          192.168.1.3)
                  /sbin/route -n delete -host 192.168.0.213 192.168.88.249 > /tmp/ppp.log #user1
                  /sbin/route -n delete -host 192.168.0.106 192.168.88.250 >> /tmp/ppp.log #user1
                  /sbin/route -n delete -host 192.168.0.151 192.168.88.251 >> /tmp/ppp.log #user1
                  ;;
  esac
  exit 0;

DVG

===== reboot DVG via telnet =====

  #!/usr/bin/perl
  use Net::Telnet;

  $connect = new Net::Telnet(Timeout => 10,
                                  Host => '192.168.99.15');
  $connect -> waitfor('/User:/');
  $connect -> print('admin');
  sleep 1;
  $connect -> print('admin');
  sleep 2;
  $connect -> print('RESTART');
  sleep 1;
  $connect -> print('Y');
  sleep 1;
  $connect -> print('');

=== DVG CPT ===
FORWARD

BTC SVS


BTC UFA





SPA



Comands enter with handset
Action Command Description
Manual Reboot73266
Factory Reset73738Confirm - Press

=== Dial plan examples ===
  code 34767 Октябрьский
  (<9:>x.<:@gw0>|*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
  code 3473 Стерлик
  (*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)


DPH-150s

===== Rreboot DPH-150s via telnet =====

  #!/usr/bin/perl
  use Net::Telnet;
 
  $connect = new Net::Telnet(Timeout => 10,
                                  Host => '192.168.99.25');
  $connect -> waitfor('/Login:/');
  $connect -> print('admin');
  $connect -> waitfor("/Password:/");
  $connect -> print('admin');
  @answer = $connect -> cmd('reload');
  print @answer;

===== DPH-150S reset to default =====
  • Отключаете DPH-150S 
  • Включаете DPH-150S 
  • Нажимаете во время загрузки однократно # => на дисплее появится надпись **POST MODE** 
  • Набираете *#168 
  • Увидев надпись Configuration Reset, отключаете телефон DPH-150S 
  • Включаете телефон, настройки сбросятся

Mikrotik ipsec

====  Скрипт создание ipsec тоннеля на клиенте. ====

  # Этот скрипт для версии RouterOS 5.*
  # В шестой версии параметр my-id-user-fqdn="" указывать не надо.
 
  # point configurations
  :local pointip "77.77.77.77"
  :local pointnet "10.2.75.0/24"
 
  # server configurations
  :local srvip "99.99.99.99"
  :local authkey "Pa$$w0rd"
 
  /ip ipsec proposal set default auth-algorithms=md5 disabled=no enc-algorithms=3des lifetime=8h name=default pfs-group=none
  /ip ipsec peer add address=$srvip auth-method=pre-shared-key dh-group=modp768 disabled=no dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=3des exchange-mode=main generate-policy=no hash-algorithm=md5 lifebytes=0 lifetime=8h my-id-user-fqdn="" nat-traversal=no port=500 proposal-check=obey secret="$authkey" send-initial-contact=yes
  /ip ipsec policy add action=encrypt disabled=no dst-address=192.168.0.0/16 dst-port=any ipsec-protocols=esp level=require priority=0 proposal=default protocol=all sa-dst-address=$srvip sa-src-address=$pointip src-address=$pointnet src-port=any tunnel=yes
  /ip ipsec policy add action=encrypt disabled=no dst-address=10.0.0.0/8 dst-port=any ipsec-protocols=esp level=require priority=0 proposal=default protocol=all sa-dst-address=$srvip sa-src-address=$pointip src-address=$pointnet src-port=any tunnel=yes

  1 - создание профиля для политики
  2 - параметры конфигурации для установки соединения
  3 - параметры безопасности для пакета


==== Скрипт создание ipsec тоннеля на сервере. ====

  # point configurations
  :local pointip "77.77.77.77"
  :local pointnet "10.2.75.0/24"
 
  # server configurations
  :local srvip "99.99.99.99"
  :local authkey "Pa$$w0rd"
 
  /ip ipsec peer add address=$pointip port=500 auth-method=pre-shared-key secret=$authkey generate-policy=no exchange-mode=main send-initial-contact=yes nat-traversal=no my-id-user-fqdn="" proposal-check=obey hash-algorithm=md5 enc-algorithm=3des dh-group=modp768 lifetime=8h lifebytes=0 dpd-interval=2m dpd-maximum-failures=5
  /ip ipsec policy add src-address=192.168.0.0/16 src-port=any dst-address=$pointnet dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=$srvip sa-dst-address=$pointip proposal=default priority=0
  /ip ipsec policy add src-address=10.0.0.0/8 src-port=any dst-address=$pointnet dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=$srvip sa-dst-address=$pointip proposal=default priority=0
  /ip firewall address-list add list=all_stores_sub24 address=$pointnet
  /ip firewall address-list add list=all_wan_stores_ip address=$pointip
  /ip route add dst-address=$pointnet gateway=$srvip
  /ip route add dst-address=$pointip gateway=$srvip

  1 - параметры конфигурации для установки соединения
  2,3 - параметры безопасности для пакета
  4,5 - добавление исключения в файрволл
  6,7 - добавление исходящего маршрута до pointip
 
  pointip - внешний ip точки
  pointnet - внутренняя подсеть точки
  srvip - внешний ip сервера
  authkey - пароль для сесии

simple mikrotik scripts

==== clean lease of android ==== 

  :foreach i in=[/ip dhcp-server lease find host-name~"android"] do={/ip dhcp-server lease remove $i}

==== drop bad coonections (NAT SIP) ====

  :foreach i in=[/ip firewall connection find assured=no && src-address~"192.168.0.24"] do={
  /ip firewall connection remove $i
  }