URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3913
[ Назад ]

Исходное сообщение
"Публикация MS SQL Server"

Отправлено Raoul , 06-Авг-08 16:51 
Требуется сделать доступным извне MS SQL Server, расположенный по адресу 192.168.0.3, но только с внешнего IP 123.45.67.89, для других IP сервер должен быть закрыт. Делаю так:

rc.firewall
${fwcmd} add allow tcp from 123.45.67.89 to ${inet} 1433
${fwcmd} add allow tcp from ${inet} 1433 to 123.45.67.89
${fwcmd} add allow tcp from 123.45.67.89  to ${inet} 1434
${fwcmd} add allow tcp from ${inet} to 123.45.67.89 src-port 1434

natd.conf
redirect_port tcp 192.168.0.3:1433 1433
redirect_port tcp 192.168.0.3:1434 1434

Однако при этом MS SQL Server оказывается доступен не только c 123.45.67.89, но и с других IP.

Как сделать правильно?


Содержание

Сообщения в этом обсуждении
"Публикация MS SQL Server"
Отправлено Vagif Zeynalov , 06-Авг-08 17:33 
>Требуется сделать доступным извне MS SQL Server, расположенный по адресу 192.168.0.3, но
>только с внешнего IP 123.45.67.89, для других IP сервер должен быть
>закрыт.
>Как сделать правильно?

дело в том, что в NAT у тебя нет ограничений по IP, и пакеты в него попадают в первую очередь, а до ipfw правил где ты делаешь ограничения дело не доходит.

наверняка у тебя в ipfw все стоит так

1 ipfw divert natd from any to x.x.x.x via $ext_if
2 ipfw allow....
3 ipfw deny

так вот на 1-ом правиле все заканчивается, а до 2 и 3 дело не доходит

надо сделать так

1 ipfw fwd i.i.i.i from xx.xx.xx.xx to $me 3660 via $ext_if
2 ipfw divert natd from i.i.i.i to any via $ext_if

то есть,
1. ты форвардишь пакеты с xx.xx.xx.xx приходящие к тебе на 3660 порт, на внутненний адрес i.i.i.i
2. обрытные ответы которые идут с внутреннего адреса ты отправляешь в NAT, чтобы они ушли во внешний мир с правильного IP

а в natd вообще убрать правила про редирект портов