URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 49174
[ Назад ]
Исходное сообщение
"Раздел полезных советов: Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено auto_tips , 10-Фев-09 10:21
Для начала надо пересобрать ядро со следующими опциями options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #enable logging to syslogd(8)
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
options IPFIREWALL_NAT #ipfw kernel nat support
options LIBALIAS
в /etc/make.conf:
CFLAGS+= -DIPFIREWALL_NAT
Далее пересобираем ядро:
cd /usr/src/
make buildkernel KERNCONF=Yourkernel && make installkernel KERNCONF=Yourkernel
shutdown -r now
Далее кусок файла конфигурации с примером.
192.168.1.132 - ip адрес сетевой карты смотрящей наружу
останое внутренние адреса
#!/bin/sh
# здесь просто удаляю старые правила
ipfw -f flush
ipfw nat 122 delete && ipfw nat 123 delete
# разрещаю все через loopback
ipfw add allow all from any to any via lo0
# делаю нат на ip смотрящем наружу, same_ports - для попытки сохранить номера портов при нате
ipfw nat 123 config ip 192.168.1.132 log same_ports \
# пробрасываю все что приходит на порт 9999 на тот же порт внутренней машины
# как вариант можно указать -redirect_port tcp 192.168.4.86:9999 192.168.1.132:9999
redirect_port tcp 192.168.4.86:9999 9999
# этот кусок нужен что бы у машины был не полный нат а только порт который я разрешил,
# потому что вообще в интернет буду пускать через проксю.
ipfw add 100 nat 123 tcp from 192.168.4.86 9999 to any
ipfw add 100 nat 123 tcp from any to 192.168.4.86 9999
# здесь я разрешаю клиенту с ip 192.168.4.86 коннектится к любым серверам по 25 порту,
# но только по нему.
ipfw add 100 nat 123 tcp from 192.168.4.86 to any 25
# это что бы был нат, иначе ничего не будет работать, правило для выпуска клиентов наружу
ipfw add 100 nat 123 ip from any to 192.168.1.132
Основанно на http://www.opennet.me/tips/info/1618.shtml
URL:
Обсуждается: http://www.opennet.me/tips/info/1938.shtml
Содержание
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),Умник, 10:21 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 10:35 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,mc_, 10:39 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),RapteR, 10:38 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +,cvsup, 10:39 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 10:57 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),grayich, 11:12 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),reZon, 11:49 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,grayich, 12:17 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,reZon, 12:29 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),reZon, 12:24 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 13:18 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,grayich, 13:26 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,reZon, 13:39 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,grayich, 13:56 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,reZon, 14:01 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 16:32 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,reZon, 16:34 , 10-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 05:52 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 05:54 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,reZon, 11:03 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),BoOgatti, 09:58 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),Гзкр, 14:03 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,reZon, 15:05 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,Добрый Дохтур, 15:42 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +,anon, 14:41 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),Стас, 17:35 , 11-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,vec135, 05:45 , 12-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,grayich, 12:12 , 12-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),doorsfan, 12:28 , 12-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +...,Alexander Yakimenko, 23:42 , 13-Фев-09
- Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat),stasav, 11:53 , 14-Фев-09
Сообщения в этом обсуждении
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено Умник , 10-Фев-09 10:21
PF проще!
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 10-Фев-09 10:35
И быстрее ;)
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено mc_ , 10-Фев-09 10:39
Как производили замеры, насколько быстрее.
Нигде не встречал упоминаний что nat на pf более быстрый чем в ipfw
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено RapteR , 10-Фев-09 10:38
http://www.opennet.me/openforum/vsluhforumID3/2106.html#14 еще проще.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +"
Отправлено cvsup , 10-Фев-09 10:39
непонятно, для кого предназначена эта статья с уже легендарными ошибками, кочующими от автора к автору; и чем это лучше оригинала в man ipfw(8)
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 10-Фев-09 10:57
2 mc_ Делал замеры в своё время. Насчет упоминаний - Посмотри как работает нат в ifpw и нат в pf, вопросы отпадут.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено grayich , 10-Фев-09 11:12
CFLAGS+= -DIPFIREWALL_NAT
это нужно было только в глубокой бетте
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено reZon , 10-Фев-09 11:49
И какие ошибки ну кроме CFLAGS+= -DIPFIREWALL_NAT?Как раз так все работает и сделанно по ману ipfw.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено grayich , 10-Фев-09 12:17
>ipfw nat 123 config ip 192.168.1.132 log same_ports \
>
># пробрасываю все что приходит на порт 9999 на тот же порт внутренней машины
># как вариант можно указать -redirect_port tcp 192.168.4.86:9999 192.168.1.132:9999
>redirect_port tcp 192.168.4.86:9999 9999помоему это дело не обработается верно, если есть возможность лучше присать в 1 строчку без переносов с помощью " \" и уж темболее не вставляя комментариев после переноса
и еще из примера можно исключить удаление nat 122 так как он не используется.
з.ы.
можно ли удалить все наты одной командой?
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено reZon , 10-Фев-09 12:29
Да и согласен с комментом после переноса конечно я лопухнулся =(А вообще написал все это по той причине что по этому делу много вопросов но нет практически никаких ответов...
Поэтому курил часть мана ipfw по нат... очень долго... И решил что может это хоть кому-то облегчит жизнь... то это гуд.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено reZon , 10-Фев-09 12:24
Удалить все наты одной командой нельзя, по крайней мере у меня не получилось.Отрабатывает все верно, с переносами легче просматривать если пробросок много.
Комменты это я конечно погорячился, писал только для заметки их.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 10-Фев-09 13:18
ipfw nat flush
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено grayich , 10-Фев-09 13:26
сами то пробовали? =)
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено reZon , 10-Фев-09 13:39
>ipfw nat flush Неа, не работает.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено grayich , 10-Фев-09 13:56
>>ipfw nat flush
>
>Неа, не работает. вообщето работает и очень хорошо работает, особенно для тех кто удаленно сидит... сносит все правила, тоже что и ipfw flush
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено reZon , 10-Фев-09 14:01
Ню =) Я же имел ввиду что для ната не работает =)
Все правила ната на месте =)
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 10-Фев-09 16:32
ipfw default_to_accept и никаких проблем.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено reZon , 10-Фев-09 16:34
>ipfw default_to_accept и никаких проблем. А теперь поясни пожалуйста свою мысль...
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 11-Фев-09 05:52
ipfw default_to_accept, опция ядра. Смотри man или в examples, как это работает.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 11-Фев-09 05:54
#options IPFIREWALL_DEFAULT_TO_ACCEPT
К предъидущему сообщению =)
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено reZon , 11-Фев-09 11:03
Я просил пояснить каких таких проблем не будет?Мне не нужно все разрешать всё, последнее правило у меня всегда deny from any to any.
Отрытый файрвол не лишает необходимости прописывать то что я написал в заметке.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено BoOgatti , 11-Фев-09 09:58
Зачем для кернель ната опция ipdivert? Зачем флаг в мэйк.конфе?По поводу удаления всех правил ната: такой команды я не нашёл (ipfw nat del all и прочие похожие комбинации не канают =/ )
Пробовал юзать кернель нат, однако столкнулся с рядом проблем (сейчас уже не помню каких) и в итоге вернулся к натд. Для шлюза не обслуживающего несколько тыщ клинтосов его хватает за глаза и за уши.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено Гзкр , 11-Фев-09 14:03
ядро можно не пересобирать
kldload ipfw
kldload ipfw_nat
kldload ipdivert
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено reZon , 11-Фев-09 15:05
>ядро можно не пересобирать
>kldload ipfw
>kldload ipfw_nat
>kldload ipdivert Замечательно! Конечно можно ничего не пересобирать, только вот надежнее все же вкомпилить в ядро и быстрее...
Кроме того пересборка ядра замечательная возможность избавится от всего лишнего....
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено Добрый Дохтур , 11-Фев-09 15:42
>только вот надежнее все же вкомпилить в ядро и быстрее...1)и как это связано с надежностью?
2)не быстрее.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +"
Отправлено anon , 11-Фев-09 14:41
свои 20 копеек внесу
make kernel KERNCONF=Yourkernel
так было бы проще :)
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено Стас , 11-Фев-09 17:35
легче rinetd использовать
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено vec135 , 12-Фев-09 05:45
>легче rinetd использовать +1
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено grayich , 12-Фев-09 12:12
>легче rinetd использовать какой смысл усложнять систему, если НАТ всеравно используется.. Другое дело если НАТ нет.
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено doorsfan , 12-Фев-09 12:28
а как организовать доступ внутренних клиентов к внешний_ИП:проброшенный_порт, например, проброшен 80й порт на хостерную машину, пользователь набирает http://firm.domain и открывает сайт фирмы. Я кроме решения в виде фейковой зоны для локальных пользователей ничего не придумал
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw +..."
Отправлено Alexander Yakimenko , 13-Фев-09 23:42
ipfw fwd - и будет тебе счастье. Можно прозрачный прокси и редиректор (squid+squidGuard).
"Port mapping и открытие портов наружу во FreeBSD 7.1 (ipfw + kernel nat)"
Отправлено stasav , 14-Фев-09 11:53
Ребята уже и забыли что статья про портмаппинг а не nat для чайникофф =)