Введение:
Стоить локалка из нескольких компов с IPами 192,168,0,*
Все выходят в сеть через мшину с IPом 192,168,0,1, на которой стоит freeBSD (машина №1) и имеется две сетевухи (на внешнюю и на внутреннюю сеть).
Все машины имеют один внешний IP
Теперь вопрос: какое правило нужно прописать в файрволле, что бы при подключении к этому IP через программу remote desktop (windows) происходило перенаправление всех запросов на внутреннюю машину (например, 192,168,0,2)?
Зы. Сам ещё новичок, поэтому не знаю, хватает ли тех данных, что я сообщил.
FreeBSD 6.1 (Помогите настроить перенаправление в файрволле)
Модератор: arachnid
-
- Сообщения: 43
- ОС: Slackware
Re: FreeBSD 6.1
Нужно просто прописать ещё одно правило для пакетного фильтра. Если скажешь, каким фильтром пользуешься - помогу...
-
- Сообщения: 4
Re: FreeBSD 6.1
World Harm, а как узнать каким я фильтром пользуюсь?
=)
=)
-
- Модератор
- Сообщения: 1099
- ОС: freeBSD
Re: FreeBSD 6.1
одного знания файрвола недостаточно. необходимо поднять обратный нат или установить delegate, выполняющую тот же обратный нат. что бы не пересказывать своими словами, лучшу пошлю сразу в хендбук, там описана ситуация для ipfw и встроенного демона natd
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
- Сообщения: 4
-
- Сообщения: 43
- ОС: Slackware
Re: FreeBSD 6.1
Рекомендую всё же прикрутить pf. Сам с ним работал, хороший фильтр. И правила там человеческим языком прописываются, и нат там же включается.
-
- Сообщения: 131
- Статус: генерал
Re: FreeBSD 6.1
+1 к PacketFilter (PF), но в россии он как то не особо популярен, в отличии от зарубежа...
Да и новичкам помоему будет тяжело разбираться, все таки по ipfw больше написано статей чем pf, но pf намного просче.
ps: сам перешел с ipfw -> pf, он намного удобнее и качественней
Да и новичкам помоему будет тяжело разбираться, все таки по ipfw больше написано статей чем pf, но pf намного просче.
ps: сам перешел с ipfw -> pf, он намного удобнее и качественней
Счастливый обладатель трусов с пингвином. Линуксцентр отдыхает. Китайская промышленность заботиться о нас...
-
- Сообщения: 43
- ОС: Slackware
Re: FreeBSD 6.1
На опеннете есть статьи по настройке pf (с примерами). По-моему даже перевод официального мана с офсайта OpenBSD. Так что, мне кажется, новичкам всё-таки с pf легче будет, чем с ipfw.
-
- Сообщения: 1224
Re: FreeBSD 6.1
Насчёт доступа из вне в локалку - копай в сторону обратного NAT'а.
-
- Сообщения: 21
Re: FreeBSD 6.1
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.
/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.