А не подскажет кто, как организовать, если я хочу во внутренней сетке web-сервак, который будет доступен внешнему миру?Пытался так:
Политика по умолчанию deny all
пока net.inet.ip.fw.one_pass: 1
${fw} nat 100 config ip ${ExtIPwebserv}
${fw} add nat 100 tcp from any ${outports} to ${ExtIPwebserv} 80 in via ${WAN0}
${fw} add allow tcp from any ${outports} to 217.117.93.230 80 in via ${WAN0}
${fw} add nat 100 tcp from ${IntIPwebserv} 80 to any ${outports}
${fw} add allow tcp from any ${outports} to ${IntIPwebserv}80
Судя по ipfw всё останавливается на первом нате. Т.е. снаружи пакеты приходят, заворачиваются в нат и всё. tcpdump показывает приходящие на внешний интерфейс соединения, которые обрабатываются, а потом оно почему-то (если убрать in via ${WAN0}) посылается само на себя.
Более грамотный вариант, который я видел на http://forum.lissyara.su/viewtopic.php?f=8&t=7930&p=70395 такого рода (у меня не заработало):
${fw} nat 100 config ip ${ExtIPwebserv} redirect_port tcp ${IntIPwebserv}:80 80
ipfw add nat 100 tcp from any ${outports} to ${ExtIPwebserv} 80 via ${WAN0}
ipfw add allow tcp from any ${outports} to ${IntIPwebserv} 80 via ${LAN}
Всё замечательно, один косяк: при выходе пакеты пытаются пролезть без ната, т.е. ответы пользователям лезут с обратным внутренним IP, а не внешним.
Может кто-нибудь пояснить это синтаксис ${fw} nat 100 config ip ${ExtIPwebserv} redirect_port tcp ${IntIPwebserv}:80 80
Мозгов не хватает осилить.
И кстати, кто знает как сбрасывать правила ната? после рестарта скрипта с ipfw -f flush почему-то ipfw nat config показывает не только новые конфигурации, но старые
Может, кто приведёт рабочий скрипт для web-сервака с kernel ipfw nat?