Как окрыть портики на IPFW

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-20 15:02:06

Как открыть портики без проброса. Не подскажите как это сделать.
Допустим :

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

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
add 10301 allow from 192.168.1.10 to any 80,443 
Помогите разобраться ???

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

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Как окрыть портики на IPFW

Непрочитанное сообщение rmn » 2011-02-20 15:53:39

если у тебя один белый ip, то так сделать нельзя

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-20 16:07:57

Статический у меня, один. Может можно как то маскировать, а потом демаскировать обратно divertom???

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Как окрыть портики на IPFW

Непрочитанное сообщение rmn » 2011-02-20 19:30:36

klaster писал(а):Может можно как то маскировать, а потом демаскировать обратно divertom???
именно это и делает:

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

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 

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-20 20:13:48

rmn писал(а):
klaster писал(а):Может можно как то маскировать, а потом демаскировать обратно divertom???
именно это и делает:

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

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 pass all from xx.xx.227.101 to any 443 out via nfe0
add 10210 pass all from any 443 to 192.168.1.0/24 in via nfe0

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Как окрыть портики на IPFW

Непрочитанное сообщение rmn » 2011-02-20 20:29:26

rmn писал(а):если у тебя один белый ip, то так сделать нельзя

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-20 20:44:54

rmn писал(а):
rmn писал(а):если у тебя один белый ip, то так сделать нельзя
Ну а если у меня допустим в сети стоит mail server, web server, monitoring и все на разных локальных машин с разнами Ip.
Разве нельзя сделать чтоб divert маскировал
Пример :
Mail server - 192.168.1.6 и необходимо открыть только 25 порт.
Я так понемаю открыт будет 25 для всей локальной сети. Точно нельзя, чтоб мне голову не ломать ???

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Как окрыть портики на IPFW

Непрочитанное сообщение rmn » 2011-02-20 21:14:46

точно нельзя. Если ты открываешь, к примеру, порт 25, он будет открыт только для шлюза. Чтобы разрешить юзерам подключаться снаружи на определенный порт машины внутри твоей сети, делается проброс порта.

divert, по сути - тот же nat

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-20 21:23:38

rmn писал(а):точно нельзя. Если ты открываешь, к примеру, порт 25, он будет открыт только для шлюза. Чтобы разрешить юзерам подключаться снаружи на определенный порт машины внутри твоей сети, делается проброс порта.

divert, по сути - тот же nat
За это спасибо, понял.

У меня такой вопрос, вот мне ненравиться что надо писать после nat в версии 8.1 :

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

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  
Это же не безопасно allow all from any .... есть какие инварианты ???

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Как окрыть портики на IPFW

Непрочитанное сообщение rmn » 2011-02-20 21:35:37

klaster писал(а): У меня такой вопрос, вот мне ненравиться что надо писать после nat в версии 8.1 :

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

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  
Это же не безопасно allow all from any .... есть какие инварианты ???
канешн :)

в файле /usr/src/sys/netinet/ipfw/ip_fw_pfil.c изменить:

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

        case IP_FW_NAT:
        case IP_FW_REASS:
                goto again;             /* continue with packet */
на:

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

        case IP_FW_NAT:
                if (V_fw_one_pass)
                        break;
                goto again;
 
        case IP_FW_REASS:
                goto again;             /* continue with packet */
затем пересобрать ядро:

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

cd /usr/src
make buildkernel && make installkernel
и ребутнуться

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-20 22:37:07

Спасибо компилем.

Ну есть вопросик, а чем отличаеться :
/etc/sysctl.conf

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

net.inet.ip.fw.one_pass=1
от

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

allow all from any to any  

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Как окрыть портики на IPFW

Непрочитанное сообщение rmn » 2011-02-20 22:43:24

klaster писал(а): Ну есть вопросик, а чем отличаеться :
/etc/sysctl.conf

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

net.inet.ip.fw.one_pass=1
от

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

allow all from any to any  
тем, что первое - это опция (переменная) ядра, которая будет влиять на работу фаервола (конкретнее - порядок прохождения правил), а второе - правило фаервола ipfw разрешающее пакеты по любому протоколу с любого хоста на любой

не нужно сравнивать теплое с мягким :)

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-21 14:18:57

Спасибо с компилел, как написали все зароботала.

Единственное что хотел узнать, можно открывать порты таким способом ?

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

add 10200 pass all from xx.xx.xxx.101 to any 110 out via nfe0
add 10210 pass all from any 110 to 192.168.1.0/24 in via nfe0
а

то когда пробрасываешь в одну строчку неудобно потом искать какой порт, открыт :

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

nat 1 config log ip 94.101.227.101 reset same_ports deny_in redirect_port tcp 192.168.1.1:53 53 redirect_port udp 192.168.1.1:53 53 . итд.
Пример :
Но хотелось чтоб был проброс привиденный вверху для порта redirect_port tcp 192.168.1.1:143 10943.
А такие портики допустим как 22 я бы не хотел пробрасывать, а просто чтоб он был открыт на 22.
Как это реализовать ???


Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-21 15:35:47

я по эти примерам и делал у себя, только там показаны пробросы, для небольшого количества портов, а если надо открыть 30-40 портов (в одну строчку) запутаешься в поиски, когда искать будешь, вот я хотел узнать более гибкий вариант ???

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-21 20:52:02

Люди добрые объясните пожалуйста, как в ядерном нате просто портики открывать, а то я уже совсем запутался.
У меня только такой вариант :

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

nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in redirect_port tcp 192.168.1.1:53 53 redirect_port udp 192.168.1.1:53 53 redirect_port tcp 192.168.1.1:110 110 redirect_port tcp 192.168.1.1 143 143
add 10100 nat 1 ip from any to any via nfe0
Попробывал так не прокатило :

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

nat 1 config log ip xx.xx.xx.101 reset same_ports deny_in redirect_port tcp 192.168.1.1:53 53 redirect_port udp 192.168.1.1:53 53
add 10100 nat 1 ip from any to any via nfe0
nat 2 config log ip xx.xx.xx.101 reset same_ports deny_in redirect_port tcp 192.168.1.1:110 110 redirect_port tcp 192.168.1.1:80 80
add 10110 nat 2 ip from any to any via nfe0
Правило 10110 не пременилось по отношению к портам.

Поэтому очень тяжело когда много портов необходимо открыть, таким методом.
Предложите более эффективное решение ???

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-22 23:26:04

Помогите запутался с правилами, вообщем хочу открыть порт для веб сервера с Ip 192.168.1.2:80.
Я не хочу открывать для всей сети 192.168.1.0/24, только для одной машины.
Пример :

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

add 1012 pass tcp from 192.168.1.2 to xx.xx.xx.101 80
add 1013 pass tcp from xx.xx.xx.101 to 192.168.1.2 80
Подправьте пожалуйста ???

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-23 20:26:16

Кому интересно, что было что не работало правило, для открытия портов.
Ошибка в том что я после этого правила вставлял допустим :

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

nat 1 config log ip $pif reset same_ports deny_in redirect_port tcp $loc:53 53 redirect_port udp $loc:53 53 
$cmd 10100 nat 1 ip from any to any via $pif
вот это
$cmd 10101 pass tcp from any to $pif 80 
$cmd 10102 pass tcp from $pif to any 80 
Так мне никто и не подскозал пока сам не поставил правило по выше, перед тем как пробрасывать порты, и все заработало. Портики стали доступными.
Вот так надо было :

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

$cmd 1091 pass tcp from any to $pif 80 
$cmd 1092 pass tcp from $pif to any 80 
nat 1 config log ip $pif reset same_ports deny_in redirect_port tcp $loc:53 53 redirect_port udp $loc:53 53 redirect_port tcp
$cmd 10100 nat 1 ip from any to any via $pif
$cmd 65534 deny log all from any to any
Все работает.

Но к уважаемым формульчанинам, хочу обратиться и покозать лог который мне не очень нравиться, приведу небольшое написание ipfw

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


$cmd 1020 deny ip from any to 192.168.0.0/16 in recv $pif
$cmd 1030 deny ip from 192.168.0.0/16 to any in recv $pif
$cmd 1040 deny ip from any to 172.16.0.0/12 in recv $pif
$cmd 1050 deny ip from 172.16.0.0/12 to any in recv $pif
$cmd 1060 deny ip from any to 10.0.0.0/8 in recv $pif
$cmd 1070 deny ip from 10.0.0.0/8 to any in recv $pif
$cmd 1080 deny ip from any to 169.254.0.0/16 in recv $pif
$cmd 1090 deny ip from 169.254.0.0/16 to any in recv $pif
$cmd 1091 pass tcp from any to $pif 80 
$cmd 1092 pass tcp from $pif to any 80 
nat 1 config log ip $pif reset same_ports deny_in redirect_port tcp $loc:53 53 redirect_port udp $loc:53 53 redirect_port tcp
$cmd 10100 nat 1 ip from any to any via $pif
Проблема в том что когда я делаю /etc/netstart выдаёт ошибку(лог) :

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

nat: not found
Ругаясь на строчку

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

nat 1 config log ip $pif reset same_ports deny_in redirect_port tcp $loc:53 53 redirect_port udp $loc:53 53 redirect_port tcp
Если добавляю к этому правилу (cmd="ipfw -q add")

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

$cmd 1093 nat 1 config log ip $pif reset same_ports deny_in redirect_port tcp $loc:53 53 redirect_port udp $loc:53 53 redirect_port tcp
ошибка

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

ipfw: unrecognised option [-1] config
Как быть ???

Аватара пользователя
klaster
мл. сержант
Сообщения: 102
Зарегистрирован: 2011-01-05 13:35:18

Re: Как окрыть портики на IPFW

Непрочитанное сообщение klaster » 2011-02-23 20:51:42

Добовил переменную :

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

ipfw="ipfw -q"
$ipfw nat 1 config log ip $pif reset same_ports deny_in redirect_port tcp $loc:53 53 redirect_port udp $loc:53 53 redirect_port tcp
Ошибка ушла но правильно делать так ???