FreeBSD 6.1 (Помогите настроить перенаправление в файрволле)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

AkuH
Сообщения: 4

FreeBSD 6.1

Сообщение AkuH »

Введение:
Стоить локалка из нескольких компов с IPами 192,168,0,*
Все выходят в сеть через мшину с IPом 192,168,0,1, на которой стоит freeBSD (машина №1) и имеется две сетевухи (на внешнюю и на внутреннюю сеть).
Все машины имеют один внешний IP

Теперь вопрос: какое правило нужно прописать в файрволле, что бы при подключении к этому IP через программу remote desktop (windows) происходило перенаправление всех запросов на внутреннюю машину (например, 192,168,0,2)?


Зы. Сам ещё новичок, поэтому не знаю, хватает ли тех данных, что я сообщил.
Спасибо сказали:
Аватара пользователя
World Harm
Сообщения: 43
ОС: Slackware

Re: FreeBSD 6.1

Сообщение World Harm »

Нужно просто прописать ещё одно правило для пакетного фильтра. Если скажешь, каким фильтром пользуешься - помогу...
Спасибо сказали:
AkuH
Сообщения: 4

Re: FreeBSD 6.1

Сообщение AkuH »

World Harm, а как узнать каким я фильтром пользуюсь?
=)
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: FreeBSD 6.1

Сообщение arachnid »

одного знания файрвола недостаточно. необходимо поднять обратный нат или установить delegate, выполняющую тот же обратный нат. что бы не пересказывать своими словами, лучшу пошлю сразу в хендбук, там описана ситуация для ipfw и встроенного демона natd
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: FreeBSD 6.1

Сообщение skeletor »

Скорее всего он юзает ipfw.
Спасибо сказали:
AkuH
Сообщения: 4

Re: FreeBSD 6.1

Сообщение AkuH »

skeletor писал(а):
18.09.2007 13:42
Скорее всего он юзает ipfw.


Ага, так и есть.
Только в хэндбуке он не переведён ещё.
Вроде как нат - самое удобное решение.
Попробую его использовать.
Спасибо сказали:
Аватара пользователя
World Harm
Сообщения: 43
ОС: Slackware

Re: FreeBSD 6.1

Сообщение World Harm »

Рекомендую всё же прикрутить pf. Сам с ним работал, хороший фильтр. И правила там человеческим языком прописываются, и нат там же включается.
Спасибо сказали:
Аватара пользователя
-Dolphin-
Сообщения: 131
Статус: генерал

Re: FreeBSD 6.1

Сообщение -Dolphin- »

+1 к PacketFilter (PF), но в россии он как то не особо популярен, в отличии от зарубежа...
Да и новичкам помоему будет тяжело разбираться, все таки по ipfw больше написано статей чем pf, но pf намного просче.

ps: сам перешел с ipfw -> pf, он намного удобнее и качественней
Счастливый обладатель трусов с пингвином. Линуксцентр отдыхает. Китайская промышленность заботиться о нас...
Спасибо сказали:
Аватара пользователя
World Harm
Сообщения: 43
ОС: Slackware

Re: FreeBSD 6.1

Сообщение World Harm »

На опеннете есть статьи по настройке pf (с примерами). По-моему даже перевод официального мана с офсайта OpenBSD. Так что, мне кажется, новичкам всё-таки с pf легче будет, чем с ipfw.
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: FreeBSD 6.1

Сообщение skeletor »

Насчёт доступа из вне в локалку - копай в сторону обратного NAT'а.
Спасибо сказали:
Grass_snake
Сообщения: 21

Re: FreeBSD 6.1

Сообщение Grass_snake »

Portmapping делается примерно вот так:

/etc/rc.firewall
fwcmd="/sbin/ipfw"
fa="/sbin/ipfw add allow"
...
oif="rl0"
oip="our.outside.ip.address"
...
/sbin/natd -p natd -s -m -a our.outside.ip.address -f /etc/natd.conf
...
$fwcmd add divert natd tcp from any to ${oip} 3389 in via ${oif}
$fwcmd add divert natd tcp from 192.168.0.2 3389 to any out xmit ${oif}

$fa all from 192.168.0.2 to any
$fa all from any to 192.168.0.2
...
${fwcmd} add 65534 deny log all from any to any via ${oif} // Golden_rule!

Т.е, сначала идёт объявление удобочитаемых переменных и присвоение им значений (имя внешнего сетевого интерфейса, внешний IP адрес сервера).
Потом следует запуск самого natd. У меня это прописано в rc.firewall-е, что, возможно, не очень правильно. При перезапуске ipfw командой sh /etc/rc.firewall будет небольшая ругань по поводу занятоко сокета.
Потом записаны правила "дивертисмента" :-). Тут, как мне кажется, всё понятно.
Замыкают всё разрешающие правила для хоста 192.168.0.2. Эта пара правил в примере очень простая. На практике следует посте отладки соединения ещё и указать конкретый порт RDP (3389).

Далее в /etc.natd.conf:

# Common settings

log no
use_sockets yes # allocate a socket limiting the conflicts of ports
# dynamic
same_ports yes # try to use the same port for the translation
verbose no
log_ipfw_denied yes # log packages not reinjected due to
# blocking by ipfw (useful for debugger)
unregistered_only yes

...
# RDP for server
redirect_port tcp 192.168.0.2:3389 3389

После внесения всех изменений нужно перезагрузить firewall вышеуказанной командой sh /etc/rc.firewall (результат его перезагрузки будет выведен на консоль, следует его внимательно изучить на предмет опечаток и ошибок). А затем - перезапустить natd:
ps ax|grep natd
6898 ?? Ss 33:45,22 /sbin/natd -p natd -s -m -a ........
kill -9 6898
natd -p natd -s -m -a our.outside.ip.address -f /etc/natd.conf

После можно попытаться подключиться к внешнему IP сервера и проверить работоспособность доступа к 192.168.0.2.
Спасибо сказали: