Выпустить две сети в инет через IPFW

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 14:45:42

Есть маршрутизатор на FreeBSD 7.2 Поднят Kernel NAT. Все работает как надо. Встала необходимость дать доступ пользователям второй сети в интернет.Подскажите , какие правила надо дописать?

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

firewall# cat /etc/firewall.conf
fwcmd="ipfw"
######
lanout="fxp0"
lanin="rl0"
NatIP="222.222.222.222"
ipout="22.222.222.222"
ipin="192.168.10.254"
netmask="24"
netin1="192.168.10.0"
netin2="192.168.20.0"
${fwcmd} -f flush
${fwcmd} -f pipe flush
${fwcmd} -f queue flush
${fwcmd} -f table 1 flush
${fwcmd} -f table 2 flush
${fwcmd} -f table 3 flush
${fwcmd} -f table 4 flush
#########
${fwcmd} table 6 add 192.168.20.29
#######
${fwcmd} table 3 add 192.168.10.52 
${fwcmd} table 3 add 192.168.10.21 
${fwcmd} table 3 add 192.168.10.22 
${fwcmd} table 3 add 192.168.10.26 
${fwcmd} table 3 add 192.168.10.30
${fwcmd} table 3 add 192.168.10.23
${fwcmd} table 3 add 192.168.10.45
${fwcmd} table 3 add 192.168.10.53
${fwcmd} table 3 add 192.168.10.56
${fwcmd} table 3 add 192.168.10.65
${fwcmd} table 3 add 192.168.10.48
${fwcmd} table 3 add 192.168.10.58
${fwcmd} table 3 add 192.168.10.60
${fwcmd} table 4 add 192.168.10.29
${fwcmd} table 4 add 192.168.10.35
${fwcmd} table 4 add 192.168.10.25
${fwcmd} table 4 add 192.168.10.98
${fwcmd} table 4 add 192.168.10.31 
${fwcmd} table 5 add 192.168.10.222
${fwcmd} add pipe 1 ip from any to table\(1\) out via ${lanin}
${fwcmd} pipe 1 config bw 2Mbit/s
${fwcmd} add pipe 2 ip from any to table\(2\) out via ${lanin}
${fwcmd} pipe 2 config bw 1Mbit/s
${fwcmd} add pipe 3 ip from any to table\(3\) out via ${lanin}
${fwcmd} pipe 3 config bw 2Mbit/s
${fwcmd} add pipe 4 ip from any to table\(4\) out via ${lanin}
${fwcmd} pipe 4 config bw 1Mbit/s
${fwcmd} add allow ip from any to any via lo0
${fwcmd} add deny ip from 192.168.10.255 to any
${fwcmd} add deny ip from 91.207.8.242 to any
${fwcmd} add deny log ip from any to 91.207.8.242
${fwcmd} add deny  ip from any to 192.168.10.255
${fwcmd} add deny ip from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any
${fwcmd} add deny ip from any to 10.0.0.0/8 in via ${lanout}
${fwcmd} add deny ip from 192.168.10.1 to 8.255.2.254 in via ${lanout}
${fwcmd} add deny ip from 8.255.2.254 to 192.168.10.1 in via ${lanout}
${fwcmd} add deny ip from any to 172.16.0.0/12 in via ${lanout}
${fwcmd} add deny ip from any to 0.0.0.0/8 in via ${lanout}
${fwcmd} add deny ip from any to 169.254.0.0/16 in via ${lanout}
${fwcmd} add deny ip from any to 240.0.0.0/4 in via ${lanout}
${fwcmd} add deny icmp from any to any frag
${fwcmd} add deny  icmp from any to 255.255.255.255 in via ${lanout}
${fwcmd} add deny  icmp from any to 255.255.255.255 out via ${lanout}
### NA PROXY
${fwcmd} add fwd  127.0.0.1,3128 tcp from table\(1\) to not 192.168.10.254 80
${fwcmd} add fwd  127.0.0.1,3128 tcp from table\(2\) to not 192.168.10.254 80
${fwcmd} add fwd  127.0.0.1,3128 tcp from table\(3\) to not 192.168.10.254 80
${fwcmd} add fwd  127.0.0.1,3128 tcp from table\(4\) to not 192.168.10.254 80
${fwcmd} add fwd  127.0.0.1,3128 tcp from table\(6\) to not 192.168.10.254 80
### END NA PROXY
### NAT
${fwcmd} nat 123 config ip ${NatIP} log redirect_port tcp 192.168.10.5:25 25 \
redirect_port tcp 192.168.10.58:4661 4661 \
redirect_port udp 192.168.10.58:4661 4661 \
redirect_port tcp 192.168.10.5:2112 2112 \
redirect_port tcp 192.168.10.5:49152-65535 49152-65535 \
redirect_port tcp 192.168.10.1:3389 3390
${fwcmd} add 50 nat 123 ip4 from any to any via ${NatIP}
#${fwcmd} add 60 allow ip4 from any to any
### END NAT
${fwcmd} add allow tcp from table\(3\) to 89.111.176.249 110,25 via ${lanin} keep-state
${fwcmd} add allow tcp from table\(1\) to 89.111.176.249 110,25 via ${lanin} keep-state
${fwcmd} add allow tcp from ${netin1}/${netmask} to 212.114.13.1 110,25 via ${lanin} keep-state
${fwcmd} add allow tcp from ${netin1}/${netmask} to any 443,5190,2041,2042 via ${lanin} keep-state
${fwcmd} add allow tcp from table\(5\) to 192.168.10.254 80 via ${lanin} keep-state
${fwcmd} add allow  tcp from 192.168.10.5 25,7060 to any
${fwcmd} add allow  tcp from any to 192.168.10.5  25,7060
${fwcmd} add deny ip from 10.0.0.0/8 to any out via ${lanout}
${fwcmd} add deny ip from 172.16.0.0/12 to any out via ${lanout}
${fwcmd} add deny ip from 0.0.0.0/8 to any out via ${lanout}
${fwcmd} add deny ip from 169.254.0.0/16 to any out via ${lanout}
${fwcmd} add deny ip from 224.0.0.0/4 to any out via ${lanout}
${fwcmd} add deny ip from 240.0.0.0/4 to any out via ${lanout}
###################################################################
${fwcmd} add allow tcp from any to any established
${fwcmd} add allow ip from ${ipout} to any out xmit ${lanout}
${fwcmd} add allow udp from any 53 to any via ${lanout}
${fwcmd} add allow icmp from any to any icmptypes 0,8,11
${fwcmd} add allow  tcp from 192.168.10.5 to any  via ${lanin} keep-state
${fwcmd} add deny log tcp from any 25 to any
${fwcmd} add deny log tcp from any to any 25
##############################
#${fwcmd} add allow tcp from ${netin1}/${netmask} to any 80 via ${lanin} keep-state
${fwcmd} add allow  tcp from table\(1\) to any via ${lanin} keep-state
${fwcmd} add allow tcp from 192.168.10.98 to any via ${lanin} keep-state
${fwcmd} add allow tcp from 192.168.10.58 to any via ${lanin} keep-state
#${fwcmd} add allow tcp from 192.168.10.190 to any via ${lanin} keep-state
#######################################################################
${fwcmd} add allow udp from any to any via ${lanin}
${fwcmd} add deny log  tcp from any to any

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

firewall# ifconfig -a
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:a0:c9:77:28:3d
        inet 222.222.222.222 netmask 0xfffffffc broadcast 222.222.222.223
        media: Ethernet autoselect (10baseT/UTP <full-duplex>)
        status: active
fxp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2008<VLAN_MTU,WOL_MAGIC>
        ether 00:08:c7:59:5f:3e
        inet 192.168.20.254 netmask 0xffffff00 broadcast 192.168.20.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:16:e6:4d:24:6b
        inet 192.168.10.254 netmask 0xffffff00 broadcast 192.168.10.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение MASiK » 2009-06-08 15:00:01

чёт не понял, у тя 3 сетевушки?

Если да то тебе надо VLAN'ы строить, иначе АРП орать будит что повторяются пакеты везде

А что бы выпустить их из фаэра как я смотрю писать не чего не надо

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

${fwcmd} add 50 nat 123 ip4 from any to any via ${NatIP}
У тя всё на всё натиться

Ну если тока подсеть открыть ту которую ты хочешь вывести в инет и всё
Самурай

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 15:04:24

А можно поподробнее про VLAN'ы. Впервые столкнулся с данной задачей.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение MASiK » 2009-06-08 15:08:32

DEX писал(а):А можно поподробнее про VLAN'ы. Впервые столкнулся с данной задачей.
Ну это нужно если у тебя все 2 подсети седят на 1 свитче, если не седят вроде и ВЛАНОВ не надо

Щаз у тебя что не работает?

Вот я так понял у тя 3 сетевушки, 2 подсети и выход на нет естественно, одна сеть в нете, а вторая что? пинги там что идёт что не идёт, я пока не совсем понял какая у тебя проблемма...
Самурай

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение paradox » 2009-06-08 15:11:48

забудь по вланы
правило тебе масик показал для доступа в инет
хватит

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 15:15:46

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

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 15:16:30

правило у меня прописано. Выпускается только одна сеть.

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение MASiK » 2009-06-08 15:21:23

Блин у тя такой 3-х тонный конфиг, я его щаз не раскапаю, у тебя где-то режеться сеть твоя вторая

Нафига тебе такой 3-х тонный конфиг? СМольный или ФСБ? :)

много лишнего у тя, чесно без обид покапай хендбук и погугли, голова болит пипец...

P.S.
У тя NatIP="222.222.222.222" а ты добавь точно такойже тока с 2-м АйПи и пронать его тоже

Блин кароче

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

NatIP="222.222.222.222" 
NatIP2="222.222.222.221" 
${fwcmd} add 50 nat 123 ip4 from any to any via ${NatIP}
${fwcmd} nat 124 config ip ${NatIP2}
${fwcmd} add 50 nat 124 ip4 from any to any via ${NatIP2}
Типа пример а сам строй как хочешь
Самурай

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 15:28:30

NatIP="222.222.222.222" - это внешний адрес машины.
а второй нат на каком IP поднимать?

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение MASiK » 2009-06-08 15:29:50

Ааа даже так, тада не чё не надо, у тя всё натиться

Капай правела свои, у тя там стока всего пипец просто
Самурай

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 15:42:44

если расскоменитровать строку ${fwcmd} add 60 allow ip4 from any to any

${fwcmd} add 50 nat 123 ip4 from any to any via ${NatIP}
${fwcmd} add 60 allow ip4 from any to any

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

firewall# ipfw show
00050 68047 53809417 nat 123 ip4 from any to any via 195.18.39.10
00060 68508 53843705 allow ip4 from any to any
00100     0        0 pipe 1 ip from any to table(1) out via rl0
00200     0        0 pipe 2 ip from any to table(2) out via rl0
00300     0        0 pipe 3 ip from any to table(3) out via rl0
00400     0        0 pipe 4 ip from any to table(4) out via rl0
00500     0        0 allow ip from any to any via lo0
00600     0        0 deny ip from 192.168.10.255 to any
00700     0        0 deny ip from 91.207.8.242 to any
00800     0        0 deny log logamount 1000 ip from any to 91.207.8.242
00900     0        0 deny ip from any to 192.168.10.255
01000     0        0 deny ip from any to 127.0.0.0/8
01100     0        0 deny ip from 127.0.0.0/8 to any
01200     0        0 deny ip from any to 10.0.0.0/8 in via fxp0
01300     0        0 deny ip from 192.168.10.1 to 8.255.2.254 in via fxp0
01400     0        0 deny ip from 8.255.2.254 to 192.168.10.1 in via fxp0
01500     0        0 deny ip from any to 172.16.0.0/12 in via fxp0
01600     0        0 deny ip from any to 0.0.0.0/8 in via fxp0
01700     0        0 deny ip from any to 169.254.0.0/16 in via fxp0
01800     0        0 deny ip from any to 240.0.0.0/4 in via fxp0
01900     0        0 deny icmp from any to any frag
02000     0        0 deny icmp from any to 255.255.255.255 in via fxp0
02100     0        0 deny icmp from any to 255.255.255.255 out via fxp0
02200     0        0 fwd 127.0.0.1,3128 tcp from table(1) to not 192.168.10.254 dst-port 80
02300     0        0 fwd 127.0.0.1,3128 tcp from table(2) to not 192.168.10.254 dst-port 80
02400     0        0 fwd 127.0.0.1,3128 tcp from table(3) to not 192.168.10.254 dst-port 80
02500     0        0 fwd 127.0.0.1,3128 tcp from table(4) to not 192.168.10.254 dst-port 80
02600     0        0 fwd 127.0.0.1,3128 tcp from table(6) to not 192.168.10.254 dst-port 80
02700     0        0 allow tcp from any to 192.168.10.58 dst-port 4000-20011
02800     0        0 allow udp from any to 192.168.10.58 dst-port 4000-20011
02900     0        0 allow tcp from 192.168.10.58 4000-20011 to any
03000     0        0 allow udp from 192.168.10.58 4000-20011 to any
03100     0        0 allow tcp from any to 192.168.10.5 dst-port 2112 via fxp0
03200     0        0 allow tcp from any to 192.168.10.5 dst-port 2112 via rl0
03300     0        0 allow tcp from any to 192.168.10.5 dst-port 49152-65535
03400     0        0 allow tcp from any 49152-65535 to 192.168.10.5
03500     0        0 allow tcp from any to 195.18.39.10 dst-port 22098 via fxp0
03600     0        0 allow tcp from table(3) to 89.111.176.249 dst-port 110,25 via rl0 keep-state
03700     0        0 allow tcp from table(1) to 89.111.176.249 dst-port 110,25 via rl0 keep-state
03800     0        0 allow tcp from 192.168.10.0/24 to 212.114.13.1 dst-port 110,25 via rl0 keep-state
03900     0        0 allow tcp from 192.168.10.0/24 to any dst-port 443,5190,2041,2042 via rl0 keep-state
04000     0        0 allow tcp from table(5) to 192.168.10.254 dst-port 80 via rl0 keep-state
04100     0        0 allow tcp from 192.168.10.5 25,7060 to any
04200     0        0 allow tcp from any to 192.168.10.5 dst-port 25,7060
04300     0        0 deny ip from 10.0.0.0/8 to any out via fxp0
04400     0        0 deny ip from 172.16.0.0/12 to any out via fxp0
04500     0        0 deny ip from 0.0.0.0/8 to any out via fxp0
04600     0        0 deny ip from 169.254.0.0/16 to any out via fxp0
04700     0        0 deny ip from 224.0.0.0/4 to any out via fxp0
04800     0        0 deny ip from 240.0.0.0/4 to any out via fxp0
04900     0        0 allow tcp from any to any established
05000     0        0 allow ip from 195.18.39.10 to any out xmit fxp0
05100     0        0 allow udp from any 53 to any via fxp0
05200     0        0 allow icmp from any to any icmptypes 0,8,11
05300     0        0 allow tcp from 192.168.10.5 to any via rl0 keep-state
05400     0        0 deny log logamount 1000 tcp from any 25 to any
05500     0        0 deny log logamount 1000 tcp from any to any dst-port 25
05600     0        0 allow tcp from table(1) to any via rl0 keep-state
05700     0        0 allow tcp from 192.168.10.98 to any via rl0 keep-state
05800     0        0 allow tcp from 192.168.10.58 to any via rl0 keep-state
05900     0        0 allow udp from any to any via rl0
06000     0        0 deny log logamount 1000 tcp from any to any
65535  2132   133141 deny ip from any to any

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение MASiK » 2009-06-08 15:44:20

что происходит-то если раскомментировать? я не телепат)
Самурай

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-08 15:44:28

то из двух сетей можно шариться по инету, но соответственно пакеты не попадают под другие правила и не работает шейпер

Аватара пользователя
MASiK
лейтенант
Сообщения: 625
Зарегистрирован: 2008-09-19 20:09:41
Откуда: Оттуда
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение MASiK » 2009-06-08 16:22:48

Ну естественно, полистай хенд бук, ты видимо не много не понимаешь как работает ipfw там всё по русский, в доках на сайте лисяры, я сам не понемал прока не прочёл
Самурай

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение FenX » 2009-06-08 17:31:28

я чет не совсем понял...

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

${fwcmd} add 50 nat 123 ip4 from any to any via ${NatIP}
разве здесь не имя интерфейся должно быть, вместо ${NatIP} ? Оо

Масик-Самурай
проходил мимо

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение Масик-Самурай » 2009-06-08 20:58:52

эт кернель нат, тут намутили покруче можно ип можно Интерфейс типа крута когда можно всё :)))

DEX
мл. сержант
Сообщения: 106
Зарегистрирован: 2007-03-13 12:16:51

Re: Выпустить две сети в инет через IPFW

Непрочитанное сообщение DEX » 2009-06-09 14:27:11

Спасибо всем! Заработало. С самого начала натились две сетки, надо было дописать правила для второй сети для выхода наружу.