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

IPFW + проброс порта

Добавлено: 2009-05-11 20:58:47
Fastman
Давно не ковырялся. Где то туплю. Ткните носом.
дано:
Провайдер<->|модем в режиме роутера(192.168.3.1)|<->|(192.168.3.60)BSD(192.168.7.60)|->свитч
У сервака 192.168.7.250 на 8010 висит нужная мне вебморда.
Ее нужно пробросить в инет.
rc.firewall:

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

      
        LanOut="rl0"
        LanIn="re0"
        NetIn="192.168.7.0"
        IpOut="192.168.3.60"
        IpIn="192.168.7.60"
        NetMask="24"

        ${fwcmd} nat 1 config if ${LanOut} log redirect_port tcp 192.168.7.250:8010 8010
        ${fwcmd} add nat 1 tcp from any to ${IpOut} 8010 via ${LanOut}
        ${fwcmd} add allow tcp from any to 192.168.7.250 8010 via ${LanIn}

        ${fwcmd} nat 2 config if ${LanOut} log same_ports reset unreg_only
        ${fwcmd} add nat 2 all from ${NetIn}/${NetMask} to any out via ${LanOut}
        ${fwcmd} add nat 2 all from any to ${IpOut} in via ${LanOut}

        ${fwcmd} add allow tcp  from any to any established
        ${fwcmd} add allow ip   from ${IpOut} to any out xmit ${LanOut}
        ${fwcmd} add allow icmp from any to any icmptypes 0,8,11

        ${fwcmd} add allow tcp  from any to any via ${LanIn}
        ${fwcmd} add allow udp  from any to any via ${LanIn}
        ${fwcmd} add allow icmp from any to any via ${LanIn}

        ${fwcmd} add deny ip from any to any
На модеме порт открыт. Даже уверен что приходяд запросы ибо:

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

freebsd# ipfw show
00100    0      0 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
00400    6    360 nat 1 tcp from any to 192.168.3.60 dst-port 8010 via rl0
00500    6    360 allow tcp from any to 192.168.7.250 dst-port 8010 via re0
00600 1182 140197 nat 2 ip from 192.168.7.0/24 to any out via rl0
00700 1134 437939 nat 2 ip from any to 192.168.3.60 in via rl0
00800 1312 409457 allow tcp from any to any established
00900  205  11480 allow ip from 192.168.3.60 to any out xmit rl0
01000    0      0 allow icmp from any to any icmptypes 0,8,11
01100   44   2160 allow tcp from any to any via re0
01200 1090 186937 allow udp from any to any via re0
01300    5    280 allow icmp from any to any via re0
01400   12    864 deny ip from any to any
65535   12   1440 allow ip from any to any
Постучите по голове, напомните :)

Re: IPFW + проброс порта

Добавлено: 2009-05-11 21:18:27
Alex Keda
http://www.lissyara.su/?id=1736
не проще будет?

Re: IPFW + проброс порта

Добавлено: 2009-05-11 21:26:01
Fastman
lissyara писал(а):http://www.lissyara.su/?id=1736
не проще будет?
Да я все перечитал уже. Туплю где то.
Но если есть стандартные средства ядерного ната - хотелось бы их и заюзать чтобы исключить лишние сущности.

Re: IPFW + проброс порта

Добавлено: 2009-05-12 8:14:43
buryanov

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

${fwcmd} nat 1 config if ${LanOut} log redirect_port tcp 192.168.7.250:8010 8010
${fwcmd} add nat 1 tcp from 192.168.7.250 to 8010 via ${LanOut}
${fwcmd} add nat 1 tcp from any to ${IpOut} 8010 via ${LanOut}
я когда наты настраивал, запускал tcpdump -i {ext_if} host 192.168.7.250 и смотрел, что куда ходит

Re: IPFW + проброс порта

Добавлено: 2009-05-12 9:46:52
schizoid
мож таки модем назад не пускает?
куда ты на модеме проброс делал? на шлюз жеж?

Re: IPFW + проброс порта

Добавлено: 2009-05-12 10:45:48
Fastman
buryanov писал(а):

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

${fwcmd} nat 1 config if ${LanOut} log redirect_port tcp 192.168.7.250:8010 8010
${fwcmd} add nat 1 tcp from 192.168.7.250 to 8010 via ${LanOut}
${fwcmd} add nat 1 tcp from any to ${IpOut} 8010 via ${LanOut}
я когда наты настраивал, запускал tcpdump -i {ext_if} host 192.168.7.250 и смотрел, что куда ходит
Я тоже пробовал правило добавлять обратное. Нулевой результат.

Re: IPFW + проброс порта

Добавлено: 2009-05-12 10:47:30
Fastman
schizoid писал(а):мож таки модем назад не пускает?
куда ты на модеме проброс делал? на шлюз жеж?
Пускает. на 22 порт и я из дома могу на сервак попасть.
А вот во внутрь сетки не пускает зараза.

Re: IPFW + проброс порта

Добавлено: 2009-05-12 11:03:29
buryanov
запусти tcpdump и смотри, что и куда ходит

Re: IPFW + проброс порта

Добавлено: 2009-05-12 11:16:47
Fastman
buryanov писал(а):запусти tcpdump и смотри, что и куда ходит
C внешки дергаю http://www.utorrent.com/testport.php?port=8010
Получаю:

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

freebsd# tcpdump -i rl0 port 8010
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
11:13:23.610770 IP utorrent.com.35391 > freebsd.by..8010: S 2080638061:2080638061(0) win 5840 <mss 1460,nop,nop,timestamp 967629131 0,nop,wscale 8>
11:13:26.488487 IP utorrent.com.35391 > freebsd.by..8010: S 2080638061:2080638061(0) win 5840 <mss 1460,nop,nop,timestamp 967632131 0,nop,wscale 8>

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

freebsd# tcpdump -i re0 port 8010
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re0, link-type EN10MB (Ethernet), capture size 96 bytes
11:14:46.831890 IP utorrent.com.46758 > 192.168.7.250.8010: S 3385031262:3385031262(0) win 5840 <mss 1460,nop,nop,timestamp 967712164 0,nop,wscale 8>
11:14:50.601436 IP utorrent.com.46758 > 192.168.7.250.8010: S 3385031262:3385031262(0) win 5840 <mss 1460,nop,nop,timestamp 967715164 0,nop,wscale 8>
Куда рыть ?

Re: IPFW + проброс порта

Добавлено: 2009-05-12 14:20:22
schizoid
стоп. 22-й порт на модеме ты НАТишь на сервак, правильно? а 8010-й куда?

Re: IPFW + проброс порта

Добавлено: 2009-05-12 14:39:51
Fastman
schizoid писал(а):стоп. 22-й порт на модеме ты НАТишь на сервак, правильно? а 8010-й куда?
На внешний IP сервака. я в первом сообщении нарисовал схемку.

Re: IPFW + проброс порта

Добавлено: 2009-05-12 16:48:17
Fastman
Описните мне тупому, почему назад ничего не идет.....
Уже обычный диверт прилепил..и все равно засада.....

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

freebsd# natd -m -s -n rl0 -redirect_port tcp 192.168.7.250:8010 8010 -v | grep 8010
natd[26646]: Aliasing to 192.168.3.60, mtu 1500 bytes
In  {default}[TCP]  [TCP] 72.20.5.58:57167 -> 192.168.3.60:8010 aliased to
           [TCP] 72.20.5.58:57167 -> 192.168.7.250:8010
In  {default}[TCP]  [TCP] 72.20.5.58:57167 -> 192.168.3.60:8010 aliased to
           [TCP] 72.20.5.58:57167 -> 192.168.7.250:8010

Re: IPFW + проброс порта

Добавлено: 2009-05-12 17:14:13
buryanov
freebsd# tcpdump -i re0 port 8010tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on re0, link-type EN10MB (Ethernet), capture size 96 bytes
11:14:46.831890 IP utorrent.com.46758 > 192.168.7.250.8010: S 3385031262:3385031262(0) win 5840 <mss 1460,nop,nop,timestamp 967712164 0,nop,wscale 8>
11:14:50.601436 IP utorrent.com.46758 > 192.168.7.250.8010: S 3385031262:3385031262(0) win 5840 <mss 1460,nop,nop,timestamp 967715164 0,nop,wscale 8>
если верить написаному, то на твой сервак 2 раза за натом пакеты уходят, а вот обратно не возвращаются

Re: IPFW + проброс порта

Добавлено: 2009-05-12 17:23:20
Fastman
buryanov писал(а):
freebsd# tcpdump -i re0 port 8010tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on re0, link-type EN10MB (Ethernet), capture size 96 bytes
11:14:46.831890 IP utorrent.com.46758 > 192.168.7.250.8010: S 3385031262:3385031262(0) win 5840 <mss 1460,nop,nop,timestamp 967712164 0,nop,wscale 8>
11:14:50.601436 IP utorrent.com.46758 > 192.168.7.250.8010: S 3385031262:3385031262(0) win 5840 <mss 1460,nop,nop,timestamp 967715164 0,nop,wscale 8>
если верить написаному, то на твой сервак 2 раза за натом пакеты уходят, а вот обратно не возвращаются
Так я это понимаю и вижу. Выше же привел лог natd в котором видно то же самое.
А вот почему назад не идут - для меня пока загадка.
Я раньше делал проброс и все пахало, но в том случае у меня модем был в режиме бриджа.

Re: IPFW + проброс порта

Добавлено: 2009-05-12 18:13:34
buryanov
так тебе надо разбираться с 192.168.7.250, почему она не даёт ответ, или куда он уходит

Re: IPFW + проброс порта

Добавлено: 2009-05-12 18:25:27
Fastman
buryanov писал(а):так тебе надо разбираться с 192.168.7.250, почему она не даёт ответ, или куда он уходит
Понимаешь в чем фишка... ОНО реально работает.
Факты:
1. В локалке http://192.168.7.250:8010 работает как надо
2. Для успокоение души по совету лиса натянул rinetd - через него реально работает и во внешке люди увидели сервак.

Меня rinetd не устраивает по ряду причин.
Во первых с этого сервака нужно будет пробросить иногда и udp во вторых c passive ftp нескладуха у него.

Re: IPFW + проброс порта

Добавлено: 2009-05-12 20:05:53
Fastman
Господа ! Стыдно то как !
Я чудак на букву М.
На серваке на котором вебморда шлюз был старый прописан.
вместо положенного 192.168.7.60 было 192.168.7.3