The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Маршрутизатор на FreeBSD: не форвардятся пакеты"
Отправлено Ex Nihilo, 06-Ноя-13 05:53 
> Попробуйте ваши правила, попробуйте правила предложенные мною из поста 18.

Ни ваши, ни мои правила до конца рабочими не оказались. Пришлось переделывать. Заодно перелез c pppd на mpd. Заработало. Но теперь вновь всплыла старая проблема — не могут выйти в сеть все, кто стоит за NAT, кроме самого маршрутизатора.

/etc/pf.conf:

ext_if="bge0"             # интерфейс на выход
int_if="bge1"                   # интерфейс на вход
tun_if="ng0"                    # PPPD-интерфейс
lo0="127.0.0.1"                 # Loopback
vlan1="192.168.2.0/24"         # на всякий случай описываем сеть VLAN 1  (1)
vlan2="192.168.1.0/24"         # на всякий случай описываем сеть VLAN 10 (2)
wserver="192.168.1.100"         # Наш сервер, нуждающийся в пробросе портов

# Settings
set debug urgent                # Выводим только серьёзные ошибки
set block-policy return         # Возвращаем плохие пакеты
set state-policy floating       # Развязка пакета от интерфейса
set limit { states 250000, frags 175000 } # А чего мелочиться?
set optimization normal         # Обыкновенная оптимизация
set ruleset-optimization none   # Не будем оптимизировать правила
set skip on lo0                 # Пропускаем все попытки обработать loopback
set skip on $int_if             # on bge1
scrub in all                    # Отсылаем только собранные пакеты

tcp_services="{ 22, 25, 37, 43, 53, 80, 443, 110, 119 }"  # Открытые порты для всех
tcpo_services="{ 20, 21, 22, 25, 80 }"                    # Открытые порты для серверов
icmp_types="{ echoreq, unreach }"         # какие типы icmp запросов можно использовать

# NAT
#nat on $tun_if from !($tun_if) -> ($tun_if:0) # Не работает
nat on $tun_if from {$vlan1 $vlan2} -> {$tun_if} # попытка переделать правило

# Форвардим
rdr on $ext_if proto tcp from any to any port 80 -> $wserver port 80
rdr on $ext_if proto tcp from any to any port 20 -> $wserver port 20
rdr on $ext_if proto tcp from any to any port 21 -> $wserver port 21
rdr on $ext_if proto tcp from any to any port 135 -> $wserver port 22
rdr on $ext_if proto tcp from any to any port 3000:3500 -> $wserver

# Фильтрация
antispoof quick for $ext_if              # Антиспуфинг для внешнего интерфейса bge0

# Сами правила
# На выход
pass out on { $ext_if $tun_if } from $ext_if to any keep state # Разрешаем выход маршрутизатору
pass out on { $ext_if $tun_if } proto { tcp udp icmp } all modulate state # Разрешаем выход всем изнутри

# На вход
pass in log on $ext_if proto { tcp, udp } from any to $vlan2 port $tcp_services keep state # Открываем вход всем на втором влане
pass in log on $ext_if proto { tcp, udp } from any to $vlan1 port $tcpo_services keep state # Открываем вход всем на первом влане

# ICMP-секция
pass inet proto icmp icmp-type { echoreq, unreach } # Разрешаем пинги


 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру