Помогите разобраться с правилами ipfw

Ответить
almos
Сообщения: 26
Зарегистрирован: Сб июн 10, 2006 6:57 am
Контактная информация:

Помогите разобраться с правилами ipfw

Сообщение almos »

Доброго всем времени суток!
Начиная с версии Абилса 0.34, перестал шейпироваться траффик(т.е. скорость не выставляется), раньше все было нормально. Я уверен, что это связано с появлением функционала ipfw table. Вот мой ipfw show.

Как видите в пайпы траффик не попадает. Помогите поправить ситуациию. Я просто без понятия что надо поправить, что не так.

Пояснения к правилам.

1. Сеть из которой получают инет юзеры 192.168.0.0/24 (xl0)

2. Биллинг сервер (обеспечивает VPN подключения ) - 192.168.0.1 (также для интерфейса прописан доп. алиас, соотвественно с ним єтот интерфейс имеет 2-й адрес 10.0.1.2),

3. Основной шлюз в инет 10.0.1.1 (rl0).
Т.е. происходит трансляция адресов из xl0->rl0.
4. 192.168.0.234, 192.168.0.235 - другие сервера DialUp и WiFi соответственно, им можно напрямую ходить в нет.

5. Юзерам выдаються адреса в диапазоне 10.0.100.0/24.

00010 0 0 check-state
00020 176 21116 allow ip from any to any via lo0
00030 0 0 deny ip from any to 127.0.0.0/8
00040 0 0 deny ip from 127.0.0.0/8 to any
00060 0 0 deny ip from any to 0.0.0.0/8 in via rl0
00070 0 0 deny ip from any to 169.254.0.0/16 in via rl0
00080 0 0 deny icmp from any to any frag
00090 0 0 deny icmp from any to 255.255.255.255 in via rl0
00100 0 0 deny icmp from any to 255.255.255.255 out via rl0
00110 0 0 deny ip from 172.16.0.0/12 to any out via rl0
00120 28965 3405555 allow gre from me to 192.168.0.0/24 via xl0
00130 27912 20696561 allow gre from 192.168.0.0/24 to me via xl0
00140 0 0 allow tcp from 192.168.0.0/24 1723 to me via xl0
00150 0 0 allow tcp from me to 192.168.0.0/24 dst-port 1723 via xl0
00160 0 0 allow tcp from 192.168.0.0/24 to me dst-port 80 via xl0
00170 0 0 skipto 190 ip from 192.168.0.234 to any out
00171 0 0 skipto 190 ip from 192.168.0.235 to any out
00180 0 0 deny ip from 192.168.0.0/24 to any via rl0
00190 27644 19579514 divert 8668 ip from any to any out xmit rl0
00200 27523 2348070 divert 8668 ip from any to 10.0.1.2
00250 108024 43717364 allow tcp from any to any established
00260 1428 82780 allow ip from 10.0.1.2 to any out xmit rl0
00270 417 77686 allow udp from any 53 to any via rl0
00300 0 0 allow tcp from any to 10.0.1.2 dst-port 21 via rl0
00310 0 0 allow tcp from any to 10.0.1.2 dst-port 49152-65535 via rl0
00320 18 1008 allow icmp from any to any icmptypes 0,8,11
00340 0 0 allow tcp from any to 10.0.1.2 dst-port 22 via rl0
00370 656 31520 allow tcp from any to any
00380 2066 220772 allow udp from any to any
00390 2 352 allow icmp from any to any
03000 0 0 pipe 3000 ip from any to any via tun0 in
03001 0 0 pipe 3001 ip from any to any via tun0 out
03002 0 0 pipe 3002 ip from any to any via tun1 in
03003 0 0 pipe 3003 ip from any to any via tun1 out
03004 0 0 pipe 3004 ip from any to any via tun2 in
03005 0 0 pipe 3005 ip from any to any via tun2 out
03006 0 0 pipe 3006 ip from any to any via tun3 in
03007 0 0 pipe 3007 ip from any to any via tun3 out
03008 0 0 pipe 3008 ip from any to any via tun4 in
03009 0 0 pipe 3009 ip from any to any via tun4 out
03010 0 0 pipe 3010 ip from any to any via tun5 in
03011 0 0 pipe 3011 ip from any to any via tun5 out
03012 0 0 pipe 3012 ip from any to any via tun6 in
03013 0 0 pipe 3013 ip from any to any via tun6 out
03016 0 0 pipe 3016 ip from any to any via tun8 in
03017 0 0 pipe 3017 ip from any to any via tun8 out
65534 0 0 deny ip from any to any
65535 0 0 deny ip from any to any


Заранее спасибо.
Последний раз редактировалось almos Чт янв 11, 2007 6:37 pm, всего редактировалось 1 раз.

almos
Сообщения: 26
Зарегистрирован: Сб июн 10, 2006 6:57 am
Контактная информация:

Сообщение almos »

Да забыл. Вот мои исходные правила

Код: Выделить всё

#!/bin/sh

FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="rl0"            # внешний интерфейс
LanIn="xl0"            # внутренний интерфейс
IpOut="10.0.1.2" # внешний IP адрес машины
IpIn="192.168.0.1"   # внутренний IP машины
NetMask="24"        
NetIn="192.168.0.0"    # Внутренняя сеть

ipfw -f flush

ipfw add 10 check-state

ipfw add 20 allow ip from any to any via lo0
ipfw add 30 deny ip from any to 127.0.0.0/8
ipfw add 40 deny ip from 127.0.0.0/8 to any
ipfw add 50 deny ip from 172.16.0.0/12 in via ${LanOut}
ipfw add 60 deny ip from any to 0.0.0.0/8 in via ${LanOut}
ipfw add 70 deny ip from any to 169.254.0.0/16 in via ${LanOut}
ipfw add 80 deny icmp from any to any frag
ipfw add 90 deny icmp from any to 255.255.255.255 in via ${LanOut}
ipfw add 100 deny icmp from any to 255.255.255.255 out via ${LanOut}
ipfw add 110 deny ip from 172.16.0.0/12 to any out via ${LanOut}

ipfw add 120 allow gre from me to 192.168.0.0/24 via xl0
ipfw add 130 allow gre from 192.168.0.0/24 to me via xl0
ipfw add 140 allow tcp from 192.168.0.0/24 1723 to me via xl0
ipfw add 150 allow tcp from me to 192.168.0.0/24 1723 via xl0
ipfw add 160 allow tcp from 192.168.0.0/24 to me 80 via xl0

#ipfw add 161 allow ip from any to me 53
#ipfw add 162 allow ip from me to any 53

#dialin server
ipfw add 170 skipto 190 ip from 192.168.0.234 to any out
#wifi server
ipfw add 171 skipto 190 ip from 192.168.0.235 to any out
#all others -> deny
ipfw add 180 deny ip from 192.168.0.0/24 to any via ${LanOut}

#divert
ipfw add 190 divert natd ip from any to any out xmit ${LanOut}
ipfw add 200 divert natd ip from any to 10.0.1.2

###################################################################

#${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
#${FwCMD} add 210 deny ip from 172.16.0.0/12 to any out via ${LanOut}
#${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
#${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# рубим автоконфигуреную частную сеть
#${FwCMD} add 220 deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубаем мультикастовые рассылки
#${FwCMD} add 230 deny ip from 224.0.0.0/4 to any out via ${LanOut}
# рубаем мультикастовые рассылки
#${FwCMD} add 240 deny ip from 240.0.0.0/4 to any out via ${LanOut}

# разрешаем все установленные соединения (если они установились - 
# значит по каким-то правилам они проходили.)
${FwCMD} add 250 allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${FwCMD} add 260 allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add 270 allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
#${FwCMD} add 280 allow udp from any to any 53 via ${LanOut}
# разрешаем ftp снаружи (оба правила - для пасивного режима)
${FwCMD} add 300 allow tcp from any to ${IpOut} 21 via ${LanOut}
#Можно изгалиться примерно так, если есть желание, но я предпочитаю руками
${FwCMD} add 310 allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос, эхо-ответ и время жизни пакета истекло
${FwCMD} add 320 allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
#${FwCMD} add 330 allow tcp from any to ${IpOut} 80 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add 340 allow tcp from any to ${IpOut} 22 via ${LanOut}
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
#${FwCMD} add 370 allow tcp from any to any via ${LanIn}
${FwCMD} add 370 allow tcp from any to any
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
#${FwCMD} add 380 allow udp from any to any via ${LanIn}
${FwCMD} add 380 allow udp from any to any
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
#${FwCMD} add 390 allow icmp from any to any via ${LanIn}
${FwCMD} add 390 allow icmp from any to any
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
${FwCMD} add 65534 deny ip from any to any

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

версия FreeBSD


ipfw pipe show

almos
Сообщения: 26
Зарегистрирован: Сб июн 10, 2006 6:57 am
Контактная информация:

Сообщение almos »

Версия 6.1-Release

Код: Выделить всё

bill-srv# uname -a
FreeBSD localhost 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sat Oct 14 20:38:03 UTC 2006     root@:/usr/src/sys/i386/compile/XGENERIC  i386

almos
Сообщения: 26
Зарегистрирован: Сб июн 10, 2006 6:57 am
Контактная информация:

Сообщение almos »

Код: Выделить всё

bill-srv# ipfw pipe show
03015:  32.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03014:  32.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp     10.0.100.21/0          224.0.0.22/0        2       80  0    0   0
03013:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03012:  64.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp    10.0.100.157/0          224.0.0.22/0        1       40  0    0   0
03026:  64.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp    10.0.100.169/0          224.0.0.22/0        1       40  0    0   0
03011:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03027:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03010:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03024:  32.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp     10.0.100.78/0          224.0.0.22/0        2       80  0    0   0
03009:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03025:  32.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03008:  64.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp    10.0.100.168/0          224.0.0.22/0        1       40  0    0   0
03023:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03000:  32.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp     10.0.100.43/0          224.0.0.22/0        1       40  0    0   0
03022:  64.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp    10.0.100.151/0          224.0.0.22/0        1       40  0    0   0
03001:  32.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03021:  90.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03002:  90.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp    10.0.100.124/0          224.0.0.22/0        1       40  0    0   0
03020:  90.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03003:  90.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03019:  90.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03004:  64.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp     10.0.100.92/0          224.0.0.22/0        2       80  0    0   0
03018:  90.000 Kbit/s    0 ms  10 KB 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 igmp     10.0.100.56/0          224.0.0.22/0        1       40  0    0   0
03005:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03017:  48.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03006:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03016:  48.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail
03007:  64.000 Kbit/s    0 ms  10 KB 0 queues (1 buckets) droptail

almos
Сообщения: 26
Зарегистрирован: Сб июн 10, 2006 6:57 am
Контактная информация:

Сообщение almos »

Всем спаисбо :)
Вроде разобрался. Необходимо divert правила ставить после pipe'ов.

Ответить