Groov
NoDeny
Постоялец
Карма: -3
Offline
Сообщений: 100
|
|
« : 18 Января 2010, 16:47:59 » |
|
Нужна помощь с настройкой шлюза.
Всё работает всё хорошо, в инет у всех работает, надо добавить нат на pf, а с pf первый раз столкнулся.
# pfctl -sn No ALTQ support in kernel ALTQ related functions disabled nat pass on vr0 inet from 10.1.1.0/24 to any -> 91.212.80.138 nat pass on vr0 inet from 10.1.16.0/24 to any -> 91.212.80.138 nat pass on vr0 inet from 10.1.17.0/24 to any -> 91.212.80.138
# ifconfig rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:02:44:8b:c5:6a inet 10.10.0.4 netmask 0xffffff00 broadcast 10.10.0.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:02:44:57:83:04 inet 10.1.1.1 netmask 0xffffff00 broadcast 10.1.1.255 inet 10.1.16.1 netmask 0xffffff00 broadcast 10.1.16.255 inet 10.1.17.1 netmask 0xffffff00 broadcast 10.1.17.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC> ether 00:0d:87:75:de:49 inet 91.212.80.138 netmask 0xfffffff8 broadcast 91.212.80.143 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 inet 127.0.0.1 netmask 0xff000000
# uname -a FreeBSD gw1.lnet 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Tue Oct 27 05:19:55 EET 2009 groov@tp.home:/usr/src/sys/i386/compile/ROUTER i386
]# ipfw show 00040 19067 1037132 allow tcp from 10.10.0.2 to me dst-port 514 00041 24913 28571993 allow tcp from me 514 to 10.10.0.2 00050 38451 2125384 allow tcp from any to me dst-port 22 00051 52614 11758964 allow tcp from me 22 to any 00100 1621 77756 deny tcp from any to any dst-port 445 00110 862 95958 allow ip from any to any via lo0 00120 252971 24961430 skipto 1000 ip from me to any 00130 10795 604520 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17 00140 1528 79425 deny ip from any to table(120) 00150 300 31471 deny ip from table(120) to any 00160 270626 127172938 skipto 2000 ip from any to me 00200 10547093 8644732869 skipto 500 ip from any to any via vr0 00300 4192692 311386681 skipto 4500 ip from any to any in 00400 6429487 8317518190 skipto 450 ip from any to any recv vr0 00420 16971 674609 divert 1 ip from any to any 00450 6446448 8318192345 divert 2 ip from any to any 00490 6444742 8315738511 allow ip from any to any 00500 6445827 8338723414 skipto 32500 ip from any to any in 00510 4101266 306009455 divert 1 ip from any to any 00540 4100997 305983594 allow ip from any to any 01000 65917 8658549 allow udp from any 53,7723 to any 01010 228598 119685727 allow tcp from any to any setup keep-state 01020 99033 13461634 allow udp from any to any keep-state 01100 18419 2558895 allow ip from any to any 02000 0 0 check-state 02010 16396 996959 allow icmp from any to any 02020 2029 308163 allow tcp from any to any dst-port 80,443 02050 24382 2722948 deny ip from any to any via vr0 02060 68583 3727459 allow udp from any to any dst-port 53,7723 02100 240 14034 deny ip from any to any 05000 40514 2461723 deny ip from not table(0) to any 05001 0 0 skipto 5010 ip from table(127) to table(126) 05002 4135555 308280132 skipto 5030 ip from any to not table(2) 05003 22 1634 deny ip from any to not table(1) 05004 16487 636719 pipe tablearg ip from table(21) to any 05005 0 0 deny ip from any to any 05010 0 0 pipe tablearg ip from table(127) to any 05030 18869 830300 deny tcp from table(15) to any dst-port 25 05140 144653 7168983 allow ip from table(41) to table(40) 05154 0 0 allow ip from table(55) to table(54) 05400 3972033 300280849 pipe tablearg ip from table(11) to any 32000 0 0 deny ip from any to any 32490 47 2622 deny ip from any to any 33000 0 0 pipe tablearg ip from table(126) to table(127) 33001 6445827 8338723414 skipto 33010 ip from not table(2) to any 33002 0 0 pipe tablearg ip from any to table(20) 33003 0 0 deny ip from any to any 33140 142963 25840408 allow ip from table(40) to table(41) 33154 0 0 allow ip from table(54) to table(55) 33400 6302691 8312853793 pipe tablearg ip from any to table(10) 65535 189 30085 allow ip from any to any
надо что бы на 10.10.0.0/24 всё уходило на rl0 как это сделать ??
и на Optimu 195.248.160.0/19 212.86.224.0/19 213.227.192.0/18 217.24.160.0/20 213.133.165.64/27 213.154.216.0/21 213.154.214.0/23 195.248.176.96/27 195.248.169.195/32
всё уходило на 10.10.0.2
|
|
|
Записан
|
|
|
|
Groov
NoDeny
Постоялец
Карма: -3
Offline
Сообщений: 100
|
|
« Ответ #1 : 18 Января 2010, 16:58:43 » |
|
вот мои направления
|
|
|
Записан
|
|
|
|
Fredik
NoDeny
Старожил
Карма: 5
Offline
Сообщений: 362
|
|
« Ответ #2 : 18 Января 2010, 17:07:13 » |
|
так а че там в мануале по настройке есть вроде как все.
|
|
|
Записан
|
|
|
|
Groov
NoDeny
Постоялец
Карма: -3
Offline
Сообщений: 100
|
|
« Ответ #3 : 18 Января 2010, 17:20:31 » |
|
так а че там в мануале по настройке есть вроде как все.
Перечитывал нету !
|
|
|
Записан
|
|
|
|
Fredik
NoDeny
Старожил
Карма: 5
Offline
Сообщений: 362
|
|
« Ответ #4 : 18 Января 2010, 18:10:31 » |
|
Для трансляции «серых» адресов в «белые» необходим NAT. Будем использовать pf nat:
Команда bash ee /etc/pf.conf
Вставляем в файл pf.conf set limit states 128000 set optimization aggressive nat pass on em0 from 10.0.0.0/8 to any -> em0 nat pass on em0 from 192.168.0.0/16 to any -> em0 Обязательно вместо em0 укажите внешний интерфейс сервера, т.е тот, который смотрит с сторону провайдера. В это же значение должна быть установлена переменная ifOut в файле /etc/rc.firewall!
Команда bash pfctl -N -f /etc/pf.conf
и если получаем сообщение:
pfctl: /dev/pf: No such file or directory
то подгрузим pf как модуль ядра и добавим в автозагрузку:
Команды bash kldload pf.ko pfctl -N -f /etc/pf.conf pfctl -e echo pf_load=\"YES\" >> /boot/loader.conf echo pf_enable=\"YES\" >> /etc/rc.conf
|
|
|
Записан
|
|
|
|
Groov
NoDeny
Постоялец
Карма: -3
Offline
Сообщений: 100
|
|
« Ответ #5 : 18 Января 2010, 20:07:35 » |
|
Для трансляции «серых» адресов в «белые» необходим NAT. Будем использовать pf nat:
Команда bash ee /etc/pf.conf
Вставляем в файл pf.conf set limit states 128000 set optimization aggressive nat pass on em0 from 10.0.0.0/8 to any -> em0 nat pass on em0 from 192.168.0.0/16 to any -> em0 Обязательно вместо em0 укажите внешний интерфейс сервера, т.е тот, который смотрит с сторону провайдера. В это же значение должна быть установлена переменная ifOut в файле /etc/rc.firewall!
Команда bash pfctl -N -f /etc/pf.conf
и если получаем сообщение:
pfctl: /dev/pf: No such file or directory
то подгрузим pf как модуль ядра и добавим в автозагрузку:
Команды bash kldload pf.ko pfctl -N -f /etc/pf.conf pfctl -e echo pf_load=\"YES\" >> /boot/loader.conf echo pf_enable=\"YES\" >> /etc/rc.conf Это всё так и настроено и всё работает ! вот только к этому надо добавить нат чтобы уходило на нужную внешнюю подсеть через другой инет !! и мог принимать пакеты с сити 10.10.0.0/24 а то их блокирует на интерфейс rl0 !
|
|
|
Записан
|
|
|
|
|
smallcms
NoDeny
Старожил
Карма: 64
Offline
Сообщений: 279
|
|
« Ответ #7 : 19 Января 2010, 05:49:13 » |
|
надо добавить нат чтобы уходило на нужную внешнюю подсеть через другой инет ext_if0="ng0" ext_if1="vr0" set limit states 128000 set optimization aggressive
table <gorod_networks> persist file "/usr/local/nodeny/dcix" table <trusted_direct_nat> { 192.168.0.0/16 }
scrub in all
nat pass on $ext_if0 from <trusted_direct_nat> to <gorod_networks> -> ($ext_if0) nat pass on $ext_if1 from <trusted_direct_nat> to any -> ($ext_if1)
Что-то и без лисяры всё работает...
|
|
|
Записан
|
|
|
|
Groov
NoDeny
Постоялец
Карма: -3
Offline
Сообщений: 100
|
|
« Ответ #8 : 19 Января 2010, 06:32:03 » |
|
надо добавить нат чтобы уходило на нужную внешнюю подсеть через другой инет ext_if0="ng0" ext_if1="vr0" set limit states 128000 set optimization aggressive
table <gorod_networks> persist file "/usr/local/nodeny/dcix" table <trusted_direct_nat> { 192.168.0.0/16 }
scrub in all
nat pass on $ext_if0 from <trusted_direct_nat> to <gorod_networks> -> ($ext_if0) nat pass on $ext_if1 from <trusted_direct_nat> to any -> ($ext_if1)
Что-то и без лисяры всё работает... Спасибо ! а можешь показать весь свой pf.conf ! можно и личку ! я добавил вот такое правило в фаирвол и всё забегало на 10.10.0.0/24 ${f} add 145 skipto 33001 ip from 10.10.0.0/24 to any ну и роуты на 10.10.0.0/24 route add 10.1.0.0/16 10.10.0.4
|
|
|
Записан
|
|
|
|
smallcms
NoDeny
Старожил
Карма: 64
Offline
Сообщений: 279
|
|
« Ответ #9 : 19 Января 2010, 09:53:32 » |
|
а можешь показать весь свой pf.conf к сожалению это и есть мой текущий pf.conf. извиняюсь, что огорчил. внешний файл dcix вида аа.бб.вв.гг/дд. по одному с новой строки.
|
|
|
Записан
|
|
|
|
Groov
NoDeny
Постоялец
Карма: -3
Offline
Сообщений: 100
|
|
« Ответ #10 : 19 Января 2010, 10:22:38 » |
|
Как перезапустить всё правила pf ( какой командой) сори за такие вопросы но я чайник в pf. а то перезагружать машину постоянно не дело
|
|
|
Записан
|
|
|
|
goletsa
NoDeny
Спец
Карма: 21
Offline
Сообщений: 973
|
|
« Ответ #11 : 19 Января 2010, 10:41:28 » |
|
Как перезапустить всё правила pf ( какой командой) сори за такие вопросы но я чайник в pf. а то перезагружать машину постоянно не дело /etc/rc.d/pf reload ??
|
|
|
Записан
|
|
|
|
Andrey Zentavr
NoDeny
Старожил
Карма: 29
Offline
Сообщений: 301
|
|
« Ответ #12 : 19 Января 2010, 13:08:39 » |
|
Было как-то так на два провайдера: #/etc/pf.conf
ifT="vlan413" ipT="91.214.29.134" gwT="91.214.29.133"
ifE="vlan2" ipE="80.84.184.126" gwE="80.84.184.125"
ifL="vlan100"
# Tables table <glb_gray> { 10.55.0.0/16 } table <glb_switches> { 10.55.250.0/24 } table <glb_all> { 10.55.0.0/16, 224.0.0.0/4, 80.84.187.0/24, 10.0.0.0/8 } table <rfc_gray> { 10.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16 } table <uaix> persist file "/etc/uaix.txt" table <me> const { self }
set limit states 128000 set optimization aggressive
# Nat Outgoing Connections nat pass on $ifT from <glb_gray> to any -> $ipT nat pass on $ifE from <glb_gray> to any -> $ipE
# Express IP via Express Channel pass out quick route-to ($ifE $gwE) inet from ($ifE) to ! <glb_all> flags any keep state #pass out quick on $ifT route-to ($ifE $gwE) from ($ifE) to ! <glb_all> flags any keep state # Telza IP via Telza Channel pass out quick route-to ($ifT $gwT) inet from ($ifT) to ! <glb_all> flags any keep state #pass out quick on $ifE route-to ($ifT $gwT) from ($ifT) to ! <glb_all> flags any keep state
# UA-IX routing via Telza pass in quick on $ifL route-to {($ifT $gwT)} from <glb_gray> to <uaix> flags any keep state
# Round Robin Routing pass in on $ifL route-to { ($ifE $gwE), ($ifT $gwT)} round-robin from <glb_gray> to ! <glb_all> flags any keep state #pass in quick on $ifL route-to ($ifE $gwE) from <glb_gray> to ! <glb_all> probability 60% keep state #pass in quick on $ifL route-to ($ifT $gwT) from <glb_gray> to ! <glb_all> probability 40% keep state
# Allow All on LocalHost set skip on lo block return in quick on ! lo0 from any to 127.0.0.0/8 block return out quick on ! lo0 from 127.0.0.0/8 to any
# Allow OSPF pass on $ifL proto ospf from any to any pass on $ifL proto igmp from any to any
# Deny forwarding grey IP address block return out quick on $ifE from any to <rfc_gray> block return in quick on $ifE from <rfc_gray> to any block return out quick on $ifT from any to <rfc_gray> block return in quick on $ifT from <rfc_gray> to any
# Deny incoming request to MySQL Serv from Internet block return in quick on $ifE proto tcp from any to <me> port { 411, 3306 } block return in quick on $ifT proto tcp from any to <me> port { 411, 3306 }
# Deny incoming TFTP, but switches block return quick proto udp from ! <glb_switches> to <me> port 69
Извиняйте за буржуйские комменты - уж так я привык. ЗЫ: да и фря 7я что-то русский язык через mc не принимает
|
|
|
Записан
|
|
|
|
elite
Начальник планеты
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #13 : 19 Января 2010, 14:18:42 » |
|
Извиняйте за буржуйские комменты - уж так я привык.
только не grey networks, а fake networks
|
|
|
Записан
|
|
|
|
Tech
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 15
|
|
« Ответ #14 : 19 Января 2010, 14:51:23 » |
|
Как перезапустить всё правила pf ( какой командой) сори за такие вопросы но я чайник в pf. а то перезагружать машину постоянно не дело pfctl -f /etc/pf.conf перечитает правила из файла /etc/pf.conf pfctl -N -f /etc/pf.conf перечитает только правила NAT'а рекомендую к ознакомлению - http://syiron.wordpress.com/2007/12/08/basic-pfctl-control/
|
|
|
Записан
|
|
|
|
|