Управление через WinNT

Материал из ASV2 manual
Перейти к: навигация, поиск

Навигация : Оглавление / Установка, настройка и запуск комплекса / Контроль за доступом в интернет



Введение

Программное Обеспечение комплекса (далее просто ПО) дает возможность управления доступом в Интернет клиентских компьютеров, а также сторонних потребителей трафика, например, офисных компьютеров, машин внешних, относительно клуба, клиентов (офисы, квартиры и т.п.). ПО также дает возможность учитывать входящий и исходящий трафик клиентов.

Имеется возможность настройки ПО таким образом, что доступ к определенным сетям будет всегда и бесплатно (обычно игровые сервера провайдера, внутригородская сеть), к другим четко прописанным сетям, может тарифицироваться льготно. Весь остальной трафик (весь внешний входящий) при этом тарифицируется базово.



Принцип работы

Дистрибутив ПО системы управления находится в файле WinInetControlInstaller.exe

Принцип работы заключается в том, что на машину, раздающую клиентам Интернет ставится дополнительный firewall (очень похожий на ipfw под FreeBSD по системе команд), которым управляет сервис WinIPFWService.exe

Сервис при своем запуске подключается в БД MySQL с параметрами, которые он берет из файла WinIPFWService.ini :

; параметры подключения к серверу MySQL
; требуются права для записи и чтения таблицы ip_state
; и только на чтение из таблиц firewall_profiles и server_config
[DataBase]
Server=127.0.0.1
Port=3306
Database=asta
Username=root
Password=


; системные параметры
[System]
; как часто производить съем информации о трафике в мсек
RecalcInterval=5000

; отображать ли в логах факты пересчета (полезно для отладки)
ShowRecalcEvent=0

; выполнить ли при старте сервиса автозагрузку ненулевых правил в ipfw 
; из; таблицы ip_state
ResetIpfwAtStartService=1

; как часто делать срезы в traffic_cut
; по умолчанию стоит 0, что означает не делать срезы
; не забывайте, что срезы делает сам аста-сервер и эту цифру стоит менять лишь 
; в случае, если аста-сервер не работает.
CutIntervalMinutes=0

Здесь приведены значения по умолчанию ini-файла. Они подходят для варианта, когда MySQL и WinIPFWService находятся на одной машине-сервере.

Типовая конфигурация машины, управляющей доступом в Интернет выглядит приблизительно так:

Inet-01.gif

На картинке показано, что на машине установлено два сетевых адаптера. На один из них приходит трафик (Internet). Второй же адаптер (Intranet) раздает его на клиентские машины через NAT.

Пусть адреса у клиентских машин клуба :

192.168.0.1 – 192.168.0.10 (всего 10 машин)

Рекомендуем начинать нумерацию машин клуба с 1! По опыту работы это сильно сокращает путаницу в работе клуба при «разборе полетов»

Вариантов систем, которые обеспечивают трансляцию адресов (NAT) достаточно много. Из рекомендуемых:

  • Внутренними средствами Windows 2000 Server (2003)
  • Kerio WinRoute Firewall 4.5.2 (c версиям выше этой работа wipfw некорректна и использовать их не рекомендуется!)
  • Microsoft ISA Server

Вы должны сами выбрать подходящий транслятор (NAT) и настроить раздачу интернета на клиентские машины, для начала, без нашего ПО.

Наш WinIPFWService.exe работает параллельно с перечисленными выше системами и дополнительной их настройки не требуется.

При своей работе сервис постоянно общается с БД, получая оттуда команды управления и отправляя данные о текущем трафике.



Установка

  • Запустите программу WinInetControlInstaller.exe
  • Ознакомьтесь с Лицензионным Соглашением.
  • Отвечайте положительно на все вопросы «мастера» установки.
  • Программа-установщик распакует все файлы дистрибутива в указанную Вами папку.

Папка по умолчанию: 'C:\astalaViSta\SuperViSor\WinInetController'

  • Также программа установит NT-сервис WinIPFWService.exe и пропишет ему параметр автозапуска при перезагрузке компьютера.
  • После установки сервиса программа инсталлирует система wipfw с дефолтовым файлом конфигурации работы файрвола. Процесс работы можно увидеть в появившемся dos-окошке:


Inet02.gif


Обратите внимание, что выводится список интерфейсов.

Здесь в примере:

  • lo0 – это внутренний интерфейс (127.0.0.1)
  • eth0 – внешний интерфейс (он же у нас назван как Internet)
  • eth1 – внутренний интерфейс (он у нас назван как Intranet)

Эти знания пригодятся Вам для построения более «хитрых» правил нежели чем просто учет и включение-выключение трафика.


Список интерфейсов можно посмотреть по команде ipfw enum или ipfw -L



Настройка файла конфигурации wipfw для подсчета трафика

Инициализационные правила лежат в файле: ipfw.conf

Это простой текстовый файл, каждая строчка которого описывает определенное правило для файрвола.

По умолчанию в файле следующие команды:

 -f flush

 add 1 allow ip from any to any via lo0
 add 2 allow ip from 192.168.0.0/24 to 192.168.0.0/24 via eth1

 add 10 allow udp from 192.168.0.0/24 to 255.255.255.255

 add 101 count ip from any to 192.168.0.1
 add 102 count ip from 192.168.0.1 to any

 ...

 add 1001 count ip from any to 192.168.0.10
 add 1002 count ip from 192.168.0.10 to any

 add 65535 allow ip from any to any

Первая строчка «обнуляет» firewall, удаляя все правила.

Вторая – разрешает любой внутренний трафик.

Третья – разрешает любой трафик клиентских машин в пределах интерфейса eth1

Также она блокирует подсчет трафика в пределах сети 192.168.0.0:255.255.255.0

Строчка : add 101 count ip from any to 192.168.0.1 – подсчет входящего трафика для первой машины

Следующая строчка: подсчет исходящего трафика для первой машины.

И т.д. для 10ти машин.

Последняя строчка – разрешает любой трафик

Номера правил моут быть от 1 до 65535

Может быть несколько правил на одном номере.

Для настройки учета трафика вашей сети пропишите count-пары для всех компьютеров вашей сети по аналогии.



Замечание 1

Иногда, например при работе с Kerio Winroute Firewall (и то не всегда), требуется вместо правила номер 2 прописать следующее:

add 3 allow tcp from 192.168.0.0/24 to 192.168.0.100 44567 via eth0
add 4 allow udp from any to 192.168.0.100 44568 via eth0
add 5 allow tcp from 192.168.0.100 44567 to 192.168.0.0/24 via eth0
add 6 allow udp from 192.168.0.100 44568 to 192.168.0.0./24 via eth0
add 7 allow icmp from 192.168.0.0/24 to 192.168.0.0./24 via eth0

Здесь в примере 192.168.0.100 – внутренний ip машины с NAT

Седьмое правило разрешает диагностические пинги от сервера до клиентских машин

Аста-сервер использует в своей работе tcp-порт 44567 и udp-порт 44568

В примере выше правила 3 4 5 6 разрешают в любом случае трафик клиентских машин с аста-сервером.



Замечание 2

Если машина с файрволом выполняет функции файл-сервера клуба, то требуется вписать дополнительно правила, аналогичные правилам ниже:

ipfw add 10 allow tcp from 192.168.0.0/24 to 192.168.0.100 135-139,389,445 via eth0
ipfw add 10 allow tcp from 192.168.0.100 135-139,389,445 to 192.168.0.0/24 via eth0 
ipfw add 10 allow udp from 192.168.0.0/24 to 192.168.0.100 135-139,389,445 via eth0
ipfw add 10 allow udp from 192.168.0.100 135-139,389,445 to 192.168.0.0/24 via eth0

Здесь в примере 192.168.0.100 – внутренний ip файл-сервера (он же файрвол)

В любом случае, чтобы правила вступили в силу, нужно либо просто перегрузить компьютер, либо запустить init.cmd

Остановка сервиса: WinIPFWService: StopService.cmd

Запуска сервиса: WinIPFWService: StartService.cmd

Начать изучение команд ipfw можно :

www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/firewalls.html

или

http://www.astalavista.ru/files/ipfw_rus.txt


В любой момент можно в консоли написать команду ipfw show для просмотра текущих работающих правил и трафика в байтах, который по ним прошел

Можно написать: ipfw show 101 102 для просмотра трафика только первой машины, например.

Команда для удаления правила из списка: ipfw delete 101 102 (удалятся 101 и 102 правила)

Команда для обнуления всех счетчиков: ipfw zero

ipfw zero 101 102 – обнулит счетчики только у правил 101 и 102 (полезно для наладки и тестирования)

Число count-записей не обязательно должно совпадать с числом машин в клубе. Советуем прописать вообще все 254 ip вашей интранет-сети. Аналогично для них в БД в таблице ip_state прописать 254 строчки для всех ip внутренней сети.

Для скорости создания правил советуем воспользоваться программой комплекта FwRulezMaker.exe, которая позволяет быстро создавать текстовые наборы правил по метапеременным.



Замечание 3

Рекомендуется в настройках работы сервиса

2007-02-09 135927.gif


указать "Перезапуск службы" при возникновении сбоев, как на рисунке ниже:


2007-02-09 140245.gif



Замечание 4

Если у Вас есть потребность продавать трафик разных провайдеров по разной цене, то следует ознакомиться с вот этим материалом



Настройка БД для работы с WinIPFWService

Настройка БД производиться из программы Boss.exe.

Зайдите в раздел: Настройки – Настройка работы сервера

В закладке FreeBSD уберите галочку «Включить сервис работы с FreeBSD»

Теоретически на этой закладке для экзотических конфигураций может потребоваться коррекция отстков от деления. Если не знаете зачем она нужна – лучше не трогайте эти параметры.


Далее открываем настройку Firewall: Настройки – Настройка Правил для Firewall

Пропишите команды Выключения и Включения доступа в Интернет, как на рисунках ниже:

Inet-03.gif

Inet-04.gif

На первой картинке правило ipfw add %N%00 deny ip from any to %IP% запретит любой входящий трафик для машины номер %N%, у которой будет ip: %IP%

%N% и  %IP% - это метапеременные, вместо которых при работе будут подставляться номер машины и её ip-адрес.



ПРИМЕР

Ниже приведён пример файла ipfw.conf для клуба из 10-ти клиентских машин.


  • IP-адреса клиентских машин от 192.168.0.1 до 192.168.0.10.
  • IP сервера с winipfw : 192.168.0.100
  • Также эта машина является файл-сервером для машин клуба
  • У машины кассира IP: 192.168.0.101
  • Дополнительно требуется, чтобы у всех машин клуба всегда был бесплатный доступ в городскую сеть с адресом 195.91.183.0/24 (диапазон ip от 195.91.183.0 до 195.91.183.255, он же 195.91.183.0 маска 255.255.255.0). Также бесплатный доступ должен быть на городской игровой сервер с ip 195.80.77.12
  • При рестарте машины с wipfw запретить доступ клиентов в Интернет, разрешить доступ к файлам сервера и разрешить доступ в Интернет сервера и машины кассира.

В таблице ip_state за соответствующими номерами прописаны адреса:

1 - 192.168.0.1
2 - 192.168.0.2
3 - 192.168.0.3
4 - 192.168.0.4
5 - 192.168.0.5
6 - 192.168.0.6
7 - 192.168.0.7
8 - 192.168.0.8
9 - 192.168.0.9
10 - 192.168.0.10
100 - 192.168.0.100
101 - 192.168.0.101


Пример файла ipfw.conf для вышеописанных параметров:

 -f flush

 add 1 allow ip from any to any via lo0


 add 3 allow tcp from 192.168.0.0/24 to 192.168.0.100 44567 via eth0
 add 4 allow tcp from 192.168.0.100 44567 to 192.168.0.0/24 via eth0
 add 5 allow udp from 192.168.0.0/24 to 255.255.255.255/24 44568 via eth0
 add 6 allow udp from 192.168.0.100 44568 to 192.168.0.0/24 via eth0
 add 7 allow icmp from 192.168.0.0/24 to 192.168.0.0/24 via eth0

 add 9 allow udp from 192.168.0.0/24 to 255.255.255.255

 add 10 allow tcp from 192.168.0.0/24 to 192.168.0.100 135-139,389,445 via eth0
 add 10 allow tcp from 192.168.0.100 135-139,389,445 to 192.168.0.0/24 via eth0
 add 10 allow udp from 192.168.0.0/24 to 192.168.0.100 135-139,389,445 via eth0
 add 10 allow udp from 192.168.0.100 135-139,389,445 to 192.168.0.0/24 via eth0


 add 20 allow ip from 192.168.0.0/24 to 195.91.183.0/24
 add 20 allow ip from 195.91.183.0/24 to 192.168.0.0/24
 add 20 allow ip from 192.168.0.0/24 to 195.80.77.12
 add 20 allow ip from 195.80.77.12 to 192.168.0.0/24


 add 100 deny ip from any to 192.168.0.1
 add 100 deny ip from 192.168.0.1 to any
 add 101 count ip from any to 192.168.0.1
 add 102 count ip from 192.168.0.1 to any


 add 200 deny ip from any to 192.168.0.2
 add 200 deny ip from 192.168.0.2 to any
 add 202 count ip from any to 192.168.0.2
 add 202 count ip from 192.168.0.2 to any


 add 300 deny ip from any to 192.168.0.3
 add 300 deny ip from 192.168.0.3 to any
 add 301 count ip from any to 192.168.0.3
 add 302 count ip from 192.168.0.3 to any


 add 400 deny ip from any to 192.168.0.4
 add 400 deny ip from 192.168.0.4 to any
 add 401 count ip from any to 192.168.0.4
 add 402 count ip from 192.168.0.4 to any


 add 500 deny ip from any to 192.168.0.5
 add 500 deny ip from 192.168.0.5 to any
 add 501 count ip from any to 192.168.0.5
 add 502 count ip from 192.168.0.5 to any


 add 600 deny ip from any to 192.168.0.6
 add 600 deny ip from 192.168.0.6 to any
 add 601 count ip from any to 192.168.0.6
 add 602 count ip from 192.168.0.6 to any


 add 700 deny ip from any to 192.168.0.7
 add 700 deny ip from 192.168.0.7 to any
 add 701 count ip from any to 192.168.0.7
 add 702 count ip from 192.168.0.7 to any


 add 800 deny ip from any to 192.168.0.8
 add 800 deny ip from 192.168.0.8 to any
 add 801 count ip from any to 192.168.0.8
 add 802 count ip from 192.168.0.8 to any


 add 900 deny ip from any to 192.168.0.9
 add 900 deny ip from 192.168.0.9 to any
 add 901 count ip from any to 192.168.0.9
 add 902 count ip from 192.168.0.9 to any


 add 1000 deny ip from any to 192.168.0.10
 add 1000 deny ip from 192.168.0.10 to any
 add 1001 count ip from any to 192.168.0.10
 add 1002 count ip from 192.168.0.10 to any


 add 10001 count ip from any to 192.168.0.100
 add 10002 count ip from 192.168.0.100 to any
 add 10101 count ip from any to 192.168.0.101
 add 10102 count ip from 192.168.0.101 to any

 
 add 65535 allow ip from any to any