Не работает редирект natd+ipfw

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Cardinal
мл. сержант
Сообщения: 76
Зарегистрирован: 2008-07-04 18:43:11
Откуда: Украина, Харьков
Контактная информация:

Не работает редирект natd+ipfw

Непрочитанное сообщение Cardinal » 2009-04-28 20:28:50

Собственно проблема. в rc.conf прописал

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

natd_enable="YES"
natd_flags="-f /etc/natd.conf"
В файле natd.conf следующее

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

interface vr0
same_ports yes
use_sockets yes
unregistered_only yes
redirect_port tcp 172.16.0.251:3389 193.109.xxx.xxx:3389
Правила файрвола следующие

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

[Mm][Yy])
        # ==============================================================
        # This is my ruleset for ipfw(8). 16 February 2009
        # ==============================================================

        FwCMD="/sbin/ipfw"      # собственно где лежит бинарник ipfw
        LanOut="vr0"            # внешний интерфейс
        LanIn="re0"             # внутренний интерфейс
        IpOut="193.109.xxx.xxx" # внешний IP адрес машины
        IpIn="172.16.0.254"     # внутренний IP машины
        NetMask="12"            # маска сети (если она разная для внешней
                                # и внутренней сети - придётся вводить ещё
                                # одну переменную, но самое забавное, что
                                # можно и забить - оставить 24 - всё будет
                                # работать, по крайней мере я пробовал -
                                # работаало на 4-х машинах, в разных сетях,
                                # с разными масками - настоящими разными! но -
                                # это неправильно.)
        NetIn="172.16.0.0"      # Внутренняя сеть
        TranspIP="172.16.0.252" # IP для транспорта через прокси
        vpn="172.16.1.248"

        # Разрешаем весь траффик по внутреннему интерфейсу (петле)
        # Вообще я во многих местах читал что без него может ничё не заработать вообще
        # и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
        # так что без него и правда - никуда.
        ${FwCMD} add 100 pass all from any to any via lo0
        # рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 (вот честно - ни
        # одного пакета по этим правилам не зарубилось за всё время... Может в этом
        # моё счастье? :))
        ${FwCMD} add 200 deny all from any to 127.0.0.0/8
        ${FwCMD} add 300 deny ip from 127.0.0.0/8 to any

        # Проверяем - соответствует ли пакет динамическим правилам:
        ${FwCMD} add 900 check-state

        # Вводим запреты:
        # режем частные сети на внешнем интерфейсе - по легенде он у нас
        # смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
        # рубим частные сeти
        ${FwCMD} add 993 allow all from any to any 3389
        ${FwCMD} add 1000 deny log ip from any to 10.0.0.0/8 in via ${LanOut}
#        ${FwCMD} add 1100 deny log ip from any to 172.16.0.0/12 in via ${LanOut}
        ${FwCMD} add 1200 deny log ip from any to 192.168.0.0/16 in via ${LanOut}
        ${FwCMD} add 1300 deny log ip from any to 0.0.0.0/8 in via ${LanOut}
        # рубим автоконфигуреную частную сеть
        ${FwCMD} add 1400 deny log ip from any to 169.254.0.0/16 in via ${LanOut}
        ## рубаем мультикастовые рассылки
        ${FwCMD} add 1500 deny log ip from any to 240.0.0.0/4 in via ${LanOut}
        # рубим фрагментированные icmp
        ${FwCMD} add 1600 deny log icmp from any to any frag
        # рубим широковещательные icmp на внешнем интерфейсе
        ${FwCMD} add 1700 deny log icmp from any to 255.255.255.255 in via ${LanOut}
        ${FwCMD} add 1800 deny log icmp from any to 255.255.255.255 out via ${LanOut}
        # а тут собственно файрволл и начался:

        # отправляем на squid (в данном случае - прокси прозрачный)
        ${FwCMD} add 2100 fwd 127.0.0.1,3128 tcp from ${TranspIP} to any 80 via ${LanOut}

        # пропускаем траффик через трансляцию сетевых адресов (NAT)
        ${FwCMD} add 10000 divert natd all from ${NetIn}/${NetMask} to any 5190 via ${LanOut}   # Открытый порт аськи для всех
        ${FwCMD} add 10100 divert natd all from 172.16.0.250 to any via ${LanOut}               # Server
        ${FwCMD} add 10200 divert natd all from 172.16.0.251 to any via ${LanOut}               # Netfire
        ${FwCMD} add 10300 divert natd all from 172.16.0.252 to any via ${LanOut}               # Virtual mashine
        ${FwCMD} add 10350 divert natd all from 172.16.0.253 to any via ${LanOut}               # New Server
        ${FwCMD} add 10400 divert natd all from 172.16.0.5 to any via ${LanOut}                 # Michail Ivanovich
        ${FwCMD} add 10500 divert natd all from 172.16.1.5 to any via ${LanOut}                 # Sasha Sergeev
        ${FwCMD} add 10600 divert natd all from ${vpn}/29 to any via ${LanOut}                  # VPN NAT
        # ============================================
        # Begin users config for NAT 10700-10800 rules
        # ============================================
        ${FwCMD} add 10700 divert natd all from 172.16.41.5 to any via ${LanOut}
        ${FwCMD} add 10701 divert natd all from 172.16.108.1 to any via ${LanOut}               # Server on buh
        # ============================================
        # End users config for NAT
        # ============================================
        ${FwCMD} add 20000 divert natd ip from any to any in via ${LanOut}                      # Входящий трафик для NAT

        # рубим траффик к частным сетям через внешний интерфейс
        # заметтьте - эти правила отличаются от тех что были выше!
        ${FwCMD} add 20100 deny log ip from 10.0.0.0/8 to any out via ${LanOut}
#        ${FwCMD} add 20200 deny log ip from 172.16.0.0/12 to any out via ${LanOut}
        ${FwCMD} add 20300 deny log ip from 192.168.0.0/16 to any out via ${LanOut}
        ${FwCMD} add 20400 deny log ip from 0.0.0.0/8 to any out via ${LanOut}
        # рубим автоконфигуреную частную сеть
        ${FwCMD} add 20500 deny log ip from 169.254.0.0/16 to any out via ${LanOut}
        # рубаем мультикастовые рассылки
        ${FwCMD} add 20600 deny log ip from 224.0.0.0/4 to any out via ${LanOut}
        # рубаем мультикастовые рассылки
        ${FwCMD} add 20700 deny log ip from 240.0.0.0/4 to any out via ${LanOut}

        # разрешаем все установленные соединения (если они установились -
        # значит по каким-то правилам они проходили.)
        ${FwCMD} add 21000 allow tcp from any to any established
        # разрешаем весь исходящий траффик (серверу-то в инет можно? :))
        ${FwCMD} add 21100 allow ip from ${IpOut} to any out xmit ${LanOut}

        # Разрешаем весь трафик на порт 3389 для RDP
        ${FwCMD} add 21101 allow all from any to any 3389
        # VPN-LAN  - выпускаем подсеть VPN и внутрь локалки а на внешние адреса
        # без прописанного адреса в секции NAT достучимся только до внешнего интерфейса
        ${FwCMD} add 21110 allow all from ${vpn}/29 to any
        ${FwCMD} add 21120 allow all from any to ${vpn}/29
        # разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
        ${FwCMD} add 22230 allow tcp from any to ${IpOut} 10100 via ${LanOut}
        #  VPN-connect - это порт для даемона MPD, на него поступают запросы на авторизацию
        ${FwCMD} add 22300 allow tcp from any to any 1723 keep-state
        # GRE for MPD5 - в этот протокол инкапсулируются все пакеты
        # установившегося соединения VPN
        ${FwCMD} add 22400 allow gre from any to any
        # по поводу следующих трёх правил, для tcp, udp и icmp - их можно
        # заменить одним правилом:
        #${FwCMD} add allow ip from any to any via ${LanIn}
        # но для удобства наладки и контроля происходящего я предпочитаю три отдельных
        # правила, хотя могут быть грабли - например протокол gre не пройдёт -
        # придётся стругать отдельное правило для него, типа
        #${FwCMD} add allow gre from any to any via ${LanIn}
        # итак:
        # разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
        ${FwCMD} add 22500 allow tcp from any to any via ${LanIn}
        # разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
        ${FwCMD} add 22600 allow udp from any to any via ${LanIn}
        # разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
        ${FwCMD} add 22700 allow icmp from any to any via ${LanIn}
        # запрещаем всё и всем. Если тип файрволла не open то это правило добавится
        # автоматически, но всё-же ну его. Лучше сам. Надёжней.

        ########################################################
        # That's all, folks deny and log everything ############
        ########################################################
        # Reject & log all other udp connections
        ${FwCMD} add 64000 set 5 deny log udp from any to any

        # Reject & log everything else
        ${FwCMD} add 64100 set 5 deny log all from any to any

        ${FwCMD} add 65000 deny log ip from any to any
    ;;
В общем по идее все нормально. Работать должно, но нет, никак не хочет.
Человеческая глупость дает представление о бесконечности.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
mike345
сержант
Сообщения: 170
Зарегистрирован: 2007-12-09 15:57:55

Re: Не работает редирект natd+ipfw

Непрочитанное сообщение mike345 » 2009-04-28 20:51:34

А так?

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

redirect_port tcp 172.16.0.251:3389 3389

Аватара пользователя
Cardinal
мл. сержант
Сообщения: 76
Зарегистрирован: 2008-07-04 18:43:11
Откуда: Украина, Харьков
Контактная информация:

Re: Не работает редирект natd+ipfw

Непрочитанное сообщение Cardinal » 2009-04-29 10:09:39

Неа, так же не хочет. Вроде и правильно настроено, а все равно не катит.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Не работает редирект natd+ipfw

Непрочитанное сообщение schizoid » 2009-04-30 11:16:28

ipfw show
логи фаервола
+ разрешение доступа к 172.16.0.251 на внутрениий интерфейс роутера, ну и назад.
ядерный взрыв...смертельно красиво...жаль, что не вечно...