Страница 1 из 1

ipfw + nat

Добавлено: 2010-05-27 19:27:24
alexavr
У меня уже шарики за ролики - может кто ткнет носом в ошибку?
Поставил FreeBSD 8.0, сейчас делаю из нее маршрутизатор небольшой сети. Выбра IPFW + NATD.
Проблема такая:
для ната в ядро прописал

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

options IPDIVERT
ipfw решил собирать модулем, потому ядро не тронул, а в /etc/rc.conf дописал:

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

firewall_enable="YES"
firewall_script="/ets/ipfw.rules"
firewall_logging="YES"
natd_enable="YES"
natd_interface="msk0"
natd_flags="-m -u"

все хорошо, только при каждой загрузка фв мне в выдает "ipfw2 (+ipv6) initialized, divert loadable, nat loadable, rule-based forwarding disabled, default to deny, logging disabled" - несмотря на то, что в rc.conf все прописано, ipfw не видит моих правил.
При этом, если после загрузки файл с правилами выполнить локально, то все начинает работать как я хочу. Почему при загрузке не работает?
И еще странность: natd не стартует при загрузке, хотя должен. И опять: если его запустить вручную - стартует нормально.
Помогите плиз. А то я уже не знаю куда смотреть...

Re: ipfw + nat

Добавлено: 2010-05-27 23:14:27
manefesto
переименуй скрипт на тот что по дефолту
[2:12]|manefesto@server.manefesto| ~/>grep -e firewall_script /etc/defaults/rc.conf
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall

Re: ipfw + nat

Добавлено: 2010-05-28 1:40:15
zakachkin
Как реалиовать nat в таком разрезе (я просто забыл)
em0 - районная сеть статический IP
ngX (обратите внимание на X есть ещё и vpn сервер) - динамический IP
em1 - квартирная сеть 192.168.0.0/24
в линуксе все решаеться безумно просто

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

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
а как в Бздях??

Re: ipfw + nat

Добавлено: 2010-05-28 8:59:04
Crazuz
у меня вот так:

firewall_enable="YES"
firewall_script="/etc/rc.ipfw"
firewall_logging="YES"
firewall_nat_enable="YES"
firewall_nat_iface="rl0"

в ядре указал:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options IPDIVERT
options DUMMYNET
options LIBALIAS

работает =)

Re: ipfw + nat

Добавлено: 2010-05-28 23:13:45
zakachkin
Crazuz писал(а):у меня вот так:

firewall_enable="YES"
firewall_script="/etc/rc.ipfw"
firewall_logging="YES"
firewall_nat_enable="YES"
firewall_nat_iface="rl0"

в ядре указал:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options IPDIVERT
options DUMMYNET
options LIBALIAS

работает =)
А у тебя такая же схема как описана выше?

Re: ipfw + nat

Добавлено: 2010-05-29 6:08:38
zakachkin
Неужели так сложно реализовать??

Re: ipfw + nat

Добавлено: 2010-05-29 9:52:21
EARL
zakachkin писал(а):Неужели так сложно реализовать??
Скорее просто не совсем понятно чего вы хотите. Если нужно определенную сеть натить через какой-то внешний интерфейс, то средствами kernel nat делается это так

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

ext_if=внешний интерфейс
subnet=192.168.0.0/24

ipfw nat 1 config if ${ext_if} log same_ports
ipfw nat 1 ip from ${subnet} to any
ipfw nat 1 ip from any to me
При этом должно быть так

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

sysctl -a | grep fw.one_pass
net.inet.ip.fw.one_pass = 1