NAT + PF и три сетевых

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
VAR
проходил мимо
Сообщения: 1
Зарегистрирован: 2011-03-28 18:27:05

NAT + PF и три сетевых

Непрочитанное сообщение VAR » 2011-03-28 19:21:39

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

имею FreeBSD 8.2 и PF как НАТ и фаервол. и вот PF не могу толком настроить :(
/etc/pf.rules

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

if_ext = "re0"       # сеть районная 10.0.0.0/8 и 192.168.0.0/16
if_int = "rl0"        # сеть домашняя 172.16.10.0/24
if_byf = "rl1"       # adsl модем, инет через PPPoE
if_tun = "tun0"    # собственно сам PPPoE

net_int = "172.16.10.0/24"

set block-policy drop
set state-policy if-bound

scrub all reassemble tcp fragment reassemble

# UPnPd miniupnd на re0
rdr-anchor "miniupnpd"


nat pass on $if_ext from $net_int -> ($if_ext) static-port
#block drop all

# Разрешаем всё на loopback-интерфейсе
pass quick on lo0 all

pass out quick on $if_ext inet proto tcp from ($if_ext) to any flags S/SA keep state
pass out quick on $if_ext inet proto { udp, icmp } from ($if_ext) to any keep state
pass out quick on $if_int from ($if_int) to $net_int

pass out quick on $if_tun inet proto tcp from ($if_ext) to any flags S/SA keep state
pass out quick on $if_tun inet proto { udp, icmp } from ($if_ext) to any keep state
pass out quick on $if_int from ($if_int) to $net_int

pass in quick on $if_int from $net_int to any keep state
re0 получает от сети по dhcp адрес, днс, гейт. через этот гейт еще прописываются почти 400 маршрутов на пиринговые ресурсы
rl0 - поднят dhcp, dns - раздает на домашнюю сеть.
rl1 - сетевая, в нее воткнут модем, на машине поднимается PPPoe (tun0)


на роутере:

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

>traceroute 192.168.122.33
traceroute to 192.168.122.33 (192.168.122.33), 64 hops max, 40 byte packets
 1  edge.infolan.by (10.25.34.254)  0.418 ms  0.317 ms  0.291 ms
 2  * * *
 3  * * *
^C

ping -c3 192.168.122.33
PING 192.168.122.33 (192.168.122.33): 56 data bytes
64 bytes from 192.168.122.33: icmp_seq=0 ttl=254 time=0.978 ms
64 bytes from 192.168.122.33: icmp_seq=1 ttl=254 time=0.857 ms
64 bytes from 192.168.122.33: icmp_seq=2 ttl=254 time=1.738 ms

--- 192.168.122.33 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.857/1.191/1.738/0.390 ms
а на компе:

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

C:\Users\VAR>tracert 192.168.122.33

Трассировка маршрута к 192.168.122.33 с максимальным числом прыжков 30

  1    <1 мс    <1 мс    <1 мс  FREEBSD [172.16.10.1]
  2    <1 мс    <1 мс    <1 мс  10.25.34.254
  3     1 ms     2 ms     2 ms  192.168.122.33

Трассировка завершена.

пинг проходит нормально
на машине крутится торрент-клиент transmisson и DC++ клиент microdc2

проблемы скорее всего в косячном конфиге и моей тупости :(
не могу зайти со своего компа на DC-клиента на роутере. пробовал и активный и пассивный режим. на роутер прекрасно заходят из районной локалки, нормально качают файлы.

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

Хостинговая компания 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/

Гость
проходил мимо

Re: NAT + PF и три сетевых

Непрочитанное сообщение Гость » 2011-03-29 0:50:35

ну если вы не знаете как работает маршрутизация, тогда НАТте все подряд :-D

Staruy
проходил мимо
Сообщения: 1
Зарегистрирован: 2011-04-07 11:12:03

Re: NAT + PF и три сетевых

Непрочитанное сообщение Staruy » 2011-04-07 11:18:42

Нет к сожалению времени разобраться в твоем конфиге, так что пока прилагаю свой, построение сети - такое же.
(IP статика на tun0)

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

vpn="tun0"
vpnip="213.141.155.109"
nbn_loc="sk0" #локалка провайдера
mac="ste0"    #1 комп
win="rl0"       #2 комп
icmp_types="{ echoreq, unreach }"
home_lan="192.168.0.0/22"
prov_lan="10.0.0.0/8"
localnet="127.0.0.0/8"
loc_res="212.1.224.0/24"

#глобальные опции
set block-policy return
set skip on lo0
set skip on $mac
set skip on $win

#нормализация
scrub in all

#приоритезация и очереди ALTQ

#NAT
nat on $nbn_loc from $home_lan to $loc_res -> ($nbn_loc)

#RDR
rdr pass on $vpn inet proto {tcp, udp} from any to ($vpn) port 3389 -> 192.168.0.254

#правил фильтрации
antispoof quick for $vpn
antispoof quick for ($nbn_loc)
block all
pass out on $vpn from $vpnip to any keep state
pass out on $vpn from ($nbn_loc) to any keep state
pass out on $vpn from $home_lan to any keep state
pass out on $nbn_loc from $home_lan to any keep state
pass out on $nbn_loc from ($nbn_loc) to any keep state
pass out on { $mac, $win } from any to any keep state
/etc/pf.conf 
#pass out on $nbn_loc from $home_lan to $prov_lan keep state
#pass out on $nbn_loc from $home_lan to $loc_res keep state
#pass out inet proto icmp all icmp-type $icmp-types
:
#входящий траффик
pass in on { $mac, $win } from any to any  keep state
pass in on $vpn proto tcp from any to $vpnip port { 110, 143, 40986, 80, 21, 5109, 9091, 3389 } keep state
pass in on $nbn_loc proto tcp from any to ($nbn_loc) port { 40986, 80, 110, 143, 21 } keep state
block in on { $vpn, $nbn_loc } from <freaks> to any
pass in on $vpn proto tcp from any to any port 21 keep state
pass in on $vpn proto tcp from any to any port > 49151 keep state
pass in on $nbn_loc proto tcp from any to any port 21 keep state
pass in on $nbn_loc proto tcp from any to any port > 49151 keep state
#po4ta otklonyaetsya na 113 port
block return in quick proto tcp from any to any port 113
Может заодно кто-нибудь раскритикует конфиг)