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

ipfw и kernel nat

Добавлено: 2010-01-10 6:15:28
Abigor
Всех с прошедшим НГ!
Вопрос в следующем, собираю сервер для филиала. И просто попробовать негде на данный момент :) Необходимо сделать kernel nat подскажите как вам листинг?
Задачи следующие. Нужно через нат дать сети доступ на одни tcp порт. Пробросить в сеть два tcp порта и при этом ограничить с какого ip можно стучать на эти поты.
Пока родил только это.

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

#!/bin/sh

fwcmd="/sbin/ipfw -q"

ext_if="em0"
int_if="vr0"

local_lan="192.168.1.0/24"
extnet_ip="1.2.3.4"

${fwcmd} -f flush

${fwcmd} nat 1 config log if ${ext_if} reset same_ports deny_in redirect_port tcp 192.168.1.100:4899 ${extnet_ip}:7573
${fwcmd} add nat 1 tcp from 2.2.2.2 to ${extnet_ip} 7573 via ${ext_if}
${fwcmd} add nat 1 tcp from 192.168.1.100 4899 to any via ${ext_if}

${fwcmd} nat 2 config log if ${ext_if} reset same_ports deny_in redirect_port tcp 192.168.1.100:3389${extnet_ip}:7574
${fwcmd} add nat 2 tcp from 3.3.3.3 to ${extnet_ip} 7574 via ${ext_if}
${fwcmd} add nat 2 tcp from 192.168.1.100 3389 to any via ${ext_if}

${fwcmd} add nat 3 tcp from ${local_lan} to any 80 out via $ext_if

${fwcmd} add pass ip from any to any via lo0
${fwcmd} add deny ip from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any

${fwcmd} add pass tcp from any to me 22 in setup keep-state

${fwcmd} add 65534 deny log logamount 0 all from any to any
То есть по идеи должен заработать редирект двух портов с внешнего ip на один внутренний 192.168.1.100, доступ по ssh на все интерфейсы и по нату выпустить сеть только на 80 порт.
С ipfw уже просто давно не работал, больше на pf сижу. Только вот для тех поддержки филиала хотят именно ipfw, а ехать потом допиливать конфиг в другой город не хочется. Да и попробовать негде. По этому прошу подсказать чего еще надо для счастья
#--- info
freebsd 8.0 i386
две сетевые, в локалку и на провайдера

Re: ipfw и kernel nat

Добавлено: 2010-02-28 20:17:17
Alex Keda
делайте на том что умеете.

Re: ipfw и kernel nat

Добавлено: 2010-03-01 3:42:20
Abigor
Лис, ты как всегда. Понятно что пришлось сделать просто на ipfw и natd