Управление через WinNT
Навигация : Оглавление / Установка, настройка и запуск комплекса / Контроль за доступом в интернет
Содержание
Введение
Программное Обеспечение комплекса (далее просто ПО) дает возможность управления доступом в Интернет клиентских компьютеров, а также сторонних потребителей трафика, например, офисных компьютеров, машин внешних, относительно клуба, клиентов (офисы, квартиры и т.п.). ПО также дает возможность учитывать входящий и исходящий трафик клиентов.
Имеется возможность настройки ПО таким образом, что доступ к определенным сетям будет всегда и бесплатно (обычно игровые сервера провайдера, внутригородская сеть), к другим четко прописанным сетям, может тарифицироваться льготно. Весь остальной трафик (весь внешний входящий) при этом тарифицируется базово.
Принцип работы
Дистрибутив ПО системы управления находится в файле 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 находятся на одной машине-сервере.
Типовая конфигурация машины, управляющей доступом в Интернет выглядит приблизительно так:
На картинке показано, что на машине установлено два сетевых адаптера. На один из них приходит трафик (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-окошке:
Обратите внимание, что выводится список интерфейсов.
Здесь в примере:
- 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
Рекомендуется в настройках работы сервиса
указать "Перезапуск службы" при возникновении сбоев, как на рисунке ниже:
Замечание 4
Если у Вас есть потребность продавать трафик разных провайдеров по разной цене, то следует ознакомиться с вот этим материалом
Настройка БД для работы с WinIPFWService
Настройка БД производиться из программы Boss.exe.
Зайдите в раздел: Настройки – Настройка работы сервера
В закладке FreeBSD уберите галочку «Включить сервис работы с FreeBSD»
Теоретически на этой закладке для экзотических конфигураций может потребоваться коррекция отстков от деления. Если не знаете зачем она нужна – лучше не трогайте эти параметры.
Далее открываем настройку Firewall: Настройки – Настройка Правил для Firewall
Пропишите команды Выключения и Включения доступа в Интернет, как на рисунках ниже:
На первой картинке правило 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