Категории трафика

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

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



Введение

При работе с ipfw (ipfw2, wipfw) имеется возможность продавать по разной цене трафик с различными сетями

Для этого нужно особым способом настроить правила ipfw, также особым образом определить параметры работы аста-сервера, и настроить профайлы файрвола.



Пример правил

Пример правил для клуба на 10 машин приведён ниже. В нём показан один из вариантов работы с двумя категориями сетей.

# ===============================================================
# Пример правил для клуба из десяти машин, сервера и машины кассира
#
# Задачи: 
#    1. доступ к ip (сетям): 212.220.123.11, 212.33.232.148, 195.222.137.34, 10.0.1.0/24
#	   с клиентских машин должен быть всегда, независимо от тарифа
#	   входящий трафик с этими сетями считаться не должен
#	   
#	2. доступ к ip (сетям): 212.123.123.123, 10.0.2.0/24
#	   с клиентских машин должен быть только при включённом интернете
#	   входящий трафик с этими сетями считаться не должен
#	   
#	3. доступ к ip (сетям): 212.11.11.11, 10.0.11.0/24
#	   с клиентских машин должен быть только при включённом интернете категории 1
#	   входящий трафик с ними считается как трафик категории 1
#
#	4. доступ к ip (сетям): 212.22.22.22, 10.0.12.0/24
#	   с клиентских машин должен быть только при включённом интернете категории 2
#	   входящий трафик с ними считается как трафик категории 2
# ===============================================================

# ================== АДРЕСА : ==================
# сеть клуба: 192.168.0.0/24
# клиентские машины: 192.168.0.1 .. 192.168.0.10
# сервер : 192.168.0.100
# кассир : 192.168.0.101
# ==============================================

# удалить все правила
-f flush

# Localhost rules
add 1 allow all from any to any via lo*

# разрешить локальный трафик клиентов с этой машиной
add 2 allow ip from 192.168.0.0/24 to 192.168.0.0/24 via eth0

# разрешить всегда трафик с некторыми сетями
add 3 allow ip from 212.220.123.11 to 192.168.0.0/24
add 3 allow ip from 212.33.232.148 to 192.168.0.0/24
add 3 allow ip from 195.222.137.34 to 192.168.0.0/24
add 3 allow ip from 10.0.1.0/24 to 192.168.0.0/24

# Prevent any traffic to 127.0.0.1, common in localhost spoofing
# add 11 deny log all from any to 127.0.0.0/8 in
# add 11 deny log all from 127.0.0.0/8 to any in

#Testing rules, to find ports used by services if we aren't sure. 
#These rules allow ALL traffic to pass through the firewall, 
#disabling any subsequent rules
#add 14 allow log logamount 500 tcp from any to any
#add 15 allow log logamount 500 udp from any to any

#add check-state
#add pass all from me to any out keep-state
#add count log ip from any to any

# -------------------- блок для ip 192.168.0.1 --------------------

# запрёщен любой входящий трафик по умолчанию
add 100 deny ip from any to 192.168.0.1

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 101 skipto 200 ip from 212.123.123.123 to 192.168.0.1
add 101 skipto 200 ip from 10.0.2.0/24 to 192.168.0.1

# выделяем сети категории 1
add 102 skipto 110 ip from 212.11.11.11 to 192.168.0.1
add 102 skipto 110 ip from 10.0.11.0/24 to 192.168.0.1

# выделяем сети категории 2
add 103 skipto 112 ip from 212.22.22.22 to 192.168.0.1
add 103 skipto 112 ip from 10.0.12.0/24 to 192.168.0.1

# подсчёт всего остального трафика
add 104 count ip from any to 192.168.0.1
add 105 count ip from 192.168.0.1 to any

# переход на блок другого ip
add 106 skipto 200 ip from any to 192.168.0.1

# по умолчанию трафик первой категории запрещён
add 110 deny ip from any to 192.168.0.1

# разрешение и подсчёт трафика первой категории
add 111 allow ip from any to 192.168.0.1

# по умолчанию трафик второй категории запрещён
add 112 deny ip from any to 192.168.0.1

# разрешение и подсчёт трафика второй категории
add 113 allow ip from any to 192.168.0.1

# -------------------- блок для ip 192.168.0.2 --------------------

# запрёщен любой входящий трафик по умолчанию
add 200 deny ip from any to 192.168.0.2

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 201 skipto 300 ip from 212.123.123.123 to 192.168.0.2
add 201 skipto 300 ip from 10.0.2.0/24 to 192.168.0.2

# выделяем сети категории 1
add 202 skipto 210 ip from 212.11.11.11 to 192.168.0.2
add 202 skipto 210 ip from 10.0.11.0/24 to 192.168.0.2

# выделяем сети категории 2
add 203 skipto 212 ip from 212.22.22.22 to 192.168.0.2
add 203 skipto 212 ip from 10.0.12.0/24 to 192.168.0.2

# подсчёт всего остального трафика
add 204 count ip from any to 192.168.0.2
add 205 count ip from 192.168.0.2 to any

# переход на блок другого ip
add 206 skipto 300 ip from any to 192.168.0.2

# по умолчанию трафик первой категории запрещён
add 210 deny ip from any to 192.168.0.2

# разрешение и подсчёт трафика первой категории
add 211 allow ip from any to 192.168.0.2

# по умолчанию трафик второй категории запрещён
add 212 deny ip from any to 192.168.0.2

# разрешение и подсчёт трафика второй категории
add 213 allow ip from any to 192.168.0.2

# -------------------- блок для ip 192.168.0.3 --------------------

# запрёщен любой входящий трафик по умолчанию
add 300 deny ip from any to 192.168.0.3

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 301 skipto 400 ip from 212.123.123.123 to 192.168.0.3
add 301 skipto 400 ip from 10.0.2.0/24 to 192.168.0.3

# выделяем сети категории 1
add 302 skipto 310 ip from 212.11.11.11 to 192.168.0.3
add 302 skipto 310 ip from 10.0.11.0/24 to 192.168.0.3

# выделяем сети категории 2
add 303 skipto 312 ip from 212.22.22.22 to 192.168.0.3
add 303 skipto 312 ip from 10.0.12.0/24 to 192.168.0.3

# подсчёт всего остального трафика
add 304 count ip from any to 192.168.0.3
add 305 count ip from 192.168.0.3 to any

# переход на блок другого ip
add 306 skipto 400 ip from any to 192.168.0.3

# по умолчанию трафик первой категории запрещён
add 310 deny ip from any to 192.168.0.3

# разрешение и подсчёт трафика первой категории
add 311 allow ip from any to 192.168.0.3

# по умолчанию трафик второй категории запрещён
add 312 deny ip from any to 192.168.0.3

# разрешение и подсчёт трафика второй категории
add 313 allow ip from any to 192.168.0.3

# -------------------- блок для ip 192.168.0.4 --------------------

# запрёщен любой входящий трафик по умолчанию
add 400 deny ip from any to 192.168.0.4

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 401 skipto 500 ip from 212.123.123.123 to 192.168.0.4
add 401 skipto 500 ip from 10.0.2.0/24 to 192.168.0.4

# выделяем сети категории 1
add 402 skipto 410 ip from 212.11.11.11 to 192.168.0.4
add 402 skipto 410 ip from 10.0.11.0/24 to 192.168.0.4

# выделяем сети категории 2
add 403 skipto 412 ip from 212.22.22.22 to 192.168.0.4
add 403 skipto 412 ip from 10.0.12.0/24 to 192.168.0.4

# подсчёт всего остального трафика
add 404 count ip from any to 192.168.0.4
add 405 count ip from 192.168.0.4 to any

# переход на блок другого ip
add 406 skipto 500 ip from any to 192.168.0.4

# по умолчанию трафик первой категории запрещён
add 410 deny ip from any to 192.168.0.4

# разрешение и подсчёт трафика первой категории
add 411 allow ip from any to 192.168.0.4

# по умолчанию трафик второй категории запрещён
add 412 deny ip from any to 192.168.0.4

# разрешение и подсчёт трафика второй категории
add 413 allow ip from any to 192.168.0.4

# -------------------- блок для ip 192.168.0.5 --------------------

# запрёщен любой входящий трафик по умолчанию
add 500 deny ip from any to 192.168.0.5

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 501 skipto 600 ip from 212.123.123.123 to 192.168.0.5
add 501 skipto 600 ip from 10.0.2.0/24 to 192.168.0.5

# выделяем сети категории 1
add 502 skipto 510 ip from 212.11.11.11 to 192.168.0.5
add 502 skipto 510 ip from 10.0.11.0/24 to 192.168.0.5

# выделяем сети категории 2
add 503 skipto 512 ip from 212.22.22.22 to 192.168.0.5
add 503 skipto 512 ip from 10.0.12.0/24 to 192.168.0.5

# подсчёт всего остального трафика
add 504 count ip from any to 192.168.0.5
add 505 count ip from 192.168.0.5 to any

# переход на блок другого ip
add 506 skipto 600 ip from any to 192.168.0.5

# по умолчанию трафик первой категории запрещён
add 510 deny ip from any to 192.168.0.5

# разрешение и подсчёт трафика первой категории
add 511 allow ip from any to 192.168.0.5

# по умолчанию трафик второй категории запрещён
add 512 deny ip from any to 192.168.0.5

# разрешение и подсчёт трафика второй категории
add 513 allow ip from any to 192.168.0.5

# -------------------- блок для ip 192.168.0.6 --------------------

# запрёщен любой входящий трафик по умолчанию
add 600 deny ip from any to 192.168.0.6

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 601 skipto 700 ip from 212.123.123.123 to 192.168.0.6
add 601 skipto 700 ip from 10.0.2.0/24 to 192.168.0.6

# выделяем сети категории 1
add 602 skipto 610 ip from 212.11.11.11 to 192.168.0.6
add 602 skipto 610 ip from 10.0.11.0/24 to 192.168.0.6

# выделяем сети категории 2
add 603 skipto 612 ip from 212.22.22.22 to 192.168.0.6
add 603 skipto 612 ip from 10.0.12.0/24 to 192.168.0.6

# подсчёт всего остального трафика
add 604 count ip from any to 192.168.0.6
add 605 count ip from 192.168.0.6 to any

# переход на блок другого ip
add 606 skipto 700 ip from any to 192.168.0.6

# по умолчанию трафик первой категории запрещён
add 610 deny ip from any to 192.168.0.6

# разрешение и подсчёт трафика первой категории
add 611 allow ip from any to 192.168.0.6

# по умолчанию трафик второй категории запрещён
add 612 deny ip from any to 192.168.0.6

# разрешение и подсчёт трафика второй категории
add 613 allow ip from any to 192.168.0.6

# -------------------- блок для ip 192.168.0.7 --------------------

# запрёщен любой входящий трафик по умолчанию
add 700 deny ip from any to 192.168.0.7

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 701 skipto 800 ip from 212.123.123.123 to 192.168.0.7
add 701 skipto 800 ip from 10.0.2.0/24 to 192.168.0.7

# выделяем сети категории 1
add 702 skipto 710 ip from 212.11.11.11 to 192.168.0.7
add 702 skipto 710 ip from 10.0.11.0/24 to 192.168.0.7

# выделяем сети категории 2
add 703 skipto 712 ip from 212.22.22.22 to 192.168.0.7
add 703 skipto 712 ip from 10.0.12.0/24 to 192.168.0.7

# подсчёт всего остального трафика
add 704 count ip from any to 192.168.0.7
add 705 count ip from 192.168.0.7 to any

# переход на блок другого ip
add 706 skipto 800 ip from any to 192.168.0.7

# по умолчанию трафик первой категории запрещён
add 710 deny ip from any to 192.168.0.7

# разрешение и подсчёт трафика первой категории
add 711 allow ip from any to 192.168.0.7

# по умолчанию трафик второй категории запрещён
add 712 deny ip from any to 192.168.0.7

# разрешение и подсчёт трафика второй категории
add 713 allow ip from any to 192.168.0.7

# -------------------- блок для ip 192.168.0.8 --------------------

# запрёщен любой входящий трафик по умолчанию
add 800 deny ip from any to 192.168.0.8

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 801 skipto 900 ip from 212.123.123.123 to 192.168.0.8
add 801 skipto 900 ip from 10.0.2.0/24 to 192.168.0.8

# выделяем сети категории 1
add 802 skipto 810 ip from 212.11.11.11 to 192.168.0.8
add 802 skipto 810 ip from 10.0.11.0/24 to 192.168.0.8

# выделяем сети категории 2
add 803 skipto 812 ip from 212.22.22.22 to 192.168.0.8
add 803 skipto 812 ip from 10.0.12.0/24 to 192.168.0.8

# подсчёт всего остального трафика
add 804 count ip from any to 192.168.0.8
add 805 count ip from 192.168.0.8 to any

# переход на блок другого ip
add 806 skipto 900 ip from any to 192.168.0.8

# по умолчанию трафик первой категории запрещён
add 810 deny ip from any to 192.168.0.8

# разрешение и подсчёт трафика первой категории
add 811 allow ip from any to 192.168.0.8

# по умолчанию трафик второй категории запрещён
add 812 deny ip from any to 192.168.0.8

# разрешение и подсчёт трафика второй категории
add 813 allow ip from any to 192.168.0.8

# -------------------- блок для ip 192.168.0.9 --------------------

# запрёщен любой входящий трафик по умолчанию
add 900 deny ip from any to 192.168.0.9

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 901 skipto 1000 ip from 212.123.123.123 to 192.168.0.9
add 901 skipto 1000 ip from 10.0.2.0/24 to 192.168.0.9

# выделяем сети категории 1
add 902 skipto 910 ip from 212.11.11.11 to 192.168.0.9
add 902 skipto 910 ip from 10.0.11.0/24 to 192.168.0.9

# выделяем сети категории 2
add 903 skipto 912 ip from 212.22.22.22 to 192.168.0.9
add 903 skipto 912 ip from 10.0.12.0/24 to 192.168.0.9

# подсчёт всего остального трафика
add 904 count ip from any to 192.168.0.9
add 905 count ip from 192.168.0.9 to any

# переход на блок другого ip
add 906 skipto 1000 ip from any to 192.168.0.9

# по умолчанию трафик первой категории запрещён
add 910 deny ip from any to 192.168.0.9

# разрешение и подсчёт трафика первой категории
add 911 allow ip from any to 192.168.0.9

# по умолчанию трафик второй категории запрещён
add 912 deny ip from any to 192.168.0.9

# разрешение и подсчёт трафика второй категории
add 913 allow ip from any to 192.168.0.9

# -------------------- блок для ip 192.168.0.10 --------------------

# запрёщен любой входящий трафик по умолчанию
add 1000 deny ip from any to 192.168.0.10

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add 1001 skipto 1100 ip from 212.123.123.123 to 192.168.0.10
add 1001 skipto 1100 ip from 10.0.2.0/24 to 192.168.0.10

# выделяем сети категории 1
add 1002 skipto 1010 ip from 212.11.11.11 to 192.168.0.10
add 1002 skipto 1010 ip from 10.0.11.0/24 to 192.168.0.10

# выделяем сети категории 2
add 1003 skipto 1012 ip from 212.22.22.22 to 192.168.0.10
add 1003 skipto 1012 ip from 10.0.12.0/24 to 192.168.0.10

# подсчёт всего остального трафика
add 1004 count ip from any to 192.168.0.10
add 1005 count ip from 192.168.0.10 to any

# переход на блок другого ip
add 1006 skipto 1100 ip from any to 192.168.0.10

# по умолчанию трафик первой категории запрещён
add 1010 deny ip from any to 192.168.0.10

# разрешение и подсчёт трафика первой категории
add 1011 allow ip from any to 192.168.0.10

# по умолчанию трафик второй категории запрещён
add 1012 deny ip from any to 192.168.0.10

# разрешение и подсчёт трафика второй категории
add 1013 allow ip from any to 192.168.0.10

# =====================================================================

# считать трафик сервера
add 10004 count ip from any to 192.168.0.100
add 10005 count ip from 192.168.0.100 to any

# считать трафик кассира
add 25004 count ip from any to 192.168.0.250
add 25005 count ip from 192.168.0.250 to any

# разрешить любой другой трафик
add 65535 allow ip from any to any



Формирование правил

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

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

# -------------------- блок для ip 192.168.0.%N% --------------------

# запрещен любой входящий трафик по умолчанию
add %N%00 deny ip from any to 192.168.0.%N%

# сети,  разрешённые всегда, по которым не считается трафик, но доступные только при оплаченном интернете
add %N%01 skipto %N+1%00 ip from 212.123.123.123 to 192.168.0.%N%
add %N%01 skipto %N+1%00 ip from 10.0.2.0/24 to 192.168.0.%N%

# выделяем сети категории 1
add %N%02 skipto %N%10 ip from 212.11.11.11 to 192.168.0.%N%
add %N%02 skipto %N%10 ip from 10.0.11.0/24 to 192.168.0.%N%

# выделяем сети категории 2
add %N%03 skipto %N%12 ip from 212.22.22.22 to 192.168.0.%N%
add %N%03 skipto %N%12 ip from 10.0.12.0/24 to 192.168.0.%N%

# подсчёт всего остального трафика
add %N%04 count ip from any to 192.168.0.%N%
add %N%05 count ip from 192.168.0.%N% to any

# переход на блок другого ip
add %N%06 skipto %N+1%00 ip from any to 192.168.0.%N%

# по умолчанию трафик первой категории запрещён
add %N%10 deny ip from any to 192.168.0.%N%

# разрешение и подсчёт трафика первой категории
add %N%11 allow ip from any to 192.168.0.%N%

# по умолчанию трафик второй категории запрещён
add %N%12 deny ip from any to 192.168.0.%N%

# разрешение и подсчёт трафика второй категории
add %N%13 allow ip from any to 192.168.0.%N%

Fwmake001.gif


При работе с FreeBSD и ipfw2 есть возможность один раз задавать список правил:

goodguys="{ 10.1.2.0/24{20,35-37,18} or 10.2.3.0/28{6,3,11} }"
badguys="10.1.2.0/24{8,60}"

ipfw add 215 allow ip from ${goodguys} to any
ipfw add 216 deny ip from ${badguys} to any
ipfw add 220 allow ip from ${goodguys} to me

правила выше эквивалентны этим:

ipfw add 215 allow ip from 10.1.2.0/24 to any
ipfw add 215 allow ip from 10.1.2.20/24 to any
ipfw add 215 allow ip from 10.1.2.35/24 to any
ipfw add 215 allow ip from 10.1.2.36/24 to any
ipfw add 215 allow ip from 10.1.2.37/24 to any
ipfw add 215 allow ip from 10.1.2.18/24 to any
ipfw add 216 deny ip from 10.1.2.0/24 to any
ipfw add 216 deny ip from 10.1.2.8/24 to any
ipfw add 216 deny ip from 10.1.2.60/24 to any
ipfw add 220 allow ip from 10.1.2.0/24 to me
ipfw add 220 allow ip from 10.1.2.20/24 to me
ipfw add 220 allow ip from 10.1.2.35/24 to me
ipfw add 220 allow ip from 10.1.2.36/24 to me
ipfw add 220 allow ip from 10.1.2.37/24 to me
ipfw add 220 allow ip from 10.1.2.18/24 to me


Также список сетей можно просто прописывать через запятую:

goodguys="{ 10.1.2.0/24, 10.2.3.0/28, 192.168.0.0/16"
ipfw add 215 allow ip from ${goodguys} to any

В одном правиле должно быть до 15 сетей.



Профайлы файрвола

Выключение основного интернет-трафика:

Fw001.gif

Включение основного интернет-трафика:

Fw002.gif

Выключение трафика категории 1:

Fw003.gif

Включение трафика категории 1:

Fw004.gif

Выключение трафика категории 2:

Fw005.gif

Включение трафика категории 2:

Fw006.gif



Параметры работы сервера

Для примера выше используются следующие параметры:

Ssetup001.gif

Ssetup002.gif



Настройка тарифов

Для открытой тарификации параметры могут выглядеть примерно как на картинках ниже.

Определяется что мегабайт входящего трафика (отличного от категорий 1 и 2) стоит 1.5 руб. При активации тарифа срабатывает правило файрвола InetOn. При закрытии сессии срабатывает правило InetOFF:

Taro001.gif


Ниже определяется что мегабайт трафика категории 1 стоит 1.0р., а мегабайт трафика категории 2 стоит 0.3 рубля. Ограничение по скорости (полосе шейпера) не задаётся. Также указываются профайлы файрвола на включение и выключение трафика категории 1 и 2.

Taro002.gif



Просмотр объема трафика доп. категорий

Текущий объем трафика дополнительных категорий находится в таблице compstate. Оператор может просматривать его через свою программы (operator.exe) в основной таблице состояния клиентских компьютеров.