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

Редирект портов в локальной сети

Добавлено: 2009-11-11 13:13:11
nghst
Добрый день.
Можно ли как нибудь сделать следующее:
Есть машина с FreeBSD 6.4
ИП адрес интерфейса 10.64.1.249/24
ИП адрес алиаса интерфейса 10.64.1.135/32
Нужно чтобы при обращении к 10.64.1.135:3128 трафик перенаправлялся на 10.64.1.100:3128

Re: Редирект портов в локальной сети

Добавлено: 2009-11-11 14:52:21
schizoid
ipfw fwd ?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-11 14:55:30
---nebo---
IPFW:

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

#ipfw add fwd 10.64.1.100,3128 tcp from any to 10.64.1.135 3128 
PF:

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

rdr  proto tcp from any to 10.64.1.135 port 3128 -> 10.64.1.100 port 3128 

Re: Редирект портов в локальной сети

Добавлено: 2009-11-11 14:57:59
schizoid
от жеж, совсем не даете человеку подумать :)

Re: Редирект портов в локальной сети

Добавлено: 2009-11-11 14:59:25
GRooVE
как вариант

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

/usr/ports/net/rinetd
хотя лучше фаером

Re: Редирект портов в локальной сети

Добавлено: 2009-11-11 16:29:57
---nebo---
schizoid писал(а):от жеж, совсем не даете человеку подумать :)
это все результаты карантина :smile:

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 9:00:04
nghst
Не работает так(

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

[root@nsk-FBSD /usr/src]# ipfw flush
Are you sure? [yn] y

Flushed all rules.
[root@FBSD /usr/src]#  ipfw add 10 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
00010 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
[root@FBSD /usr/src]# ipfw show
00010    0      0 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9701 976408 allow ip from any to any
[root@FBSD /usr/src]# ipfw show
00010    6    288 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9825 992773 allow ip from any to any
На 80 порт 10.64.1.248 не заходит, на 10.64.1.130 по 80 порту зайти можно.
Настройки из rc.conf

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

# added by xorg-libraries port
defaultrouter="10.64.1.1"
gateway_enable="YES"
hostname="FBSD"
ifconfig_em0="inet 10.64.1.249  netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.255"
inetd_enable="YES"
keymap="ru.koi8-r"
linux_enable="YES"
local_startup="/usr/local/etc/rc.d"
nfs_client_enable="YES"
nfs_server_enable="YES"
rpcbind_enable="YES"
sshd_enable="YES"
usbd_enable="YES"

######
firewall_enable="YES"
natd_enable="YES"
natd_interface="em0"
gateway_enable="YES"
Здесь http://www.unixfaq.ru/index.pl?req=qs&id=507 нашел информацию, возможно устаревшую для 6.4 версии, что если ipfw fwd не работает для адресов в той же сети нужно в конфиг ядра добавить строку

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

options IPFIREWALL_FORWARD_EXTENDED
Но ядро компилиться с такой строчкой отказывается

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

[root@FBSD /usr/src]# make kernel KERNCONF=FBSD

--------------------------------------------------------------
>>> Kernel build for FBSD started on Thu Nov 12 18:36:54 NOVT 2009
--------------------------------------------------------------
===> FBSD
mkdir -p /usr/obj/usr/src/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf;  PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/obj/usr/src/sys/FBSD  /usr/src/sys/i386/conf/FBSD
/usr/src/sys/i386/conf/FBSD: unknown option "IPFIREWALL_FORWARD_EXTENDED"
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.


Что я упускаю?(

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 9:01:05
nghst
Не работает так(

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

[root@nsk-FBSD /usr/src]# ipfw flush
Are you sure? [yn] y

Flushed all rules.
[root@FBSD /usr/src]#  ipfw add 10 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
00010 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
[root@FBSD /usr/src]# ipfw show
00010    0      0 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9701 976408 allow ip from any to any
[root@FBSD /usr/src]# ipfw show
00010    6    288 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9825 992773 allow ip from any to any
На 80 порт 10.64.1.248 не заходит, на 10.64.1.130 по 80 порту зайти можно.
Настройки из rc.conf

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

# added by xorg-libraries port
defaultrouter="10.64.1.1"
gateway_enable="YES"
hostname="FBSD"
ifconfig_em0="inet 10.64.1.249  netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.255"
inetd_enable="YES"
keymap="ru.koi8-r"
linux_enable="YES"
local_startup="/usr/local/etc/rc.d"
nfs_client_enable="YES"
nfs_server_enable="YES"
rpcbind_enable="YES"
sshd_enable="YES"
usbd_enable="YES"

######
firewall_enable="YES"
natd_enable="YES"
natd_interface="em0"
gateway_enable="YES"
Здесь http://www.unixfaq.ru/index.pl?req=qs&id=507 нашел информацию, возможно устаревшую для 6.4 версии, что если ipfw fwd не работает для адресов в той же сети нужно в конфиг ядра добавить строку

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

options IPFIREWALL_FORWARD_EXTENDED
Но ядро компилиться с такой строчкой отказывается

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

[root@FBSD /usr/src]# make kernel KERNCONF=FBSD

--------------------------------------------------------------
>>> Kernel build for FBSD started on Thu Nov 12 18:36:54 NOVT 2009
--------------------------------------------------------------
===> FBSD
mkdir -p /usr/obj/usr/src/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf;  PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/obj/usr/src/sys/FBSD  /usr/src/sys/i386/conf/FBSD
/usr/src/sys/i386/conf/FBSD: unknown option "IPFIREWALL_FORWARD_EXTENDED"
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.


Что я упускаю?(

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:22:42
schizoid
вы правильно понимаете правило?

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

fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
при попытке зайти на 10.64.1.248:80 вас форвардит на 10.64.1.130:80
вам это нужно?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:28:08
nghst
Да, хотелось чтобы было именно так. Но сейчас не форвардит.

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:29:16
schizoid
отдельно на каждый из них заходит?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:31:48
nghst
В смысле отдельно? На 80 порту 10.64.1.130 крутится веб сервер, на него зайти можно.
ИП адрес 10.64.1.248 пингуется, и можно на него зайти по ssh

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:35:09
schizoid
при чем тут ссх?
80-й порт доступен на обоих серваках?
1. может при попытке зайти на 10.64.1.248 dst-port 80 его рубит фаервол.
2. на 10.64.1.130 шлюз по умолчанию не 10.64.1.248

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:40:12
nghst
1. Фаервол ничего не рубит

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

[root@FBSD /usr/src]# ipfw show
00010    6    288 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9825 992773 allow ip from any to any
2. Да, шлюз на обоих машинах 10.64.1.1

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:42:16
schizoid
tcpdump-ом посмотреть на 10.64.1.130. пакет туда доходит или нет? и если доходит, то идет ли обратно?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:57:17
nghst
Вот что я снял, 10.64.1.194 - ИП адрес, с которого я пытаюсь пробиться на 10.64.1.248.
tcpdump делал на машине 10.64.1.130
Не знаю что из этого нужно, если этого не хватит подскажите, пожалуйста, как снять необходимую статистику

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

15:49:04.678912 arp who-has 10.64.1.248 tell 10.64.1.194
15:49:04.679176 IP 10.64.1.194.4984 > 10.64.1.248.www: S 2766415415:2766415415(0) win 65535 <mss 1460,nop,nop,sackOK>
Больше 10.64.1.248 в дампе не присутствовал

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 12:59:58
schizoid
что-=т омне кажется что нужен маршрут, для обратного хода пакета.

Re: Редирект портов в локальной сети

Добавлено: 2009-11-12 13:02:03
nghst
В каком месте? На 10.64.1.248?
Все в одной подсети, как тут может выглядеть маршрут?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 9:36:00
Nickuz
schizoid писал(а): при попытке зайти на 10.64.1.248:80 вас форвардит на 10.64.1.130:80
и ответ прибегает с 10.64.1.130, а соединение было открыто на 10.64.1.248. Клиент просто отбрасывает этот пакет, т.к. никаких запросов на 10.64.1.130 он не отправлял.

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 10:07:00
nghst
И тут можно что нибудь сделать то? Может не ipfw, а что нибудь другое? Может есть какое нибудь зеркалирование портов, или что нибудь в этом роде?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 10:25:39
agat
порядком ipfw крови попил с его fwd, и ядро c EXTENDED тоже не собиралось, пока....

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

rdr inet proto tcp from 192.168.0.0/24  to any port 80 -> 192.168.0.2 port 80
nat on fxp0 from 192.168.0.0/24 to any port 80 -> 192.168.0.2
не разлулил все это на pf ... в этом случае машина выступает шлюзом, и все проходящие запросы 80 порта отправляет на машину с совершенно другим ip ...
не составит труда вместо 80 порта указать любой другой. или пару портов {80, 8081}
8)

сначало (запрос) форвадим порт потом натим (ответ) чтоб у клиента бошку не сносило и он хавал то что мы ему подсовываем

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 12:24:00
nghst
Не совсем понял, на ipfw у вас это реализовать не получилось, но на pf все работает нормально?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 12:44:02
schizoid
у вас клиенты по ИПу ходят или по имени?

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 12:45:41
nghst
По ИП

Re: Редирект портов в локальной сети

Добавлено: 2009-11-13 12:47:42
schizoid
тогда хуже. думал может ДНСом разрулить...
ща протестю у себя что-нить подобное.