Подробное руководство по ipfw nat
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
в статье терминуса net.inet.ip.fw.one_pass=0 потому что в те времена(8.1) ребята из freebsd поломали ядерный нат и net.inet.ip.fw.one_pass=1 не работал. вот зачем терминус в статье навтыкал тагов и скипов. сейчас вы можете смело ставить net.inet.ip.fw.one_pass=1(если конечно вы не используете 8.1 или другую ветку с кодом тех времен). это обьясняет пропажу трафика - пакеты проходили через все наты.
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
точнее нормально работали только те пакеты, которым повезло не попасть во все наты кроме последнего
так то, да
так то, да
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 17
- Зарегистрирован: 2013-02-12 21:48:30
- Откуда: Saint Petersburg
Re: Подробное руководство по ipfw nat
С одним ip и натом получается пример 1 статьи, и все работает.Alvares писал(а):С одним каналом и одним НАТом проблемы те же? Что-то в листинг вкурить тяжело...
Получается конфиг:Alvares писал(а):Код: Выделить всё
$fw add 10601 prob 0.2 nat 1 ip from
[/b]Код: Выделить всё
$ip_out
если заНАТить вот так? и поработать с этим IP?Код: Выделить всё
to any out xmit $if_out0 $fw add 10602 nat 1 ip from any to $ip_out0 in recv $if_out0
Код: Выделить всё
$fw add 100 allow ip from any to any via lo0
$fw add 200 deny log ip from any to 127.0.0.0/8
$fw add 300 deny log ip from 127.0.0.0/8 to any
$fw add 1040 allow ip from any to any via $if_in0
$fw add 1050 deny ip from any to 192.168.0.0/16 in recv $if_out0
$fw add 1060 deny ip from 192.168.0.0/16 to any in recv $if_out0
$fw add 1070 deny ip from any to 172.16.0.0/12 in recv $if_out0
$fw add 1080 deny ip from 172.16.0.0/12 to any in recv $if_out0
$fw add 1090 deny ip from any to 10.0.0.0/8 in recv $if_out0
$fw add 10100 deny ip from 10.0.0.0/8 to any in recv $if_out0
$fw add 10110 deny ip from any to 169.254.0.0/16 in recv $if_out0
$fw add 10120 deny ip from 169.254.0.0/16 to any in recv $if_out0
$fw nat 1 config log ip $ip_out0 same_ports reset deny_in
$fw add 10601 nat 1 ip from $ip_out0 to any out xmit $if_out0
$fw add 10602 nat 1 ip from any to $ip_out0 in recv $if_out0
$fw add 65534 deny log all from any to any
Код: Выделить всё
net.inet.ip.fw.one_pass=1
Код: Выделить всё
00050 0 0 deny log logamount 256 ip from any to any not antispoof in
00100 12 720 allow ip from any to any via lo0
00200 0 0 deny log logamount 256 ip from any to 127.0.0.0/8
00300 0 0 deny log logamount 256 ip from 127.0.0.0/8 to any
01040 2510 232742 allow ip from any to any via bge1
01050 0 0 deny ip from any to 192.168.0.0/16 in recv bge0
01060 0 0 deny ip from 192.168.0.0/16 to any in recv bge0
01070 0 0 deny ip from any to 172.16.0.0/12 in recv bge0
01080 0 0 deny ip from 172.16.0.0/12 to any in recv bge0
01090 0 0 deny ip from any to 10.0.0.0/8 in recv bge0
10100 0 0 deny ip from 10.0.0.0/8 to any in recv bge0
10110 0 0 deny ip from any to 169.254.0.0/16 in recv bge0
10120 0 0 deny ip from 169.254.0.0/16 to any in recv bge0
10601 4 304 nat 1 ip from 11.22.33.44 to any out xmit bge0
10602 9 584 nat 1 ip from any to 11.22.33.44 in recv bge0
65534 329 33198 deny log logamount 256 ip from any to any
65535 0 0 deny ip from any to any
Код: Выделить всё
kernel: ipfw: 65534 Deny UDP 10.1.100.10:42361 121.128.164.81:59421 in via bge1.100
Спасибо, попробую с учетом этой информации.vadim64 писал(а):так то, да
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
да просто верните всё как было в сообщении http://forum.lissyara.su/viewtopic.php? ... 75#p342659 и выставьте net.inet.ip.fw.one_pass=1
до завтра
до завтра
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 17
- Зарегистрирован: 2013-02-12 21:48:30
- Откуда: Saint Petersburg
Re: Подробное руководство по ipfw nat
Вернул, теперь пиг до интернета есть, но браузер выдает "Соединение было сброшено".vadim64 писал(а):да просто верните всё как было в сообщении http://forum.lissyara.su/viewtopic.php? ... 75#p342659 и выставьте net.inet.ip.fw.one_pass=1
до завтра
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
добрый день
если вы вернули состояние http://forum.lissyara.su/viewtopic.php? ... 75#p342659 и выставили net.inet.ip.fw.one_pass=1, то давайте посмотрим следующее
боритесь с мыслями забить и сделать опять через кучу правил
если вы вернули состояние http://forum.lissyara.su/viewtopic.php? ... 75#p342659 и выставили net.inet.ip.fw.one_pass=1, то давайте посмотрим следующее
Код: Выделить всё
ipfw show
ipfw add 10101 allow ip from $ip_out0 to any out xmit $if_out0
ipfw add 10102 allow ip from $ip_out0_0 to any out xmit $if_out0
ipfw add 10103 allow ip from $ip_out0_1 to any out xmit $if_out0
ipfw add 10104 allow ip from $ip_out0_2 to any out xmit $if_out0
ipfw add 10105 allow ip from $ip_out0_3 to any out xmit $if_out0
ipfw show
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 17
- Зарегистрирован: 2013-02-12 21:48:30
- Откуда: Saint Petersburg
Re: Подробное руководство по ipfw nat
А говорят что телепатов не бывает Здравствуйте!vadim64 писал(а):боритесь с мыслями забить и сделать опять через кучу правил
Код: Выделить всё
serv# ipfw show
00050 0 0 deny log logamount 256 ip from any to any not antispoof in
00100 48 2400 allow ip from any to any via lo0
00200 0 0 deny log logamount 256 ip from any to 127.0.0.0/8
00300 0 0 deny log logamount 256 ip from 127.0.0.0/8 to any
01040 5619 443063 allow ip from any to any via bge1
01050 0 0 deny log logamount 256 ip from any to 192.168.0.0/16 in recv bge0
01060 0 0 deny log logamount 256 ip from 192.168.0.0/16 to any in recv bge0
01070 0 0 deny log logamount 256 ip from any to 172.16.0.0/12 in recv bge0
01080 0 0 deny log logamount 256 ip from 172.16.0.0/12 to any in recv bge0
01090 0 0 deny log logamount 256 ip from any to 10.0.0.0/8 in recv bge0
10100 1 56 deny log logamount 256 ip from 10.0.0.0/8 to any in recv bge0
10110 0 0 deny log logamount 256 ip from any to 169.254.0.0/16 in recv bge0
10120 0 0 deny log logamount 256 ip from 169.254.0.0/16 to any in recv bge0
10201 472 57435 prob 0.200000 nat 1 ip from any to any out xmit bge0
10202 493 59296 prob 0.250000 nat 2 ip from any to any out xmit bge0
10203 465 56590 prob 0.333000 nat 3 ip from any to any out xmit bge0
10204 522 61019 prob 0.500000 nat 4 ip from any to any out xmit bge0
10205 465 56024 nat 5 ip from any to any out xmit bge0
10301 489 98615 nat 1 ip from any to 11.22.33.44 in recv bge0
10302 348 82782 nat 2 ip from any to 11.22.33.45 in recv bge0
10303 454 89699 nat 3 ip from any to 11.22.33.46 in recv bge0
10304 394 86805 nat 4 ip from any to 11.22.33.47 in recv bge0
10305 538 103110 nat 5 ip from any to 11.22.33.48 in recv bge0
20620 4616 729949 allow ip from any to any
65534 0 0 deny log logamount 256 ip from any to any
65535 0 0 deny ip from any to any
Код: Выделить всё
serv# ipfw show
00050 0 0 deny log logamount 256 ip from any to any not antispoof in
00100 32 1600 allow ip from any to any via lo0
00200 0 0 deny log logamount 256 ip from any to 127.0.0.0/8
00300 0 0 deny log logamount 256 ip from 127.0.0.0/8 to any
01040 3378 262248 allow ip from any to any via bge1
01050 0 0 deny log logamount 256 ip from any to 192.168.0.0/16 in recv bge0
01060 0 0 deny log logamount 256 ip from 192.168.0.0/16 to any in recv bge0
01070 0 0 deny log logamount 256 ip from any to 172.16.0.0/12 in recv bge0
01080 1 56 deny log logamount 256 ip from 172.16.0.0/12 to any in recv bge0
01090 0 0 deny log logamount 256 ip from any to 10.0.0.0/8 in recv bge0
10100 2 371 deny log logamount 256 ip from 10.0.0.0/8 to any in recv bge0
10101 0 0 allow ip from 81.222.88.154 to any out xmit bge0
10102 0 0 allow ip from 81.222.88.155 to any out xmit bge0
10103 0 0 allow ip from 81.222.88.156 to any out xmit bge0
10104 0 0 allow ip from 81.222.88.157 to any out xmit bge0
10105 0 0 allow ip from 81.222.88.158 to any out xmit bge0
10110 0 0 deny log logamount 256 ip from any to 169.254.0.0/16 in recv bge0
10120 0 0 deny log logamount 256 ip from 169.254.0.0/16 to any in recv bge0
10201 439 50497 prob 0.200000 nat 1 ip from any to any out xmit bge0
10202 428 50041 prob 0.250000 nat 2 ip from any to any out xmit bge0
10203 378 43946 prob 0.333000 nat 3 ip from any to any out xmit bge0
10204 396 45391 prob 0.500000 nat 4 ip from any to any out xmit bge0
10205 432 50155 nat 5 ip from any to any out xmit bge0
10301 476 81803 nat 1 ip from any to 11.22.33.44 in recv bge0
10302 423 81367 nat 2 ip from any to 11.22.33.45 in recv bge0
10303 363 75235 nat 3 ip from any to 11.22.33.46 in recv bge0
10304 509 86397 nat 4 ip from any to 11.22.33.47 in recv bge0
10305 461 85190 nat 5 ip from any to 11.22.33.48 in recv bge0
20620 3764 570809 allow ip from any to any
65534 0 0 deny log logamount 256 ip from any to any
65535 0 0 deny ip from any to any
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
убедитесь что в /etc/sysctl.conf не задаётся никакое значение для net.inet.ip.fw.on_pass=0
приведите скрипт ipfw к виду
сделайте
приведите скрипт ipfw к виду
Код: Выделить всё
$fw -f flush
ipfw enable one_pass
$fw add 50 deny log ip from any to any not antispoof in
$fw add 100 allow ip from any to any via lo0
$fw add 200 deny log ip from any to 127.0.0.0/8
$fw add 300 deny log ip from 127.0.0.0/8 to any
$fw add 5061 allow all from any to any via $if_in0
$fw add 9080 deny log ip from any to 192.168.0.0/16 in recv $if_out0
$fw add 9090 deny log ip from 192.168.0.0/16 to any in recv $if_out0
$fw add 9100 deny log ip from any to 172.16.0.0/12 in recv $if_out0
$fw add 9110 deny log ip from 172.16.0.0/12 to any in recv $if_out0
$fw add 9120 deny log ip from any to 10.0.0.0/8 in recv $if_out0
$fw add 9130 deny log ip from 10.0.0.0/8 to any in recv $if_out0
$fw add 9140 deny log ip from any to 169.254.0.0/16 in recv $if_out0
$fw add 9150 deny log ip from 169.254.0.0/16 to any in recv $if_out0
$fw add 9160 deny log icmp from any to 255.255.255.255 in recv $if_out0
$fw add 9170 deny log icmp from any to 255.255.255.255 out xmit $if_out0
$fw nat 1 config log ip $ip_out0 same_ports reset deny_in
$fw nat 2 config log ip $ip_out0_0 same_ports reset deny_in
$fw nat 3 config log ip $ip_out0_1 same_ports reset deny_in
$fw nat 4 config log ip $ip_out0_2 same_ports reset deny_in
$fw nat 5 config log ip $ip_out0_3 same_ports reset deny_in
$fw add 10201 prob 0.2 nat 1 ip from any to any out xmit $if_out0
$fw add 10202 prob 0.25 nat 2 ip from any to any out xmit $if_out0
$fw add 10203 prob 0.333 nat 3 ip from any to any out xmit $if_out0
$fw add 10204 prob 0.5 nat 4 ip from any to any out xmit $if_out0
$fw add 10205 prob 1 nat 5 ip from any to any out xmit $if_out0
$fw add 10301 nat 1 ip from any to $ip_out0 in recv $if_out0
$fw add 10302 nat 2 ip from any to $ip_out0_0 in recv $if_out0
$fw add 10303 nat 3 ip from any to $ip_out0_1 in recv $if_out0
$fw add 10304 nat 4 ip from any to $ip_out0_2 in recv $if_out0
$fw add 10305 nat 5 ip from any to $ip_out0_3 in recv $if_out0
#$fw add 20620 allow all from any to any
$fw add 65534 deny log all from any to any
Код: Выделить всё
shutdown -r now
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 17
- Зарегистрирован: 2013-02-12 21:48:30
- Откуда: Saint Petersburg
Re: Подробное руководство по ipfw nat
Сделал как Вы рекомендовали, в логе
Пакеты на 53 порт - это dns провайдера
Код: Выделить всё
serv# tail /var/log/security
Feb 19 10:57:46 serv kernel: ipfw: 65534 Deny UDP 10.1.100.10:61547 192.168.0.134:161 in via bge1.100
Feb 19 10:57:46 serv kernel: ipfw: 65534 Deny UDP 10.1.100.10:61547 192.168.0.182:161 in via bge1.100
Feb 19 10:57:46 serv kernel: ipfw: 65534 Deny UDP 10.1.100.10:53279 81.222.80.2:53 in via bge1.100
Feb 19 10:57:47 serv kernel: ipfw: 65534 Deny UDP 10.16.100.10:53279 81.222.84.2:53 in via bge1.100
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
Код: Выделить всё
sysctl -a | grep one_pass
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 17
- Зарегистрирован: 2013-02-12 21:48:30
- Откуда: Saint Petersburg
Re: Подробное руководство по ipfw nat
vadim64 писал(а):????Код: Выделить всё
sysctl -a | grep one_pass
Код: Выделить всё
net.inet.ip.fw.one_pass: 1
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
давайте аську в личку или телефон
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-09-08 21:12:05
Re: Подробное руководство по ipfw nat
Может кому-то пригодится, победил таки пример номер 3, но я обошелся одним экземпляром NAT'а, так и не понял зачем их два в примере. (честно пытался делать по примеру - ничего не заработало, пришлось думать самому )
У меня задача стояла так. Нужно было сделать так, чтобы:
1. Пользователи, которым нужен NAT были описаны в таблице table(1).
2. Веб сервер внутри сети с ip 192.168.1.179, был доступен по внешнему ip $EXT_IP0 как снаружи так и внутри локальной сети $localnet.
У меня получились вот такие правила:
Хотя если нужно, чтобы у всех был NAT без разбора, то все это можно просто заменить на 2 правила:
Обратите внимание на последнее правило add nat 1 ip from any to any, никаких via и т.п. вещей не указывается, т.к. "натить" нужно будет, как на $EXT_IF так и на $LAN_IF, хотя можно написать 2, более конкретных правила, указав в каждом свой интерфейс, но это на любителя.
У меня задача стояла так. Нужно было сделать так, чтобы:
1. Пользователи, которым нужен NAT были описаны в таблице table(1).
2. Веб сервер внутри сети с ip 192.168.1.179, был доступен по внешнему ip $EXT_IP0 как снаружи так и внутри локальной сети $localnet.
У меня получились вот такие правила:
Код: Выделить всё
localnet=192.168.0.0/16
EXT_IP0=8.8.8.8
EXT_IF=em0
LAN_IF=em1
# Описываем настройки НАТ для внешнего ip + описываем редиректы из локалки во внешнюю сеть.
nat 1 config ip $EXT_IP0 log reset same_ports \
redirect_port tcp 192.168.1.175:5900 5900 \
redirect_port tcp 192.168.1.179:80 80
# Отправляем весь трафик во внешний мир через сконфигурированный NAT.
add nat 1 ip from table(1) to any out { recv $LAN_IF or recv ng* } xmit $EXT_IF
add nat 1 ip from any to $EXT_IP0 in recv $EXT_IF
##### NAT LoopBack: BEGIN
# Натим локалку в сторону http сервера.
add nat 1 tcp from $localnet to 192.168.1.179 http out xmit $LAN_IF
add nat 1 tcp from $localnet to $EXT_IP0 http in recv $LAN_IF
# Натим http сервер в сторону локалки.
add nat 1 tcp from 192.168.1.179 http to $localnet out xmit $LAN_IF
add nat 1 tcp from 192.168.1.179 http to $EXT_IP0 in recv $LAN_IF
##### NAT LoopBack: END
# Squid transparent redirect
add fwd 127.0.0.1,3129 tcp from any to not 192.168.0.0/16 http via $LAN_IF
# все оставшееся разрешено
add 65000 allow all from any to any
Код: Выделить всё
# Описываем настройки НАТ для внешнего ip + описываем редиректы из локалки во внешнюю сеть.
nat 1 config ip $EXT_IP0 log reset same_ports \
redirect_port tcp 192.168.1.175:5900 5900 \
redirect_port tcp 192.168.1.179:80 80
add nat 1 ip from any to any
Код: Выделить всё
add nat 1 ip from any to any via $EXT_IF
add nat 1 ip from any to any via $LAN_IF
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
я сдаюсьvadim64 писал(а):давайте аську в личку или телефон
без тагов пакеты летят в экземпляры ната по принципу "куда аллах пашлёт"
пинги ходят ок, ибо это соединения запрос-ответ
остальные соединения - как повезёт
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
чуть со стула не упалMETAJIJI писал(а): ##### NAT LoopBack
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 17
- Зарегистрирован: 2013-02-12 21:48:30
- Откуда: Saint Petersburg
Re: Подробное руководство по ipfw nat
Все равно спасибо за оказанную помощь и консультации, продолжу эксперименты, о результатах сообщуvadim64 писал(а): я сдаюсь
без тагов пакеты летят в экземпляры ната по принципу "куда аллах пашлёт"
пинги ходят ок, ибо это соединения запрос-ответ
остальные соединения - как повезёт
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-09-08 21:12:05
Re: Подробное руководство по ipfw nat
Именно такая терминология применяется у многих "вендоров" сетевого оборудования Еще есть SIP ALG и т.п. Это я для себя опорные слова оставил по которым гуглилvadim64 писал(а):чуть со стула не упалMETAJIJI писал(а): ##### NAT LoopBack
-
- проходил мимо
- Сообщения: 1
- Зарегистрирован: 2013-02-23 8:58:45
Re: Подробное руководство по ipfw nat
приветствую всех.
Посоветуйте как правильно настроть IPFW nat + проброс портов внутрь.
Общая схема:
Что нужно получить:
1. доступ из вне по порту 3389
2. с внутреннего сервера нет возможности выходить в инетрнет по любым протоколам
имеются 2 интерфейса
И собственно правила доступа:
все замечательно работает. Но мне кажется, что это не очень безопасное решение. т.к. в любой момент с хоста 10,0,0,101 и портом источника 3389 можно попасть в весь интернет (не проверял еще). подскажите более лучшую конфигурацию.
Посоветуйте как правильно настроть IPFW nat + проброс портов внутрь.
Общая схема:
Код: Выделить всё
|TS_server | <---3389----< |de1-FreeBSD-de0| <-----3389----< |public_network 172.16.0.0/24|
|10.0.0.101| | 10.0.0.254 |
| 172.16.1.90 |
1. доступ из вне по порту 3389
2. с внутреннего сервера нет возможности выходить в инетрнет по любым протоколам
имеются 2 интерфейса
Код: Выделить всё
de0 #external subnet (172.16.1.0/24)
de1 #internal subnet (10.0.0.0/24)
Код: Выделить всё
ipfw add 50 check-state log
ipfw nat 1 config log ip 172.16.1.90 redirect_port tcp 10.0.0.101:3389 3389
ipfw add 100 nat 1 log tcp from any to me 3389 in via de0
ipfw add 101 nat 1 log tcp from any to 10.0.0.101 out via de1 keep-state
ipfw add 102 nat 1 log tcp from 10.0.0.101 3389 to any in via de1
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-09-08 21:12:05
Re: Подробное руководство по ipfw nat
Все верно у вас, если запретить ходить в интернет по tcp протоколу и порту 3389, то ваш проброс работать не будет - "проброшенный сервер" не сможет ответить.
Да и найти прокси-сервер например, работающий на порту 3389 будет проблематично Хотя не исключен вариант с ssh тоннелем, но стоит ли оно того в конечном счете?
P.S. Более опасно держать открытый всему миру открытый RDP порт. Пробросили бы хотябы на 33890 или что-то в этом духе, главное, чтобы это был не стандартный порт, это я так к слову.
Да и найти прокси-сервер например, работающий на порту 3389 будет проблематично Хотя не исключен вариант с ssh тоннелем, но стоит ли оно того в конечном счете?
P.S. Более опасно держать открытый всему миру открытый RDP порт. Пробросили бы хотябы на 33890 или что-то в этом духе, главное, чтобы это был не стандартный порт, это я так к слову.
- Gamerman
- капитан
- Сообщения: 1723
- Зарегистрирован: 2009-05-17 21:01:23
- Откуда: Украина, Ужгород - Днепр
- Контактная информация:
Re: Подробное руководство по ipfw nat
Как пробросить порт х на порт у, на том же интерфейсе? Используя НАТ - знаю, но зачем городить огород для такой простой задачи?
Глюк глюком вышибают!
- Gamerman
- капитан
- Сообщения: 1723
- Зарегистрирован: 2009-05-17 21:01:23
- Откуда: Украина, Ужгород - Днепр
- Контактная информация:
Re: Подробное руководство по ipfw nat
Вспомнил:
Код: Выделить всё
$cmd 00201 fwd $ip_ext,25 tcp from any to $ip_ext 590
$cmd 00202 fwd $ip_int,25 tcp from any to $ip_int 590
Глюк глюком вышибают!
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
это не проброс, это пересыл, заголовки не меняются
хорошо, если подошло для вашей задачи
хорошо, если подошло для вашей задачи
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
Добрый день. Имеется домашний роутер на FreeBSD 9.1-Stable
Использую связку IPFW+NAT (Первый пример в статье)
em0 смотрит к провайдеру, IP динамический.
em1 - в локалку.
One_pass в /etc/sysctl.conf имеется
/etc/rc.conf выглядит так:
Скрипт с правилами файрвола (/etc/firewall)
На em1 работает dhcpd, но 192.168.1.10 зафиксирован по MAC, фиксированный и динамический диапазоны не пересекаются. При указанных настройках интернет работает, а вот порт, проброшенный на NAS, снаружи закрыт.
Помогите найти причину.
Использую связку IPFW+NAT (Первый пример в статье)
em0 смотрит к провайдеру, IP динамический.
em1 - в локалку.
One_pass в /etc/sysctl.conf имеется
Код: Выделить всё
net.inet.ip.fw.one_pass=1
Код: Выделить всё
hostname="gate"
#Configuring network interfaces
ifconfig_em0="DHCP -tso -rxcsum"
ifconfig_em1="inet 192.168.1.1 netmask 255.255.255.0"
sshd_enable="YES" #Start ssh daemon
powerd_enable="YES" #Start powerd daemon
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
#Setup firewall
gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/firewall"
#Starting DHCP-server
dhcpd_enable="YES"
dhcpd_ifaces="em1"
Код: Выделить всё
#!/bin/sh
#Variables
FwCmd="/sbin/ipfw"
LanOut="em0"
LanIn="em1"
IpIn="192.168.1.1"
#Reset all entries
${FwCmd} -f flush
#Temporary rule
#add 100 allow all from any to any via em0
#Rules for lo0
${FwCmd} add 1000 allow ip from any to any via lo0
${FwCmd} add 1005 deny ip from any to 127.0.0.0/8
${FwCmd} add 1007 deny ip from 127.0.0.0/8 to any
#Enable NAT
${FwCmd} add 1009 nat 1 ip from any to any via ${LanOut}
#Allow some ICMP traffic
${FwCmd} add 1010 allow icmp from any to any icmptypes 0,8,11
#Allow all in local network
${FwCmd} add 1030 allow all from any to any in recv ${LanIn}
${FwCmd} add 1030 allow all from any to any out xmit ${LanIn}
#${FwCmd} add 1040 allow ip from ${LanIn} to any out via ${LanIn}
#${FwCmd} add 1040 allow ip from ${LanIn} to any out via ${LanIn}
#Disable private LAN on LanOut
${FwCmd} add 1050 deny log ip from any to 192.168.0.0/16 in recv ${LanOut}
${FwCmd} add 1060 deny log ip from 192.168.0.0/16 to any in recv ${LanOut}
${FwCmd} add 1070 deny log ip from any to 172.16.0.0/12 in recv ${LanOut}
${FwCmd} add 1080 deny log ip from 172.16.0.0/12 to any in recv ${LanOut}
${FwCmd} add 1090 deny log ip from any to 10.0.0.0/8 in recv ${LanOut}
${FwCmd} add 1100 deny log ip from 10.0.0.0/8 to any in recv ${LanOut}
${FwCmd} add 1110 deny log ip from any to 169.254.0.0/16 in recv ${LanOut}
${FwCmd} add 1120 deny log ip from 169.254.0.0/16 to any in recv ${LanOut}
#Deny broadcast
${FwCmd} add 1200 deny log icmp from any to 255.255.255.255 in recv ${LanOut}
${FwCmd} add 1210 deny log icmp from 255.255.255.255 to any out xmit ${LanOut}
#Allow SSH in local network
#${FwCmd} add 2010 allow tcp from any to any 22 in recv ${LanIn} #setup
#NAT rules
${FwCmd} nat 1 config log if ${LanOut} reset same_ports deny_in redirect_port tcp 192.168.1.10:51413 51314 redirect_port udp 192.168.1.10:51413 51413
#deny all other
${FwCmd} add 10140 deny log ip from any to any
Помогите найти причину.
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-09-08 21:12:05
Re: Подробное руководство по ipfw nat
В конфиге nat'а, уберите опцию deny_in и все у вас заработает.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
Да, удаление deny_in помогло, но тут же открылся 22-й порт наружу, пришлось заставить его принудительно слушать только внутренний интерфейс. Искренне считал, что deny_in запрещает все, кроме перечисленного в redirect_port.