Помогите с правилами ipfw

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Labaman
рядовой
Сообщения: 23
Зарегистрирован: 2012-11-25 14:01:44

Помогите с правилами ipfw

Непрочитанное сообщение Labaman » 2014-08-15 18:16:48

омогите прописать нужные правила ipfw:
Есть шлюз из сети 192.168.0.0/24 в сеть 192.168.1.0/24 со squid'ом.
использую ipfw и natd. Сейчас настройки минимальны:
Внешний интерфейс re1 (192.168.1.100) - берет инет из 192.168.1.0/24 внутренний re0 (192.168.0.1) - раздает все и вся на подсеть 192.168.0.0/24

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

add 4000 divert natd ip from any to any via nfe0
add fwd 127.0.0.1,3128 tcp from any to any 80 via ue0
add 65500 allow ip from any to any
Собственно требуется сделать так, чтобы юзвери из подсети 192.168.0.0/24, кроме определенных ip (пусть будет 192.168.0.10 и 192.168.0.22, например) не видели подсеть 192.168.1.0/24, т.е. все что им нужно это раздача инета из этой подсети.
Ну и пробросить порты, причем не 1 в 1, а, например любой запрос поступающий на порт 111 внешнего интерфейса шлюза (192.168.1.100), например на 192.168.0.111 на порт 222.
Заранее благодарю за помощь.

Хостинговая компания 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/

underground
рядовой
Сообщения: 45
Зарегистрирован: 2014-01-30 13:41:40

Re: Помогите с правилами ipfw

Непрочитанное сообщение underground » 2014-08-16 9:31:57

Всем доброго времени суток!!!
У меня схожая проблема, может быть уважаемый Labaman найдет часть решения у меня.

Есть сервер с двумя сетевыми интерфейсами. Первый смотрит в Интернет с белым IP – 217.12.х.х, а второй 192.168.0.100 в локалку LAN-1 192.168.0.0/24 . В этой сети стоит еще один сервер с FreeBSD 9.2 первый сетевой интерфейс 192.168.0.210 смотрит в LAN-1, второй 192.168.20.210 смотрит в LAN-2 192.168.20.0/24. На ней поднят NAT, IPFW и др. Клиенты из сети LAN-2 имеют доступ в Интернет.
Мне нужно, чтобы клиенты из сети LAN-2 192.168.20.0/24 попадали на сервер LAN-1 через IP 192.168.0.100
При открытом типе IPFW это получается, но мне нужно закрыть LAN-2 для клиентов из сети LAN-1

Ниже привожу список действующих правил:

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

oot@FreeBSD:/ # cat /etc/ipfw.rules
ipfw -q -f flush

LanOut="re1"
LanIn="re2"
IpOut="192.168.0.210"
IpIn="192.168.20.210"
cmd="ipfw -q add"
ks="keep-state"
skip="skipto 800"


$cmd 005 allow all from any to any via $LanIn
$cmd 006 allow all from any to any via lo0
$cmd 007 pass tcp from any to 192.168.20.52 8181 in recv $LanOut
$cmd 010 allow tcp from me to any out via $LanOut keep-state uid squid
$cmd 011 fwd 127.0.0.1,3129 tcp from 192.168.20.0/24 to any 1-65535 out via $LanOut
$cmd 012 divert natd ip from any to any in via $LanOut
$cmd 013 check-state

###################################################
#####FOR OUTBOUND TRAFFIC ON OUTSIDE INTERFACE#####
###################################################
$cmd 016 allow all from any to 192.168.0.100 out via $LanOut
$cmd 017 allow all from any to 192.168.0.100 in via $LanOut
$cmd 018 allow all from 192.168.0.100 to any out via $LanOut
$cmd 019 allow all from 192.168.0.100 to any in via $LanOut

$cmd 020 $skip tcp from any to 217.29.116.1 53 out via $LanOut setup $ks
$cmd 021 $skip tcp from any to 217.29.116.2 53 out via $LanOut setup $ks
$cmd 040 $skip tcp from any to any 80 out via $LanOut setup $ks
$cmd 050 $skip tcp from any to any 443 out via $LanOut setup $ks
$cmd 060 $skip tcp from any to any 25 out via $LanOut setup $ks
$cmd 061 $skip tcp from any to any 110 out via $LanOut setup $ks
$cmd 070 $skip tcp from me to any out via $LanOut setup $ks uid root
$cmd 080 $skip icmp from any to any out via $LanOut $ks
$cmd 090 $skip tcp from any to any 37 out via $LanOut setup $ks
$cmd 100 $skip tcp from any to any 119 out via $LanOut setup $ks
$cmd 110 $skip tcp from any to any 22 out via $LanOut setup $ks
$cmd 120 $skip tcp from any to any 43 out via $LanOut setup $ks
$cmd 130 $skip udp from any to any 123 out via $LanOut $ks


###################################################
#####FOR INCOMING TRAFFIC ON OUTSIDE INTERFACE#####
###################################################

$cmd 301 deny all from 172.16.0.0/12 to any in via $LanOut
$cmd 302 deny all from 10.0.0.0/8 to any in via $LanOut
$cmd 303 deny all from 127.0.0.0/8 to any in via $LanOut
$cmd 304 deny all from 0.0.0.0/8 to any in via $LanOut
$cmd 305 deny all from 169.254.0.0/16 to any in via $LanOut
$cmd 306 deny all from 192.0.2.0/24 to any in via $LanOut
$cmd 307 deny all from 204.152.64.0/23 to any in via $LanOut
$cmd 308 deny all from 224.0.0.0/3 to any in via $LanOut
$cmd 309 deny all from any to any 445 in via $LanOut
$cmd 315 deny tcp from any to any 113 in via $LanOut
$cmd 320 deny tcp from any to any 137 in via $LanOut
$cmd 321 deny tcp from any to any 138 in via $LanOut
$cmd 322 deny tcp from any to any 139 in via $LanOut
$cmd 323 deny tcp from any to any 81 in via $LanOut
$cmd 330 deny all from any to any frag in via $LanOut
$cmd 370 allow tcp from any to me 80 in via $LanOut setup limit src-addr 2
$cmd 380 allow tcp from any to me 22 in via $LanOut setup limit src-addr 2
$cmd 399 deny icmp from any to any in via $LanOut
$cmd 400 allow tcp from any to 192.168.20.2 dst-port 8080,21 via re1
$cmd 401 allow tcp from any to 192.168.20.2 dst-port 8080,21 via re2

$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 801 allow ip from any to any

$cmd 999 deny log all from any to any

#############THE END###############root@FreeBSD:/ # 
Пробовал правила, присваивая им номера 002, 003 и 014, 015:

allow all from 192.168.0.100 to any
allow all from any to 192.168.0.100

allow all from 192.168.0.100 to any via $LanOut
allow all from any to 192.168.0.100 via $LanOut

allow tcp from 192.168.0.100 20,21 to any via $LanOut
allow tcp from any to 192.168.0.100 20,21 via $LanOut

но не получается.

Уже третью неделю бьюсь... Помогите, пожалуйста, понять, что я делаю не так, и почему не работают правила?
Заранее всем благодарен и признателен за Ваши ответы и разъяснения

С уважением,
Илья

snorlov
подполковник
Сообщения: 3923
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Помогите с правилами ipfw

Непрочитанное сообщение snorlov » 2014-08-16 11:18:19

Нафиг стоко правил то? У вас шлюз интернета позволяет иметь дополнительную таблицу маршрутизации? Если да, то просто пропишите на нем сетку lan-2, на внутреннем роутере снимите нат, т.е. сделайте его обычным роутером, ну и пропишите правила доступа с интенетовского шлюза к lan-2, и с lan-2 к нему, а все остальное запретите...

Labaman
рядовой
Сообщения: 23
Зарегистрирован: 2012-11-25 14:01:44

Re: Помогите с правилами ipfw

Непрочитанное сообщение Labaman » 2014-08-16 12:10:06

Так, ладно с большинством вопросов разобрался.
Остался самый главный:
У меня при текущем подходе из локальной подсети (192.168.0.0/24) не видно внешней подсети (192.168.1.0/24). Как сделать так, чтобы подсеть 192.168.0.0/24 видела подсеть 192.168.1.0/24?

snorlov
подполковник
Сообщения: 3923
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Помогите с правилами ipfw

Непрочитанное сообщение snorlov » 2014-08-16 12:24:15

Станции виндовые, поэтому 3-и способа:
1. Заставить всех регистрироваться в одном днс'е
2. Поставить в каждом сегменте по сервису WINS и настроить репликацию друг на друга
3. Всех свести в один сегмент, при этом настроить чтобы не было броадкастов, wins мода 0х8
А больше никак ...

Labaman
рядовой
Сообщения: 23
Зарегистрирован: 2012-11-25 14:01:44

Re: Помогите с правилами ipfw

Непрочитанное сообщение Labaman » 2014-08-16 12:29:56

По-поводу DNS по-подробнее, если можно.
На самом деле мне нужно куда меньше - в подсети 192.168.1.0/24 торчит только один ADSL роутер c адресом 192.168.1.1
Мне нужно чтобы роутер был доступен с моего компа с адресом 192.168.0.11, а все остальные и не должны догадываться о его существовании.

snorlov
подполковник
Сообщения: 3923
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Помогите с правилами ipfw

Непрочитанное сообщение snorlov » 2014-08-16 12:38:00

Может не получиться, поскольку некоторые adsl-роутеры натят только ту внутренную сетку, к который принадлежит их ip и вдобавок там не прописать дополнительный маршрут на другую сеть. А так смотрите на свою модельку и ее свойства...

underground
рядовой
Сообщения: 45
Зарегистрирован: 2014-01-30 13:41:40

Re: Помогите с правилами ipfw

Непрочитанное сообщение underground » 2014-08-16 12:42:05

Вот и у меня ситуация схожая, только вместо роутера - компьютер (192.168.0.100), на котором лежат шары, а остальные пользователи сети LAN-1 (192.168.0.0/24) не должны подозревать о существовании пользователей сети LAN-2 (192.168.20.0/24), кроме этого сервера (192.168.0.100).

Labaman
рядовой
Сообщения: 23
Зарегистрирован: 2012-11-25 14:01:44

Re: Помогите с правилами ipfw

Непрочитанное сообщение Labaman » 2014-08-16 12:57:13

Блин ну на линуксе как-то у меня без дополнительной настройки модема все шло....
Неужели никак пробросить нельзя?

underground
рядовой
Сообщения: 45
Зарегистрирован: 2014-01-30 13:41:40

Re: Помогите с правилами ipfw

Непрочитанное сообщение underground » 2014-08-16 13:09:50

Я просто не могу понять, где у меня ошибка...
Вот смотрите: для LAN-2 (192.168.20.0/24) вся сеть LAN-1(192.168.0.0/24) является внешней. Изнутри, т.е. из LAN-2 наружу все разрешено. Причем если я ставлю firewall_type="OPEN" в /etc/rc.conf, то сразу же можно попасть из LAN-2 в LAN-1 вообще на любую машину, что не так страшно, но и из LAN-1 в LAN-2 тоже с любой, чего я всеми силами хочу избежать.

Labaman
рядовой
Сообщения: 23
Зарегистрирован: 2012-11-25 14:01:44

Re: Помогите с правилами ipfw

Непрочитанное сообщение Labaman » 2014-08-17 6:37:48

Вот взял netstat с работающей машины, правда linux:

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

netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.252 U         0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
Я полагаю, что мне нужно довести мой netstat

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

 netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGS         0       87   nfe0
127.0.0.1          link#2             UH          0        0    lo0
192.168.0.0/24     link#3             U           0      306    ue0
192.168.0.1        link#3             UHS         0        0    lo0
192.168.1.0/24     link#1             U           0       92   nfe0
192.168.1.2        link#1             UHS         0        0    lo0

Примерно до такого же состояния:

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

 netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGS         0       87   nfe0
127.0.0.1          link#2             UH          0        0    lo0
192.168.0.0/24   192.168.1.1             U           0      306    ue0
192.168.0.1        192.168.1.1           UHS         0        0    lo0
192.168.1.0/24     192.168.1.1          U           0       92   nfe0
192.168.1.2        192.168.1.1             UHS         0        0    lo0
Вот только подскажите как?

snorlov
подполковник
Сообщения: 3923
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Помогите с правилами ipfw

Непрочитанное сообщение snorlov » 2014-08-17 11:01:29

underground писал(а):Я просто не могу понять, где у меня ошибка...
Вот смотрите: для LAN-2 (192.168.20.0/24) вся сеть LAN-1(192.168.0.0/24) является внешней. Изнутри, т.е. из LAN-2 наружу все разрешено. Причем если я ставлю firewall_type="OPEN" в /etc/rc.conf, то сразу же можно попасть из LAN-2 в LAN-1 вообще на любую машину, что не так страшно, но и из LAN-1 в LAN-2 тоже с любой, чего я всеми силами хочу избежать.
У вас нет понимания как работает ipfw, почитайте статью на сайте, там кажется есть и диаграмма хождения пакетов по правилам...

underground
рядовой
Сообщения: 45
Зарегистрирован: 2014-01-30 13:41:40

Re: Помогите с правилами ipfw

Непрочитанное сообщение underground » 2014-08-18 11:05:48

snorlov писал(а): У вас нет понимания как работает ipfw, почитайте статью на сайте, там кажется есть и диаграмма хождения пакетов по правилам...
Если Вас не затруднит, дайте ссылочку на сайт... Возможно мы имеем в виду разные сайты...

snorlov
подполковник
Сообщения: 3923
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Помогите с правилами ipfw

Непрочитанное сообщение snorlov » 2014-08-18 11:22:22

underground писал(а):
snorlov писал(а): У вас нет понимания как работает ipfw, почитайте статью на сайте, там кажется есть и диаграмма хождения пакетов по правилам...
Если Вас не затруднит, дайте ссылочку на сайт... Возможно мы имеем в виду разные сайты...
http://www.lissyara.su/articles/freebsd ... /ipfw_nat/