Muff's website forum

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

SMF - Just Installed!

Автор Тема: Открыть порты в IPFW  (Прочитано 24757 раз)

klaster

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 46
    • Просмотр профиля
Открыть порты в IPFW
« : Февраля 19, 2011, 03:25:52 pm »

Проблема такая, у меня имееться рутер на Freebsd 8.1 stable.
С двумя сетевыми картами прописанными в rc.conf
ifconfig_nfe0="ether 00:xx:xx:xx:xx:xx"
ifconfig_nfe0_alias0="xx.xx.227.101 netmask 255.255.254.0 -rxcsum"
defaultrouter="xx.xx.226.1"
ifconfig_rl0="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_rl0_alias0="inet 192.168.1.4 netmask 255.255.255.0"

IPFW

firewall_enable="YES"
firewall_type="/etc/firewall"
gateway_enable="YES"
firewall_logging="YES"

Файл firewall :

add 1010 allow ip from any to any via rl0
add 1020 deny ip from any to 192.168.0.0/16 in recv nfe0
add 1030 deny ip from 192.168.0.0/16 to any in recv nfe0
add 1040 deny ip from any to 172.16.0.0/12 in recv nfe0
add 1050 deny ip from 172.16.0.0/12 to any in recv nfe0
add 1060 deny ip from any to 10.0.0.0/8 in recv nfe0
add 1070 deny ip from 10.0.0.0/8 to any in recv nfe0
add 1080 deny ip from any to 169.254.0.0/16 in recv nfe0
add 1090 deny ip from 169.254.0.0/16 to any in recv nfe0
#nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in
add 10100 nat 1 ip from any to any via nfe0
#add 65534 deny all from any to any // Если открываю это правило интернет падает.

Мой локальный адресс машинны Win Xp 192.168.1.2. Необходимо открыть порты для всей локальной сети 80, 22, 25. Какое правило необходимо добавить чтоб реализовалась эту проблема ??? (Очень много примеров из нета перепробывал эффект нулевой)
Записан

klaster

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 46
    • Просмотр профиля
Re:Открыть порты в IPFW
« Ответ #1 : Февраля 19, 2011, 08:50:46 pm »

Проблема решена, оказалось что в верси 8.1 есть проблемка :
Цитировать
В версии FreeBSD 8.1-RELEASE не работает параметр sysctl one_pass - трафик после прохода через нат  возвращается обратно в фаервол. Чтобы избавиться от этой неприятности надо делать правило "allow all from any to any" после правила ната. Эту проблему должны будут исправить в релизе 8.2.

Надо просто сделать

nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in
add 10100 nat 1 ip from any to any via nfe0
add 10200 allow all from any to any

Что то такое и будет у вас все порхать а портики пробрасывайте по своему вкусу.
Пример :

nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in redirect_port tcp 1.2.3.4:6881 6881

Все в одну строчку пишем, этим правилом мы открыли порт 6881 на 1.2.3.4

Записан

muff

  • Administrator
  • Долгожитель
  • ***
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 283
    • Просмотр профиля
    • IT, Network, Beer!
Re:Открыть порты в IPFW
« Ответ #2 : Февраля 19, 2011, 09:27:46 pm »

По логике вещей - все верно. При попадании правила в НАТ, оно не выводится из файрвола... А следующее правило - запретить вся и все. После НАТа нужно было разрешить обмен внутренней сети.
При наличии НАТа я правила строю обычно так:
1. Обмен на loopback интерфейсе.
2. Разрешаю установленные соединения
3. Разрешаю установку соединений на определенные порты (в случае необходимости - с определенных IP)
4. Запрет установки соединений к интерфейсам маршрутизатора
5. НАТ
6. Разрешение обмена данными локальным сетям.
7. Запрет все и вся...
Записан
Если нет ответа, то давайте подумаем...

klaster

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 46
    • Просмотр профиля
Re:Открыть порты в IPFW
« Ответ #3 : Февраля 20, 2011, 12:18:36 pm »

Единственное что хотелось бы, еще портики открывать без проброса. Не подскажите как это сделать.
Допустим :

nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in redirect_port tcp 1.2.3.4:6881 6881
add 10100 nat 1 ip from any to any via nfe0
add 10200 allow all from any to any

Я хочу не пробрасывать с одного на другой, а просто открывать локальный Ip 192.168.1.10 :443
 Не подскажите как это осуществить, а то пока не получаеться.
Пробую так
add 10300 allow tcp from any 80, 443 to 192.168.1.10  

Чёта не получаеться ???


« Последнее редактирование: Февраля 20, 2011, 01:56:06 pm от klaster »
Записан

muff

  • Administrator
  • Долгожитель
  • ***
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 283
    • Просмотр профиля
    • IT, Network, Beer!
Re:Открыть порты в IPFW
« Ответ #4 : Февраля 20, 2011, 09:08:38 pm »

Если порт 80 и 443 открыты на IP 192.168.1.10, то правило файрвола должно формулироваться так:
add allow tcp from any to 192.168.1.10 80,443В каком именно месте размещать это правило - смотрите инструкцию выше. Потому что непонятно, где именно в сети размещается айпишник 192.168.1.10.
Записан
Если нет ответа, то давайте подумаем...

klaster

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 46
    • Просмотр профиля
Re:Открыть порты в IPFW
« Ответ #5 : Февраля 21, 2011, 03:53:51 pm »

Дальше локалки 80, 25 порт не уходит.
А я хотел бы чтоб они были открыти в интернет, а не в локалке.

add 1010 allow ip from any to any via rl0
add 1020 deny ip from any to 192.168.0.0/16 in recv nfe0
add 1030 deny ip from 192.168.0.0/16 to any in recv nfe0
add 1040 deny ip from any to 172.16.0.0/12 in recv nfe0
add 1050 deny ip from 172.16.0.0/12 to any in recv nfe0
add 1060 deny ip from any to 10.0.0.0/8 in recv nfe0
add 1070 deny ip from 10.0.0.0/8 to any in recv nfe0
add 1080 deny ip from any to 169.254.0.0/16 in recv nfe0
add 1090 deny ip from 169.254.0.0/16 to any in recv nfe0
nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in
add 10100 nat 1 ip from any to any via nfe0
add 10200 pass all from xx.xx.xx.101 to any 80,25 out via nfe0
add 10210 pass all from any 80,25 to 192.168.1.0/24 in via nfe0
add 65534 deny all from any to any

Что необходимо добавить ?
Записан

muff

  • Administrator
  • Долгожитель
  • ***
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 283
    • Просмотр профиля
    • IT, Network, Beer!
Re:Открыть порты в IPFW
« Ответ #6 : Февраля 21, 2011, 06:29:01 pm »

Коннекты к серверу должны обрабатываться ДО НАТ-а.

Не буду извращаться, переделывая твой конфиг, а для примера щас попробую создать новый.... Навожу "кусок" /etc/rc.firewall с блоком правил для тебя:

[Nn][Aa][Tt])

oif="nfe0"
iif="rl0"
inet="192.168.1.0/24"
onet="xx.xx.226.0/23"
natip="xx.xx.227.101"

        #NAT
        ${fwcmd} nat 1 config ip ${natip} unreg_only \
                              redirect_port tcp 192.168.1.100:3389 3389

        # Stop spoofing
        ${fwcmd} add deny all from ${inet} to any in via ${oif}
        ${fwcmd} add deny all from ${onet} to any in via ${iif}

        # Stop RFC1918 nets on the outside interface
        ${fwcmd} add deny all from any to 10.0.0.0/8 via ${oif}
        ${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}

        # Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
        # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
        # on the outside interface
        ${fwcmd} add deny all from any to 0.0.0.0/8 via ${oif}
        ${fwcmd} add deny all from any to 169.254.0.0/16 via ${oif}
        ${fwcmd} add deny all from any to 192.0.2.0/24 via ${oif}
        ${fwcmd} add deny all from any to 224.0.0.0/4 via ${oif}
        ${fwcmd} add deny all from any to 240.0.0.0/4 via ${oif}

        # Stop RFC1918 nets on the outside interface
        ${fwcmd} add deny all from 10.0.0.0/8 to any via ${oif}
        ${fwcmd} add deny all from 172.16.0.0/12 to any via ${oif}

        # Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
        # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
        # on the outside interface
        ${fwcmd} add deny all from 0.0.0.0/8 to any via ${oif}
        ${fwcmd} add deny all from 169.254.0.0/16 to any via ${oif}
        ${fwcmd} add deny all from 192.0.2.0/24 to any via ${oif}
        ${fwcmd} add deny all from 224.0.0.0/4 to any via ${oif}
        ${fwcmd} add deny all from 240.0.0.0/4 to any via ${oif}

        # NAT forwarding
        ${fwcmd} add nat 1 ip from ${inet} to any xmit ${oif}
        ${fwcmd} add nat 1 ip from any to ${natip} recv ${oif}

        # Allow ICMP
        ${fwcmd} add allow icmp from any to any icmptypes 0,3,8,11

        # Allow TCP through if setup succeeded
        ${fwcmd} add pass tcp from any to any established

        # Allow setup
        ${fwcmd} add pass tcp from any to me 22 setup
        ${fwcmd} add pass tcp from any to me 25 setup
        ${fwcmd} add pass tcp from any to me 80 setup

        # DNS
        ${fwcmd} add pass udp from any to me 53
        ${fwcmd} add pass udp from me 53 to any

        # Allow my setup TCP connection
        ${fwcmd} add pass tcp from me to any setup

        # Deny incoming
        ${fwcmd} add deny all from any to any via ${oif}

;;

При такой конфигурации должно все работать.
Сорри, не тестировал. Только набросал основные правила. Но, кажется, ошибки не допустил.

Кстати, у тебя ошибка в rc.conf.
Указывай не firewall_type, а firewall_script.
Пример:
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="NAT"
Записан
Если нет ответа, то давайте подумаем...
 

Страница сгенерирована за 0.415 секунд. Запросов: 28.