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

SNAT в IPFW

Добавлено: 2012-10-19 9:51:51
v-i-k-tor
Подскажите пожалуйста, как правильно организовать проброс портов. Раньше имел дело только с iptables, там вроде все просто, но вот ipfw мне никак не дается.

Предположим у нас есть внутренний WEB сервер, redirect_port даст нам возможность пробросить нужный порт. Из вне все работает. А вот если на этот же сервер обратиться из локальной сети, то ситуация будет следующая:
Пакет покидает компьютер в сети.
Поступает на шлюз.
Производится подстановка адреса назначения, однако адрес отправителя не подменяется, т.е. исходный адрес остается в пакете без изменения.
Пакет покидает брандмауэр и отправляется на HTTP сервер.
HTTP сервер, готовясь к отправке ответа, обнаруживает, что клиент находится в локальной сети (поскольку пакет запроса содержал оригинальный IP адрес, который теперь превратился в адрес назначения) и поэтому отправляет пакет непосредственно на компьютер в сети.
Пакет поступает на компьютер в сети. Клиент "путается", поскольку ответ пришел не с того узла, на который отправлялся запрос. Поэтому клиент "сбрасывает" пакет ответа и продолжает ждать "настоящий" ответ. Описание ситуации взято тут
вот что показывает tcpdump на шлюзе:

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

10:17:47.629282 IP 192.168.3.5.62693 > 1.2.3.4.80: Flags [S], seq 515027046, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629298 IP 192.168.3.5.62693 > 192.168.1.100.80: Flags [S], seq 515027046, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629360 IP 192.168.1.100.80 > 192.168.3.5.62693: Flags [S.], seq 2496991387, ack 515027047, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:17:47.629374 IP 192.168.1.100.80 > 192.168.3.5.62693: Flags [S.], seq 2496991387, ack 515027047, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:17:47.629384 IP 192.168.3.5.62694 > 1.2.3.4.80: Flags [S], seq 4035575244, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629391 IP 192.168.3.5.62694 > 192.168.1.100.80: Flags [S], seq 4035575244, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629441 IP 192.168.1.100.80 > 192.168.3.5.62694: Flags [S.], seq 1272958531, ack 4035575245, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:17:47.629453 IP 192.168.1.100.80 > 192.168.3.5.62694: Flags [S.], seq 1272958531, ack 4035575245, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
tcpdump на WEB сервере:

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

10:11:21.595965 IP 192.168.3.5.61106 > 192.168.1.100.80: Flags [S], seq 1994285038, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:11:21.596002 IP 192.168.1.100.80 > 192.168.3.5.61106: Flags [S.], seq 2602663054, ack 1994285039, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:11:21.596381 IP 192.168.3.5.61107 > 192.168.1.100.80: Flags [S], seq 3905203459, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:11:21.596397 IP 192.168.1.100.80 > 192.168.3.5.61107: Flags [S.], seq 2692432696, ack 3905203460, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0

Re: SNAT в IPFW

Добавлено: 2012-10-19 11:37:30
Гагарин

Re: SNAT в IPFW

Добавлено: 2012-10-19 11:49:51
v-i-k-tor
Может я что-то пропустил в этом описании, но не могли бы Вы привести цитату от туда, где конкретно написано решение мой проблемы.

Re: SNAT в IPFW

Добавлено: 2012-10-19 13:03:46
Россия
em1 - internet 1.2.3.4
fxp1 - lan

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

nat 2 config log if fxp1 same_ports reset

add 1040 nat 2 ip from 192.168.3.0/24 to 192.168.1.100 out xmit fxp1
add 1041 nat 2 ip from 192.168.1.100 to me in recv fxp1

nat 1 config log if em1 reset same_ports deny_in redirect_port tcp 192.168.1.100:80 80

add 10130 nat 1 ip from any to any via em1

add 65534 deny all from any to any