Имя пользователя:
Пароль:
 

Название темы: [решено] NATD, Portmapping и IPFW
Показать сообщение отдельно

Аватара для Negativ

Ветеран


Сообщения: 1051
Благодарности: 42

Профиль | Отправить PM | Цитировать


Telepuzik,
Спасибо за помощь.
Не хватало еще одного правила после вашего
Код: Выделить весь код
ipfw add allow ip from <внешний ip> to any out xmit stge0
Код: Выделить весь код
allow ip from any to <внешний ip> in via stge0
Итого:
в rc.conf:
Код: Выделить весь код
ifconfig_stge0="inet <внешний ip>  netmask <маска>"
ifconfig_msk0="inet <внутренний ip>  netmask <маска>"
defaultrouter="<ip шлюза по-умолчанию>"
hostname="имя вашего хоста"

named_enable="YES"
inetd_enable="NO"
sshd_enable="YES"
sendmail_enable="NONE"
gateway_enable="YES"
firewall_enable="YES"
firewall_type="MY"
natd_enable="YES"
natd_interface="stge0"
natd_flags="-f /etc/natd.conf"
dhcpd_enable="YES"
icmp_drop_redirect="YES"        # игнорируем перенаправленные ICMP пакеты
icmp_log_redirect="YES"         # включаем логинг ICMP REDIRECT
squid_enable="YES"
в natd.conf
Код: Выделить весь код
same_ports yes
use_sockets yes
interface stge0
unregistered_only yes
redirect_port tcp внутреннийip:порт порт
в rc.firewall
Код: Выделить весь код
        # Разрешаем трафик loopback интерфейсе
        ${fwcmd} add pass all ip from any to any via lo0

        # Заворачиваем исходящий трафик из локалки наружу через внешний интерфейс
        ${fwcmd} add divert natd ip from 192.168.1.0/24 to any out via stge0

        # Заворачиваем входящий трафик снаружи на внешний ip через внешний интерфейс
        ${fwcmd} add divert natd ip from any to <внешний ip> in via stge0

        # Разрешаем выход трафика с внешнего ip на любой ТОЛЬКО через внешний интерфейс
        ${fwcmd} add allow ip from <внешний ip> to any out xmit stge0

        # Разрешаем вход трафика снаружи на внешний ip через внешний интерфейс
        ${fwcmd} add allow ip from any to <внешний ip> in via stge0

        # Разрешаем весь TCP трафик с установленным соединением (Когда бит ACK сброшен и установлен SYN. См. RFC по установке TCP соединения)
        ${fwcmd} add allow tcp from any to any established

        # Разрешаем трафик внутри локалки через внутренний интерфейс
        ${fwcmd} add allow ip from 192.168.1.0/24 to 192.168.1.0/24 via msk0

        # Разрешаем трафик из локалки куда угодно через внутренний интерфейс (трафик поступает из локалки во внутренний интерфейс)
        ${fwcmd} add allow ip from 192.168.1.0/24 to any in via msk0

        # Разрешаем трафик из локалки куда угодно через внешний интерфейс (трафик из локалки выходит с внешнего интерфейса)
        ${fwcmd} add allow ip from 192.168.1.0/24 to any out via stge0

        # Разрешаем входящий трафик откуда угодно в локалку  через внешний интерфейс
        ${fwcmd} add allow ip from any to 192.168.1.0/24 in via stge0

        # Разрешаем исходящий трафик откуда угодно в локалку через внутренний интерфейс
        ${fwcmd} add allow ip from any to 192.168.1.0/24 out via msk0

        # Разрешаем весь UDP ходящий через внутренний интерфейс (Это необходимо если у вас в сети функционирует DNS и DHCP)
        ${fwcmd} add allow udp from any to any via msk0

        # Запрещаем все
        ${fwcmd} add deny log ip from any to any
P.S.: Последнее сообщение можно прикрепить в начало темы.

-------
В некоторые головы мысли приходят умирать


Отправлено: 11:48, 14-09-2010 | #23

Название темы: [решено] NATD, Portmapping и IPFW