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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3 4
  Печать  
Автор Тема: ipfw nodeny mpd pf  (Прочитано 13929 раз)
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« : 09 Июня 2010, 15:54:59 »

т.к. я линуксоид переходящий на фрю, то еще не разобрался во всех нюансах Улыбающийся

подскажите плиз где накосячил с натом и файрволом.
используется pppoe и vpn доступ
mpd собрал и настроил без проблем
ядро пересобрал с поддержкой pf, dummynet, firewall итд

сеть выдается 192.168.0.0/16 через радиус

Код:
ext_if="fxp0"
set limit states 128000
set optimization aggressive
nat pass on fxp0 from 192.168.0.0/16 to any -> fxp0
pass in all
pass out all
аля маскарадинг для всех сети 192.168

net.inet.ip.fw.enable: 1
net.inet.ip.fw.one_pass: 1

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

ifOut='fxp0'

${f} -f flush
${f} add 11 allow TCP from any to me 1723 in
${f} add 12 allow TCP from me 1723 to any out
${f} add 13 allow GRE from any to any

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

${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 32500 ip from any to any in
${f} add 505 divert 1 ip from any to any
${f} add 510 divert 1 ip from any to any
${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 allow icmp from any to any
${f} add 2020 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 32490 deny ip from any to any


ipfw list

Код:
00011 allow tcp from any to me dst-port 1723 in
00012 allow tcp from me 1723 to any out
00013 allow gre from any to any
00050 allow tcp from any to me dst-port 22
00051 allow tcp from me 22 to any
00110 allow ip from any to any via lo0
00120 skipto 1000 ip from me to any
00130 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00160 skipto 2000 ip from any to me
00200 skipto 500 ip from any to any via fxp0
00300 skipto 4500 ip from any to any in
00400 skipto 450 ip from any to any recv fxp0
00420 divert 1 ip from any to any
00450 divert 2 ip from any to any
00490 allow ip from any to any
00500 skipto 32500 ip from any to any in
00505 divert 1 ip from any to any
00510 divert 1 ip from any to any
00540 allow ip from any to any
01000 allow udp from any 53,7723 to any
01010 allow tcp from any to any setup keep-state
01020 allow udp from any to any keep-state
01100 allow ip from any to any
02000 check-state
02010 allow icmp from any to any
02020 allow tcp from any to any dst-port 80,443
02050 deny ip from any to any via fxp0
02060 allow udp from any to any dst-port 53,7723
02100 deny ip from any to any
32490 deny ip from any to any
65535 deny ip from any to any

туннельный ip сервера вижу без проблем с любого хоста
между собой 2 pptp клиента не видят друг друга
ну и плюс на шлюз по умолчанию не ходят
« Последнее редактирование: 09 Июня 2010, 15:56:33 от stimels » Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #1 : 09 Июня 2010, 15:58:18 »

Конфиг мпд посмотреть
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #2 : 09 Июня 2010, 16:02:17 »

с fxp0 вылетают пакеты.
на fxp1 на каталисте настроен транк порт и на фре поднял вланы
туннельные ip взяты с дефолта, посути они не играют роли, только для построения точка-точка.
радиус свои настройки отдает.

если делаю /etc/rc.d/ipfw stop
то трафик натится и бегает все ок, но тогда не смогу на сателите шейперить и блочить юзеров

Код:
startup:
        set user admin password
        set console self 127.0.0.1 5005
        set console open
        set web self 0.0.0.0 5006
        set web open
default:
        load pptp_server
        load pppoe_server
pptp_server:
        set ippool add pool1 192.168.1.50 192.168.1.99
        create bundle template B
#<----->set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set ipcp yes vjcomp
        set ipcp ranges 172.16.100.1/32 ippool pool1
        set ipcp dns 1.1.1.1
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e128
        set mppc yes stateless
        create link template L pptp
        set link action bundle B
        set link enable multilink
        set link yes acfcomp protocomp
        set link no pap chap
        set link enable chap
        load radius
        set link keep-alive 10 60
        set link mtu 1460
        set link enable incoming

pppoe_server:

        create bundle template C
        set ipcp ranges 1.2.3.4/32 127.0.0.2/32
        set ipcp dns 1.1.1.1
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e56
        set mppc yes e128
        set mppc yes stateless
        set ecp disable dese-bis dese-old

        create link template common pppoe
        set link enable multilink
        set link action bundle B
        set link disable chap pap eap
        set link enable pap
        load radius
        set pppoe service "*"

        create link template fxp1 common
        set link max-children 1000
        set pppoe iface vlan100
        set link enable incoming


radius:
        set radius server 192.168.100.2 hardpass5 1812 1813
        set radius retries 3
        set radius timeout 3
        set radius me 192.168.100.2
        set auth acct-update 60
        set auth enable radius-auth
        set auth enable radius-acct
        set radius enable message-authentic
« Последнее редактирование: 09 Июня 2010, 16:03:57 от stimels » Записан
smallcms
NoDeny
Старожил
*

Карма: 64
Offline Offline

Сообщений: 279



Просмотр профиля WWW
« Ответ #3 : 09 Июня 2010, 18:15:15 »

т.к. я линуксоид переходящий на фрю, то еще не разобрался во всех нюансах Улыбающийся
ничего, лайнукс головного мозга у большинства здесь был и пока увы, остаётся. Смеющийся

Код:
${f} add 11 allow TCP from any to me 1723 in
${f} add 12 allow TCP from me 1723 to any out
${f} add 13 allow GRE from any to any

У Вас простая проблема - gre трафик не бегает как положено. Я могу подсказать Вам как я это реализовал:
Код:
${f} add 492 allow gre from any to any
${f} add 542 allow gre from any to any
${f} add 2074 allow tcp from any to any 1723
${f} add 2076 allow gre from any to any
Удачи вам.
« Последнее редактирование: 09 Июня 2010, 18:17:13 от smallcms » Записан

Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #4 : 09 Июня 2010, 18:32:31 »

Для линуксоидов:

во фре нет понятия цепочек фаервола, поэтому не стоит бросаться правилами allow в самое начало фаера - это все равно что везде на файлы ставить права 777, только хуже. Вы учтите, что трафик, в данном случае протокола gre, имеет несколько направлений: от клиента к серверу, от сервера к клиенту, от клиента в мир и обратно. Тупо разрешив gre from any to any, вы откроете дырку абсолютно для всех клиентов, которые без авторизации смогут посылать и получать данные по этому протоколу. Может быть пока поверх него ничего не инкапсулировали, пока еще, но что будет потом? ip over dns есть и это сложнее.

Более того, что-то похожее на цепочки iptables как раз и сделаны в предлагаемом мною фаерволе! А именно:

- начиная с правила 1000 - цепочка OUTPUT
- 2000 - INPUT
- 4500 - FORWARD (клиенты -> мир)
- 32500 - FORWARD (мир -> клиенты)
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #5 : 09 Июня 2010, 18:41:12 »

ниче, я думаю моск адаптируется, хоть и не сразу )

Код:
${f} add 492 allow gre from any to any
${f} add 542 allow gre from any to any
${f} add 2074 allow tcp from any to any 1723
${f} add 2076 allow gre from any to any
если так, то pptp клиент не может подключиться к серверу
а если я вначале разрешу GRE туннель, то пакеты тогда не натятся получается


на первом сателите у меня проще сделано
разерешено все
запретить форвардинг с НЕ активных к НЕ активным
Записан
smallcms
NoDeny
Старожил
*

Карма: 64
Offline Offline

Сообщений: 279



Просмотр профиля WWW
« Ответ #6 : 09 Июня 2010, 19:01:28 »

если так, то pptp клиент не может подключиться к серверу
а если я вначале разрешу GRE туннель, то пакеты тогда не натятся получается
угу. есть мысль, что
set ipcp ranges 172.16.100.1/32 ippool pool1
вне ната
nat pass on fxp0 from 192.168.0.0/16 to any -> fxp0
у меня пптп адрес в пределах ната лежит...  Непонимающий
Записан

stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #7 : 09 Июня 2010, 19:03:32 »

тоже об этом подумал и добавил туннель в этот диапазон - не помогло
set ippool add pool1 192.168.1.50 192.168.1.99
set ipcp ranges 192.168.0.1/32 127.0.0.2/32

рубится фаерволом, точнее при его неправильном заворачивании
т.к. при ipfw stop пакеты натятся.

на линуксподобных системах как рыба в воде, но на фре местами тяжело мне )

есть предположение, что дело в диверте
« Последнее редактирование: 09 Июня 2010, 19:09:27 от stimels » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #8 : 10 Июня 2010, 09:16:06 »

если сделать
Код:
${f} add 60 allow all from any to any via ng0
и
${f} add 2005 allow all from any to me 1723
${f} add 2007 allow gre from any to me
то работает, значит 100% дело в правилах ipfw
но не попадает в pipe

Если я сделаю в ACCEPT TO ALL в ядре и запрещу форвардинг от тех, кто не в table активных абонентов, логически верно ведь будет?

типо:
ipfw add deny fwd from from not "table(1)" to not "table(1)"
« Последнее редактирование: 10 Июня 2010, 09:25:46 от stimels » Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #9 : 10 Июня 2010, 10:23:05 »

если сделать
Код:
${f} add 60 allow all from any to any via ng0
и
${f} add 2005 allow all from any to me 1723
${f} add 2007 allow gre from any to me
то работает, значит 100% дело в правилах ipfw
но не попадает в pipe

Если я сделаю в ACCEPT TO ALL в ядре и запрещу форвардинг от тех, кто не в table активных абонентов, логически верно ведь будет?

типо:
ipfw add deny fwd from from not "table(1)" to not "table(1)"
нет
в ipfw fwd - это не равно цепочке forward в iptables
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #10 : 10 Июня 2010, 10:46:13 »

а если я сделаю

ipfw add deny from from not "table(1)" to not "table(1)"
то отвалюсь я, т.к. я не в таблице 1

логически тогда верно сделать

Код:
${f} -f flush
${f} add 50 allow all from any to me
${f} add 51 allow all from me to any

${f} add 130 allow all from "table(0)" to any
${f} add 140 allow all from any to "table(0)"

${f} add 150 deny all from not "table(0)" to not "table(0)"

так вроде работает нормально, только без шейперов пока что
« Последнее редактирование: 10 Июня 2010, 10:55:53 от stimels » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #11 : 10 Июня 2010, 14:15:47 »

так работает с пипами и доступом

вопрос, логически верно это, с логикой ipfw?
доки читаю...
единственное что не нравится сейчас, это bandwidth тест при 512 кбит тарифе показывает в 495-500 кбит.
при 4мбит - 3.7мбит
и вырастает задержка.

в htb при p/b fifo или pcq/sfq/red знаю как выставлять буферы, здесь еще не дочитал.

Код:
f='/sbin/ipfw'

ifOut='fxp0'

${f} -f flush
#${f} -f pipe flush

${f} add 30 pipe tablearg ip from "table(10)" to any
${f} add 40 pipe tablearg ip from any to "table(10)"

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

${f} add 70 allow icmp from any to me
${f} add 80 allow icmp from me to any

${f} add 90 allow gre from me to any
${f} add 100 allow gre from any to me
${f} add 110 allow all from any to me 1723
${f} add 120 allow all from me 1723 to any

${f} add 125 allow all from any to me
${f} add 126 allow all from me to any

${f} add 130 allow all from "table(0)" to any
${f} add 140 allow all from any to "table(0)"
${f} add 150 allow all from "table(0)" to "table(0)"

${f} add 1000 deny all from not "table(0)" to not "table(0)"

бутнул тазик и трафик упал в 2 раза.
видиомо трафик бегает 2 раза по правилам....
« Последнее редактирование: 10 Июня 2010, 14:20:31 от stimels » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #12 : 10 Июня 2010, 14:48:31 »

Код:
${f} add 30 pipe tablearg ip from "table(10)" to any out
${f} add 40 pipe tablearg ip from any to "table(10)" in
добавил in/out и вроде встало так как надо...

если все будет ок, то можно почистить в конце топик и выделить в мануал, как сделать файрвол и шейпер при accept all
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #13 : 10 Июня 2010, 15:42:30 »

Код:
${f} add 30 pipe tablearg ip from "table(10)" to any out
${f} add 40 pipe tablearg ip from any to "table(10)" in
добавил in/out и вроде встало так как надо...

если все будет ок, то можно почистить в конце топик и выделить в мануал, как сделать файрвол и шейпер при accept all
нифига не правильно работают

залипла трассировка и пинги перестали ходить.

удалил через ipfw delete правила Pipe и трассировка дошла

Код:
 5    17 ms    20 ms    19 ms  yandex-gw.ix.net.ua [195.35.65.88]
 6    44 ms    41 ms    49 ms  leonov-vlan843.yandex.net [213.180.208.142]
 7    53 ms    41 ms    39 ms  grechko-vlan120.yandex.net [87.250.233.125]
 8    99 ms    52 ms    44 ms  toyota-vlan4.yandex.net [213.180.210.181]
 9    41 ms    51 ms    44 ms  l3-iva2-eto2.yandex.net [213.180.213.19]
10     *        *        *     Превышен интервал ожидания для запроса.
11     *        *        *     Превышен интервал ожидания для запроса.
12     *        *        *     Превышен интервал ожидания для запроса.
13     *        *        *     Превышен интервал ожидания для запроса.
14     *        *        *     Превышен интервал ожидания для запроса.
15     *        *        *     Превышен интервал ожидания для запроса.
16     *        *        *     Превышен интервал ожидания для запроса.
17     *       47 ms    41 ms  www.yandex.ru [213.180.204.3]
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #14 : 10 Июня 2010, 17:47:45 »

мм а чем стандартный фаервол не устраивает из доки нодени?
Записан
Страниц: [1] 2 3 4
  Печать  
 
Перейти в:  

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