Страница 1 из 1

Сеть DMZ через NAT

Добавлено: 2019-12-12 16:12:44
Tekron
Здравствуйте форумчане!
Подскажите по поводу создания dmz написал правила по статье
https://www.lissyara.su/articles/freebs ... if_bridge/ и вот возник вопрос можно ли как то не прибегая к созданию моста сделать dmz?
Или подскажите как реализовать чтобы не надо было включать дополнительные вещи и перекомпилить ядро.
Свободные белые адреса есть 5 штук.

Код: Выделить всё


#!/bin/sh

# reset rules
ipfw -q -f flush

# macro defs
ext="em1" # Интернет
int="em0" # Локалка
dmz="em2" # Дмз
dmz_mail_server="XXX.XXX.XXX.XXX" # вписать ip эджа внешний
dmz_web_server="XXX.XXX.XXX.XXX"  # вписать ip сервера веб внешний
mylan="10.50.240.0/24" # задаем локалку которой можно дмз
mydns="10.50.240.88" # днс для дмз

############################ DMZ Rulezz####
# Переходы для DMZ, порядок строк имеет значение (Шлюз, наша сеть, инет)
# Исходящий траффик со шлюза в DMZ (DMZ. интерфейс исходящий)
        ${fwcmd} add skipto 27000 all from me to ${dmz_mail_server},${dmz_web_server} out via ${dmz}
# Входящий траффик с DMZ на шлюз (DMZ. интерфейс входящий)
        ${fwcmd} add skipto 28000 all from ${dmz_mail_server},${dmz_web_server} to me in via ${dmz}
# Входящий траффик на DMZ с нашей сети (Lan. интерфейс входящий)
        ${fwcmd} add skipto 25000 all from ${mylan} to ${dmz_mail_server},${dmz_web_server} in via ${int}
# Разрешаем исходящие пакеты принятые на интерфейсе int, обработанные файрволом,
# и выходящие с интерфейса dmz
        ${fwcmd} add pass all from ${mylan} to ${dmz_mail_server},${dmz_web_server} out recv ${int} xmit ${dmz}
# Исходящий траффик с DMZ в нашу сеть (DMZ. интерфейс входящий)
        ${fwcmd} add skipto 26000 all from ${dmz_mail_server},${dmz_web_server} to ${mylan} in via ${dmz}
# Разрешаем исходящие пакеты принятые на интерфейсе dmz, обработанные файрволом,
# и выходящие с интерфейса int
        ${fwcmd} add pass all from ${dmz_mail_server},${dmz_web_server} to ${mylan} out recv ${dmz} xmit ${int}

# DMZ для в(c) инет(а)
# Входящий траффик на DMZ с инета (ext - входящий интерфейс)
        ${fwcmd} add skipto 29000 all from any to ${dmz_mail_server},${dmz_web_server} in via ${ext}
# Разрешаем исходящие пакеты принятые на интерфейсе ext, обработанные файрволом,
# и выходящие с интерфейса dmz
        ${fwcmd} add pass all from any to ${dmz_mail_server},${dmz_web_server} out recv ${ext} xmit ${dmz}
# Исходящий траффик с DMZ в инет (DMZ - входящий интерфейс)
        ${fwcmd} add skipto 31000 all from ${dmz_mail_server},${dmz_web_server} to any in via ${dmz}
# Разрешаем исходящие пакеты принятые на интерфейсе dmz, обработанные файрволом,
# и выходящие с интерфейса ext
        ${fwcmd} add pass all from ${dmz_mail_server},${dmz_web_server} to any out recv ${dmz} xmit ${ext}

################################################
# Входящий траффик на DMZ с нашей сети (Lan. интерфейс входящий)
# Пропускаем траффик, с уже установленным соединением
        ${fwcmd} add 25000 pass tcp from ${mylan} to ${dmz_mail_server},${dmz_web_server} in via ${int} established
# Разрешаем установку соединения на 21,22,25,80,110,995 порты наших серверов в DMZ
        ${fwcmd} add pass tcp from ${mylan} 1024-65535 to ${dmz_mail_server},${dmz_web_server} 21,22,25,80,110,995 in via ${int} setup
# Пропускаем ICMP-только нужные
        ${fwcmd} add pass icmp from ${mylan} to ${dmz_mail_server},${dmz_web_server} in via ${int} icmptype 8
# Разрешённые UDP
#       ${fwcmd} add pass udp from ${mylan} to ${dmz_mail_server},${dmz_web_server} in via ${int}
# Всё остальное убиваем и пишем в log
        ${fwcmd} add deny log all from any to any

# Исходящий траффик с DMZ в нашу сеть (DMZ. интерфейс входящий)
# Пропускаем траффик, с уже установленным соединением
   ${fwcmd} add 26000 pass tcp from ${dmz_mail_server},${dmz_web_server} to ${mylan} in via ${dmz} established
# Выпускаем ICMP-только нужные
        ${fwcmd} add pass icmp from ${dmz_mail_server},${dmz_web_server} to ${mylan} in via ${dmz} icmptype 0
# Разрешённые UDP
#       ${fwcmd} add pass udp from ${mylan} to ${dmz_mail_server},${dmz_web_server} in via ${dmz}
# Всё остальное убиваем и пишем в log
        ${fwcmd} add deny log all from any to any

################################################
# Исходящий траффик со шлюза в DMZ (DMZ. интерфейс исходящий)
# Все соединения разрешены
        ${fwcmd} add 27000 pass tcp from me to ${dmz_mail_server},${dmz_web_server} out via ${dmz}
# Выпускаем ICMP со шлюза на DMZ
        ${fwcmd} add pass icmp from me to ${dmz_mail_server},${dmz_web_server} out via ${dmz} icmptype 0,3,4,8,11
# Разрешаем шлюзу отвечать по 123 порту (время)
        ${fwcmd} add  pass udp from me 123 to ${dmz_mail_server},${dmz_web_server} 123 out via ${dmz}
# Всё остальное убиваем и пишем в log
        ${fwcmd} add deny log all from any to any

# Входящий траффик с DMZ на шлюз (DMZ. интерфейс входящий)
# Пропускаем траффик на шлюз, с уже установленным соединением
   ${fwcmd} add 28000 pass tcp from ${dmz_mail_server},${dmz_web_server} to me in via ${dmz} established
# Выпускаем ответы ICMP на шлюз, и возможность пинговать шлюз
        ${fwcmd} add pass icmp from ${dmz_mail_server},${dmz_web_server} to me in via ${dmz} icmptype 0,8
# Разрешаем сверять время с нашим шлюзом, он сервером времени работает
    ${fwcmd} add  pass udp from ${dmz_mail_server},${dmz_web_server} 123 to me 123 in via ${dmz}
# Всё остальное убиваем и пишем в log
        ${fwcmd} add deny log all from any to any

##################################################################################
# Входящий траффик на DMZ с инета (ext - входящий интерфейс)
# Пропускаем траффик, с уже установленным соединением
        ${fwcmd} add 29000 pass tcp from any to ${dmz_mail_server},${dmz_web_server} in via ${ext} established
# Разрешаем установку соединения на 80 порт наших почтовых серверов
        ${fwcmd} add pass tcp from any 1024-65535 to ${dmz_mail_server},${dmz_web_server} 80 in via ${ext} setup
# Разрешаем установку соединения на 25 порт нашего почтового сервера
        ${fwcmd} add pass tcp from any 1024-65535 to ${dmz_mail_server} 25 in via ${ext} setup limit dst-port 200
# Разрешаем ДНС, вписаны статические DNS Адреса
        ${fwcmd} add pass udp from ${mydns} 53 to ${dmz_mail_server},${dmz_web_server} 1024-65535 in via ${ext}
# Для TraceRoute
        ${fwcmd} add unreach port udp from any to ${dmz_mail_server},${dmz_web_server} 33435-33524 in via ${ext}
# Пропускаем ICMP, ответы на ping, возможность пинговать DMZ.
        ${fwcmd} add pass icmp from any to ${dmz_mail_server},${dmz_web_server} in via ${ext} icmptype 0,3,4,8,11
# Всё остальное убиваем и пишем в log
        ${fwcmd} add deny log all from any to any

# Исходящий траффик с DMZ в инет (DMZ - входящий интерфейс)
# Пропускаем траффик, с уже установленным соединением
   ${fwcmd} add 31000 pass tcp from ${dmz_mail_server},${dmz_web_server} to any in via ${dmz} established
# Разрешаем серверам обращаться к внешним ДНС, вписаны статические DNS Адреса
   ${fwcmd} add pass udp from ${dmz_mail_server},${dmz_web_server} 1024-65535 to ${mydns} 53 in via ${dmz}
# Разрешаем TraceRoute
        ${fwcmd} add pass udp from ${dmz_mail_server},${dmz_web_server} to any 33435-33524 in via ${dmz}
# Разрешаем установку соединения на 25 порты внешних серверов
# для нашего почтового сервера
        ${fwcmd} add pass tcp from ${dmz_mail_server} 1024-65535 to any 25 in via ${dmz}
# Пропускаем ICMP, ответы на ping, возможность самим пинговать IP-Адреса в инете.
        ${fwcmd} add pass icmp from ${dmz_mail_server},${dmz_web_server} to any in via ${dmz} icmptype 0,8
# Всё остальное убиваем и пишем в log
        ${fwcmd} add deny log all from any to any


Сеть DMZ через NAT

Добавлено: 2019-12-12 23:46:14
Alex Keda
а вы не пересобирая попробуйте
сдаётся мне, бридж нынче в ядре должен быть по дефолту или модулем подгружаться

Сеть DMZ через NAT

Добавлено: 2019-12-12 23:46:39
Alex Keda
ну, точно

Код: Выделить всё

manager# ls /boot/kernel| grep bri
bridgestp.ko
if_bridge.ko
ng_bridge.ko
manager# 

Сеть DMZ через NAT

Добавлено: 2019-12-13 1:25:28
Tekron
FreeBSD 10.3 насколько я помню в 10 версии нужно добавлять в ядро.
А можно допустим сделать еще один шлюз и уже за него вывести почтарь и веб сервер?
Вопрос только, как два шлюза будут общаться между собой и будут ли они вообще общаться?
Как понимаю для этого в таком случае нужно открыть порты по которым будет общаться почтарь эдж с эксчем ну и собственно веб (25,443, и тд).