The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
ipfw очень нужна помощь, !*! rb26dett, 28-Янв-09, 12:22  [смотреть все]
Добрый день всем! не могу понять, где я не прав в настройке ipfw в freebsd 6.0
Ситуация такая - стоит ADSL модем, внутренний адрес- 192.168.1.1 (роутером), машина с фрей - 2 сетевые, одна - на модем ( адрес - 192.168.1.2), другая вовнутрь - 192.168.0.10, соответственно внутренняя сеть 192.168.0.0/24. Дальше стоит тестовая машина, которая должна в идеале начать выходить в нет через фрю. Адрес ее - пусть 192.168.0.20, шлюзом - 192.168.0.10, ДНС - ДНС провайдера, пусть xxx.xxx.xxx.xxx
ядро собрал с поддержкой ipfirewall и ipdivert

rc.conf:

defaultrouter="192.168.1.1"
gateway_enable="YES"
hostname="bla.bla"
ifconfig_rl0="inet 192.168.0.10 netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.1.2 netmask 255.255.255.0"
inetd_enable="YES"
natd_enable="YES"
natd_interface="rl1"
firewall_enable="YES"
firewall_script="/etc/firewall.sh"
firewall_logging="YES"
trafd_enable="YES"

firewall.sh:

#!/bin/sh

/sbin/ipfw -f flush
/sbin/ipfw add 50 allow all from any to any via lo
/sbin/ipfw add 100 divert natd all from 192.168.0.0/24 to any via rl1
/sbin/ipfw add 150 divert natd all from any to me via rl1
/sbin/ipfw add 200 allow all from me to any
/sbin/ipfw add 250 allow all from any to me
# понимаю, что вышеуказанное правило мягко говоря небезопасно, но тестовая машина даже
# так в инет не выходит, потом уже добавлять буду tcp 80,53, udp 53 и остальное по
# необходимости для машины с фрей, когда данную проблему решу
/sbin/ipfw add 300 allow all from any to any via rl0
# насколько я понимаю, это правило должно пускать внутренних юзеров куда угодно и по
# чему угодно

resolv.conf:

domain   bla
nameserver  xxx.xxx.xxx.xxx

И при всех этих настройках тестовая машина в интернет не выходит...и не пингует даже ничего внешнего. Все работает только при следующем содержании firewall.sh - (ну это и понятно)

#!/bin/sh

/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via rl1
/sbin/ipfw add allow all from any to any

Очень прошу помощи - что я не так сделал, и почему, если не сложно, заранее спасибо!

  • ipfw очень нужна помощь, !*! Andrew, 17:35 , 28-Янв-09 (1)
    Сдается мне, ошибка в этом правиле
    "/sbin/ipfw add 100 divert natd all from 192.168.0.0/24 to any via rl1"

  • ipfw очень нужна помощь, !*! mazzay, 09:49 , 29-Янв-09 (3)
    >#!/bin/sh
    >
    >/sbin/ipfw -f flush
    >/sbin/ipfw add 50 allow all from any to any via lo
    >/sbin/ipfw add 100 divert natd all from 192.168.0.0/24 to any via rl1
    >
    >/sbin/ipfw add 150 divert natd all from any to me via rl1
    >
    >/sbin/ipfw add 200 allow all from me to any
    >/sbin/ipfw add 250 allow all from any to me

    приходящий пакет от внешнего ресурса натится, то есть меняется адрес получателя с внешнего адреса твоего интерфейса на адрес из внутренней подсети (правилом 150)
    У нас получился пакет идущий с внешнего адреса на внутреннюю подсеть и он не соответствует ни одному правилу, поскольку пропускаются пакеты только с адресами получателя me (это 192.168.0.10 и 192.168.1.2)
    если я не ошибся то нужно правило типа
    add allow all from any to 192.168.0.0/24 (для теста пойдет)
    плюс посмотрите куда упирается трафик командой ipfw show и почитайте вот эту статью
    http://www.lissyara.su/?id=1536
    особо обратив внимание на рисунок и зеленый текст на черном фоне

    • ipfw очень нужна помощь, !*! rb26dett, 09:46 , 09-Апр-09 (4)
      Доброго дня всем!!! К сожалению, не было возможности заниматься фрей почти все это время.
      Что получилось на днях - почитал вышеуказанные ссылки - спасибо огромное, что имеем -


      #!/bin/sh

      /sbin/ipfw/ -q -f flush
      /sbin/ipfw add allow all from any to any via lo
      /sbin/ipfw add allow ip from 192.168.0.0/24 to 192.168.0.0/24 via rl0
      /sbin/ipfw add divert natd ip from 192.168.0.0/24 to any out via rl1
      /sbin/ipfw add divert natd ip from any to 192.168.1.2 in via rl1
      /sbin/ipfw add allow ip from 192.168.1.2 to any out via rl1
      /sbin/ipfw add allow ip from any to 192.168.1.2 in via rl1
      /sbin/ipfw add allow udp from 192.168.0.0/24 to any 53 in via rl0
      /sbin/ipfw add allow udp from 192.168.0.0/24 to any 53 out via rl1
      /sbin/ipfw add allow udp from any 53 to 192.168.0.0/24 in via rl1
      /sbin/ipfw add allow udp from any 53 to 192.168.0.0/24 out via rl0
      /sbin/ipfw add allow tcp from 192.168.0.0/24 to any 80,53 in via rl0
      /sbin/ipfw add allow tcp from 192.168.0.0/24 to any 80,53 out via rl1
      /sbin/ipfw add allow tcp from any 80,53 to 192.168.0.0/24 in via rl1
      /sbin/ipfw add allow tcp from any 80,53 to 192.168.0.0/24 out via rl0

      # для начала здесь и ниже разрешил только dns и http ну и ниже - почту
      или, немного сократив, насколько я это понял -


      #!/bin/sh

      /sbin/ipfw/ -q -f flush
      /sbin/ipfw add 100 allow all from any to any via lo
      /sbin/ipfw add 200 allow ip from any to any via rl0
      /sbin/ipfw add 300 divert natd ip from 192.168.0.0/24 to any out via rl1
      /sbin/ipfw add 350 divert natd ip from any to 192.168.1.2 in via rl1
      /sbin/ipfw add 400 allow ip from 192.168.1.2 to any out via rl1
      /sbin/ipfw add 450 allow udp from any to 192.168.1.2 in via rl1
      /sbin/ipfw add 500 allow udp from 192.168.0.0./24 to any 53 out via rl1
      /sbin/ipfw add 550 allow udp from any 53 to 192.168.0.0/24 in via rl1
      /sbin/ipfw add 600 allow tcp from 192.168.0.0/24 to any 80,53,25,110 out via rl1
      /sbin/ipfw add 650 allow tcp from any 80,53,25,110 to 192.168.0.0/24 in via rl1
      /sbin/ipfw add 700 allow icmp from any to any

      Все работает, наконец-то. Большая просьба - оцените, кому не трудно, конфиг. С точки зрения безопасности, в первую очередь. Правильно ли, если нет, то куда примерно копать.
      Меня как-то настораживают правила типа 550, 650 - вроде выглядит как открытие портов снаружи вовнутрь, а не разрешение прохождения ответных пакетов.
      И как в такой схеме будет выглядеть проброс порта,  - 4899, пусть, извне к любой машине из внутренней сети, пусть 192.168.0.3
      Заранее благодарен, с нетерпением жду ответов.





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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