stix
NoDeny
Спец
Карма: 72
Offline
Сообщений: 1872
Nodeny Support Team
|
|
« : 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
|
|
« Ответ #1 : 09 Июня 2010, 15:58:18 » |
|
Конфиг мпд посмотреть
|
|
|
Записан
|
|
|
|
stix
NoDeny
Спец
Карма: 72
Offline
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 279
|
|
« Ответ #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
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 279
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #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
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #14 : 10 Июня 2010, 17:47:45 » |
|
мм а чем стандартный фаервол не устраивает из доки нодени?
|
|
|
Записан
|
|
|
|
|