The OpenNET Project / Index page

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



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

Исходное сообщение
"pf & udp"
Отправлено restyler, 03-Авг-11 09:17 
Есть сервер FreeBSD 6.4, на нем крутяться игровые сервера, меня интересует как открыть порты для игровых серверов у наружнего интерфейса.Я по-разному пробовал, честно говоря уже теряюсь в догадках, 3 дня раскуривал сабж на разных сайтах, смотрел faq.
Привожу вывод sockstat (только интересующие демоны):

csuser   hlds_i686  1203  4  udp4   *:27015               *:*
csuser   hlds_i686  1203  9  udp4   10.0.39.201:26900     *:*
csuser   hlds_i686  1202  4  udp4   *:27015               *:*
csuser   hlds_i686  1202  9  udp4   10.0.39.201:26900     *:*
csuser   hlds_i686  1167  4  udp4   *:27015               *:*
csuser   hlds_i686  1167  9  udp4   10.0.39.201:26900     *:*
quake    r1q2ded    1144  6  udp4   *:27910               *:*
quake    q3ded      1141  39 udp4   *:27962               *:*
quake    q3ded      1138  39 udp4   *:27961               *:*
quake    q3ded      1135  39 udp4   *:27960               *:*

Привожу pf.conf с комментариями:

# Перва сетевая карта Локалка (192.168.130.201)
int_if="vr0"

# Вторая сетевая карта Мир (10.0.39.201)
ext_if="xl0"

# LAN (локальная сеть)
lan_net="{ 192.168.130.0/24 }"

# Таблица для доступа к Внешним MTA
mail="{ 192.168.130.170, 192.168.130.171, 192.168.130.172, 192.168.130.173,
192.168.130.174, 192.168.130.175, 192.168.130.176, 192.168.130.177, 192.168.130.178,
192.168.130.179, 192.168.130.180 }"

NoRouteIPs = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \
10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4 }"

# Определяем политику при блокировке пакетов
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

# Открытые порты 25 и 110 для таблицы mail
nat pass on $ext_if from $mail to any port 25 -> $ext_if
nat pass on $ext_if from $mail to any port 110 -> $ext_if

# Защита от спуфинга
antispoof quick for { lo0, $int_if, $ext_if }

pass in quick on $int_if from $lan_net to any
pass out quick on $int_if from self to $lan_net

pass out quick on $ext_if from self to any keep state
#block in on $ext_if from any to any
block in all
# те, кто ломится на внешний интерфейс с левыми адресами
#block drop in log quick on $ext_if from $NoRouteIPs to any

# умников, которые лезут на внутренний интерфейс с любых сетей
# отличных от 192.168.130.0/24
block drop in log quick on $int_if from !$int_if:network to any

# пишем тех, кто ломится к нам на 25 порт. Облегчает работу по
# определению зараженных компов в локальной сети
block drop in log quick on { $int_if, $ext_if } proto tcp from any to any port smtp

#pass in on $int_if proto tcp from $int_if to any port 80 synproxy state
#------------------------------
# Icoming #
#------------------------------
# Разрешаем входящий ssh
pass in log on $int_if proto tcp from any to $int_if port 22 flags S/SA synproxy state

# Разрешаем входящий www трафик
pass in on $ext_if proto tcp from any to $ext_if port 80 flags S/SA synproxy state

# Разрешаем входящий ftp трафик
pass in quick on $ext_if proto tcp from any to any port {20,21} keep state
#Правило хз почему не работает
pass in on $ext_if proto tcp from any to $ext_if port ssh synproxy state
# Открываем доступ к Quake 2 серверу снаружи, но правило не катит
pass in on $ext_if proto udp from any to any port 27910 keep state
#Конец конфига

Так же пробовал писать для открытия порта методом проброса(глупо конечно,но от отчаяния):
rdr on $ext_if inet proto udp from any to $ext_if port 27910 -> $int_if

Пробовал, но тоже не катит:
pass in on $ext_if proto udp from any to any port 27910 synproxy state
-------------------------------------------------------------------------
Хочу в конце добавить, что все правила проходят синтаксический контроль pf.

Мне все-таки хочется открыть доступ к серверам кваки 2,3 и КС на внешней сетевой карте, которая:
# Вторая сетевая карта Мир (10.0.39.201)
ext_if="xl0"
Ребят, подскажите как правильно это сделать?

P.S. С апачем долго возился, но победил, правило все-таки работает:
pass in on $ext_if proto tcp from any to $ext_if port 80 flags S/SA synproxy state

 

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



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

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