FBSD 8.2+PF+ADSL не работает проброс портов
Добавлено: 2011-10-19 10:40:07
Доброго времени суток!
Имею FBSD 8.2, настроенное adsl соединение, "настроенный" PF, в инет локалка ходит, а вот из инета ничего не долетает.
Настроил шлюз по инструкции на опеннет.
em0 - локалка
em1 - сеть с adsl-модемом
tun0 - ADSL-соединение
ADSL-соединение поднимает именно шлюз, не модем(так надо...).
Вот конфиг rc.conf
Вот netstat
Вот конфиг pf.conf
Не знаю важно или нет, но шлюз - это виртуалка ESXi 5.
Повторюсь, инет для локалки раздается вполне нормально.
Какие есть предложения?
Имею FBSD 8.2, настроенное adsl соединение, "настроенный" PF, в инет локалка ходит, а вот из инета ничего не долетает.
Настроил шлюз по инструкции на опеннет.
em0 - локалка
em1 - сеть с adsl-модемом
tun0 - ADSL-соединение
ADSL-соединение поднимает именно шлюз, не модем(так надо...).
Вот конфиг rc.conf
Код: Выделить всё
defaultrouter="<шлюз, назначаемый после установки ADSL-соединения>"
hostname="bsd.domain"
ifconfig_em0="inet 172.16.50.160 netmask 255.255.255.0"
ifconfig_em1="inet 192.168.1.2 netmask 255.255.255.0"
keymap="ru.koi8-r"
# -- sysinstall generated deltas -- # Wed Oct 19 00:56:28 2011
sshd_enable="YES"
gateway_enable="YES"
linux_enable="yes"
#PPPoE Enable
ppp_enable="YES"
ppp_mode="dedicated"
ppp_profile="adsl"
#PF Enable
pf_enable="YES"
pf_program="/sbin/pfctl"
pf_flags=""
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pf.log"
pflog_program="/sbin/pflogd"
pflog_flags=""
Код: Выделить всё
bsd# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default <шлюз, назначаемый после установки ADSL-соединения> UGS 0 27524 tun0
localhost link#4 UH 0 28 lo0
172.16.50.0 link#1 U 3 27138 em0
172.16.50.160 link#1 UHS 0 0 lo0
192.168.1.0 link#2 U 0 180 em1
bsd link#2 UHS 0 0 lo0
<ИП tun0> link#6 UHS 0 0 lo0
<ИП шлюза tun0> link#6 UHS 0 0 tun0
Internet6:
Destination Gateway Flags Netif Expire
localhost localhost UH lo0
fe80::%lo0 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
ff01:4:: fe80::1%lo0 U lo0
ff02::%lo0 fe80::1%lo0 U lo0
Код: Выделить всё
# Written By Alchemist 20.03.2009
# http://alchemist-unix.blogspot.com/
#################################################################
#################################################################
# Опции
#################################################################
# Интерфейсы
ext_if = "tun0" #интерфейс, создаваемый при поднятии ADSL-соединения
int_if = "em0"
# IP адреса
lannet = "172.16.50.0/24"
ext_ip = "<внещний ИП, получаемый при поднятии ADSL-соединения>/32"
bsd = "172.16.50.160/32"
bserv = "172.16.50.99/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
#------------------------------
# NAT & RDR
#------------------------------
# NAT для локалки
nat on $ext_if inet from $lannet to any -> $ext_ip
# Пробрасываем порты на web сервер
rdr on $ext_if proto tcp from any to $ext_ip port www -> $bsrv
rdr on $ext_if proto udp from any to $ext_ip port domain -> $bserv
# rdr on $ext_if proto tcp from any to $ext_ip port domain -> $bserv
rdr on $ext_if proto tcp from any to $ext_ip port rdp -> $bserv
#------------------------------
# Правила фильтрации
#------------------------------
# Защита от спуфинга
antispoof quick for { lo0, $int_if, $ext_if }
# Блокируем всё
block log all
# Разрешаем icmp
pass inet proto icmp icmp-type echoreq
# Разрешаем DNS для локалки
pass in on $int_if proto udp from $lannet to $bsd port domain
# Разрешаем NTP для локалки
pass in on $int_if proto udp from $lannet to $bsd port ntp
# Тестовый полный выход для отладки
pass in 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
pass out on $int_if proto tcp from any to any
pass out on $int_if proto udp from any to any keep state
#------------------------------
# Icoming #
pass in on $ext_if proto tcp from any to $ext_ip port www flags S/SA synproxy state
pass in on $ext_if proto udp from any to $ext_ip port rdp
pass in on $ext_if proto udp from any to $ext_ip port domain
# pass in on $ext_if proto tcp from any to $ext_ip port domain
Повторюсь, инет для локалки раздается вполне нормально.
Какие есть предложения?