Биллинговая система Nodeny
22 Ноября 2024, 22:31:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: ipfw nat  (Прочитано 4722 раз)
VenoM
Новичок
*

Карма: 0
Offline Offline

Сообщений: 2


Просмотр профиля Email
« : 18 Ноября 2012, 13:14:55 »

Здравствуйте.

В процессе использования nodeny появилась необходимость натить не pf-ом, а ipfw.
Я немного подкорректировал конфиг ipfw для того, чтобы он натил. И он прекрасно с этим справляется, т.е. маскирование и демаскирование производится правильно, однако после запуска на сервере заметил такую вещь: у пользователей перестали работать ограничения по тарифам, т.е. если тариф 2мбит/с в реальности он около 20, если не больше. В связи с этим вопрос: где я ошибся правилах?

P.S. Вопрос причины ухода от pf-a не обсуждается. Интересует, только верный конфиг ipfw для ната.


Код:
#!/bin/sh -
f='/sbin/ipfw'

ifOut='em0'

${f} -f flush
${f} add 10 pass  gre from any to any

${f} add 20 allow udp from any to me 161,514
${f} add 21 allow udp from me 161,514 to any

${f} add 40 allow tcp from any to me 1723

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} nat 1 config log if ${ifOut} same_ports

${f} add 60 deny all from 192.168.0.0/16 to any in via ${ifOut}
${f} add 61 deny all from 172.16.0.0/12 to any in via ${ifOut}
${f} add 63 deny all from 10.0.0.0/8 to any in via ${ifOut}
${f} add 64 deny all from 127.0.0.1/8 to any in via ${ifOut}
${f} add 66 deny all from 0.0.0.0/8 to any in via ${ifOut}
${f} add 67 deny all from 169.254.0.0/16 to any in via ${ifOut}
${f} add 68 deny all from 192.0.2.0/24 to any in via ${ifOut}
${f} add 69 deny all from 204.152.64.0/23 to any in via ${ifOut}
${f} add 70 deny all from 224.0.0./3 to any in via ${ifOut}


${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut}

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv ${ifOut}
${f} add 420 divert 1 ip from any to any
${f} add 450 divert 2 ip from any to any
${f} add 490 allow ip from any to any

${f} add 500 skipto 32490 ip from any to any in
${f} add 510 divert 1 ip from any to any
${f} add 530 nat 1 ip from any to any out xmit ${ifOut}
${f} add 540 allow ip from any to any


${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 skipto 32490 ip from any to any in recv ${ifOut}
${f} add 2020 allow icmp from any to any
${f} add 2030 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut}
${f} add 2060 allow udp from any to any 53,7723
${f} add 2100 deny ip from any to any

${f} add 32480 deny ip from any to any

${f} add 32490 nat 1 ip from any to any in recv ${ifOut}

Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 18 Ноября 2012, 13:31:15 »

sysctl net.inet.ip.fw.one_pass ?
Записан
VenoM
Новичок
*

Карма: 0
Offline Offline

Сообщений: 2


Просмотр профиля Email
« Ответ #2 : 18 Ноября 2012, 13:41:05 »

Код:
# $FreeBSD: src/etc/sysctl.conf,v 1.8.34.1.6.1 2010/12/21 17:09:25 kensmith Exp $
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#

# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0
net.graph.recvspace=65535
net.graph.maxdgram=65535
net.inet.flowtable.enable=0
net.inet.ip.fw.one_pass=1
net.inet.ip.forwarding=1

Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!