Требуется сделать доступным извне 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 1434natd.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, расположенный по адресу 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 вообще убрать правила про редирект портов