Код: Выделить всё
ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:17:31:ba:c4:a6
inet 192.168.10.254 netmask 0xffffff00 broadcast 192.168.10.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl0: flags=88c3<UP,BROADCAST,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3808<VLAN_MTU,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
ether 00:e0:4c:77:28:c8
inet 10.10.10.2 netmask 0xffffff00 broadcast 10.10.10.255
media: Ethernet autoselect (none)
status: no carrier
pfsync0: flags=0<> metric 0 mtu 1460
syncpeer: 224.0.0.240 maxupd: 128
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33200
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
Opened by PID 510
Нужно достучаться до Web-интерфейса из локальной сети 192.168.10.0/24 которая подключена к vr0
на шлюзе стоит PF
Код: Выделить всё
pf.conf
ext_if = "tun0" #интерфейс, создаваемый при поднятии ADSL-соединения
int_if = "vr0"
# IP адреса
lannet = "192.168.10.0/24"
untrusted_lan="10.10.10.0/24"
ext_ip = "А.А.А.А"
bsd = "192.168.10.254/32"
bserv = "192.168.10.2/32"
wan_services="10.10.10.1/32"
#------------------------------
# Нормализация
#------------------------------
# Определяем политику при блокировке пакетов
set block-policy drop
# Поведение пакетного фильтра при использовании таблицы состояний
#set state-policy floating
# Логируемый интерфейс
set loginterface $ext_if
# Максимальное количество записей в пуле отвечающем за нормализацию трафика (scrub)
# Максимальное количество вхождений в пул отвечающий за состояние таблицы состояний соединений (keep state)
#set limit { frags 100000, states 100000 }
# Устанавливаем тип оптимизации
set optimization normal
# Игнорируем фильтрацию на кольцевом интерфейсе
set skip on lo0
# Нормализация всего входящего трафика на всех интерфейсах
scrub in all
scrub out all random-id max-mss 1440
#------------------------------
# NAT & RDR
#------------------------------
# NAT для локалки
#rdr on $int_if proto tcp from $int_if:network to any port 8080 -> 10.10.10.1 port www
nat on $ext_if inet from $lannet to any -> $ext_ip
#rdr on $int_if proto tcp from $lannet port 8080 to 10.10.10.1 port www -> 10.10.10.1
#rdr on $int_if proto tcp from any to 192.168.10.254 port 8080 -> 10.10.10.1 port www
#rdr on $int_if proto { tcp, udp } from any to $bsd port 8080 -> 10.10.10.1 port 80
#------------------------------
# Правила фильтрации
#------------------------------
# Защита от спуфинга
#antispoof quick for { lo0, $int_if, $ext_if }
# Блокируем всё
pass log all
##--direct connections from 192.168.10.0/24 LAN to 10.10.10.0/24 WAN
pass out log on $ext_if from $lannet to $untrusted_lan keep state
## разрешаем трафик от
## локалки 192.168.10.0/24 к сети провайдера по быстрому соединению
##--direct connections from 192.168.10.0/24 LAN to 10.10.10.0/24 WAN
# Разрешаем icmp
pass inet proto icmp icmp-type echoreq
pass out on $ext_if from $lannet to $wan_services keep state
# Тестовый полный выход для отладки
pass in log on $int_if from $lannet to any
# Разрешаем нашему шлюзу полный выход с обоих интерфейсов
pass out on $ext_if proto tcp from any to any
pass out on $ext_if proto udp from any to any keep state
Конфиге в правилах нат не пугайтесь там все мои наработки которые нифига не работаю
Точнее всё работает НАТ и прочее но вот достучаться до веб-интерфейса не могу