The OpenNET Project / Index page

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



"Не могу реализовать несколько белых ip и jail"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Не могу реализовать несколько белых ip и jail"  +/
Сообщение от Тракторист (?), 24-Мрт-22, 10:56 
Приветствую уважаемые Специалисты!

Наведите пожалуйста на правильный путь, что-то всю голову уже изломал.
Схема такая:
Есть сервер FreeBSD 13.1 amd64, с двумя интерфейсами igb0 и igb1.
Всю жизнь на него приходил линк на igb0 [192.168.1.2/24 gw 192.168.1.1] и на нужные порты с вышестоящего роутера были проброшены порты.

Тут возникла необходимость на него завести несколько внешних ip'ов и на этих ip'ах повесить сервисы (WWW, MAIL и т.п.)
IP'ы я завёл посредством VLAN'ов. Т.е. c igb1 транк до коммутатора, в который в access порты воткнуты ланки от провайдера. Подняты несколько таблиц маршрутизации. Соответственно на каждом VLAN'е свой внешний ip и внутренний ip для клетки с сервисами для данного ip'а.

/etc/rc.conf

cloned_interfaces="vlan11 vlan12 vlan13 vlan14"
ifconfig_vlan11="inet 1.2.3.11/24 vlan 11 vlandev igb1 fib 1"
ifconfig_vlan11_alias0="inet 10.1.1.1/32 fib 1"
......ifconfig'и аналогичны.....

static_routes="V11 V12 V13 V14"
route_V11="default 1.2.3.1 -fib 1"
......маршруты аналогичны.....

Для сервисов я поднял клетки:

qjail create -n vlan11 -4 10.1.1.1 j11_mail
qjail create -n vlan12 -4 10.1.2.1 j12_site

В sysctl.conf установлен

net.inet.ip.fw.one_pass=0

И соответственно прокидывание портов на сервисы с помощью ipfw:
/etc/rc.ipfw

${FW} add check-state :v0 # Для трафика с igb0 
${FW} add check-state :v11 #v11,v12... - это соотв-но для vlan'ов

# НАБОР ПРАВИЛ РАЗРЕШАЮЩИХ ЧТО НАДО ДЛЯ igb0.
.....

# ЕДИНООБРАЗНЫЕ БЛОКИ ДЛЯ ПРОКИДЫВАНИЯ С VLAN'ов в клетки
${FW} nat 1 config if vlan11 log deny_in reset same_ports \
       redirect_port tcp 10.1.1.1:22   22 \
       redirect_port tcp 10.1.1.1:25   25 \
       redirect_port tcp 10.1.1.1:465  465 \
       redirect_port tcp 10.1.1.1:587  587
${FW} add nat 1 all from any to 1.2.3.11 in via vlan11
${FW} add setfib 1 all from 10.1.1.1 to any
${FW} add setfib 1 all from any to 10.1.1.1
${FW} add skipto 5000 all from 10.1.1.1 to any out via vlan11 keep-state :v11
${FW} add allow log tcp from any to 10.1.1.1 22,25,465,587 setup keep-state :v11

# Всё запретили (это после разрешающих правил для :v0)
${FW} add deny all from any to any

# 5000 правило куда теоретически переходит пакет выходящий из клетки
${FWCMD} add 5000 nat 1 all from any to any via vlan11
${FWCMD} add allow all from any to any

И собственно проблема в чём:
Изнутри клетки - всё работает. Т.е. я находясь в клетке делаю ssh ВНЕШНИЙ_ПОСТОРОННИЙ_СЕРВЕР и вижу на этом сервере, что соединение приходит с ip адреса "закреплённого" за клеткой.

А вот если я снаружи пытаюсь сделать telnet 1.2.3.11 25 , и смотрю tcpdump'ом - то вижу что пакет пришёл на внешний ip, а ответ идёт от 10.1.1.1 - но через igb0 интерфейс! И соответственно соединение не устанавливается.

Я всю голову сломал себе, помогите пожалуйста определить где неверная настройка.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Pahanivo пробегал (?), 26-Мрт-22, 00:52   +1 +/
имхо с NAЕ то ли перемудрил то ли недомудрил ....
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от Тракторист (?), 26-Мрт-22, 02:15   +/
> имхо с NAЕ то ли перемудрил то ли недомудрил ....

Чисто для общего развития: Что такое NAE?

А задачу эту в итоге решил по-другому.

1. Перевёл эти клетки в режим vnet сети. Соответственно появились epair интерфейсы
   [на стороне хоста] epairNa <=> epairNb [на стороне jail]

2. Создал мост bridgeN, в который добавил epairNa,vlanN

3. В самой клетке для epairNb прописаны белый ip и маршрут по-умолчанию.

4. На хосте оформлены IPFW разрешения для vlanN, epairNa

Всё работает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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