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

Исходное сообщение
"ipfw + fwd"

Отправлено Павел , 14-Ноя-07 02:21 
Не могу настроить чтоб форвардились пакеты извне т.е. с внешнего интерфейса на локальную машину ipfw add fwd пишет ошибку чтобы туда не писал ((

ifout - внешний интерфейс
10.4.25.210 - ip внешнего интерфейса
192.168.0.2 - ip локальной машины с веб сервером

вот что пишу в правило ipfw add fwd 192.168.0.2,80 tcp from 10.4.25.210:255.255.248.0 to me http out via ${ifout}
либо нечто вроде этого, всегда выдается ошибка:
ipfw: getsockopt(IP_FW_ADD): Invalid argument

незнаю что неправильно, что за неверный аргумент.... подскажите плиз!


Содержание

Сообщения в этом обсуждении
"ipfw + fwd"
Отправлено idle , 14-Ноя-07 10:31 
>[оверквотинг удален]
>ifout - внешний интерфейс
>10.4.25.210 - ip внешнего интерфейса
>192.168.0.2 - ip локальной машины с веб сервером
>
>вот что пишу в правило ipfw add fwd 192.168.0.2,80 tcp from 10.4.25.210:255.255.248.0
>to me http out via ${ifout}
>либо нечто вроде этого, всегда выдается ошибка:
>ipfw: getsockopt(IP_FW_ADD): Invalid argument
>
>незнаю что неправильно, что за неверный аргумент.... подскажите плиз!

man ipfw
To enable fwd a custom kernel needs to be compiled with the option options IPFIREWALL_FORWARD.

Когда пересоберёте ядро, читайте man дальше, чтобы понять почему правило вида ipfw add fwd $local_machine не будет работать.


"ipfw + fwd"
Отправлено Павел , 14-Ноя-07 16:30 

>To enable fwd a custom kernel needs to be compiled with the
>option options IPFIREWALL_FORWARD.
>
>Когда пересоберёте ядро, читайте man дальше, чтобы понять почему правило вида ipfw
>add fwd $local_machine не будет работать.

Хотелось бы конечно сразу узнать почему и как тогда сделать? ))


"ipfw + fwd"
Отправлено Павел , 14-Ноя-07 16:40 
             If ipaddr is a local address, then matching packets will be for-
             warded to port (or the port number in the packet if one is not
             specified in the rule) on the local machine.

В переводе примерно
Если ipaddr - местный адрес, то соответствие пакетам будет перенаправлено на порт (или номер порта в пакете, если Вы не будете определены в правиле) на местной машине.

Из это не пойму почему "правило вида ipfw add fwd $local_machine не будет работать."


"ipfw + fwd"
Отправлено idle , 14-Ноя-07 18:05 
>            
> If ipaddr is a local address, then matching packets will
>be for-
>            
> warded to port (or the port number in the packet
>if one is not
>            
> specified in the rule) on the local machine.

Тамже рядышком - The fwd action does not change the contents of the packet at all
и до конца абзаца.


"ipfw + fwd"
Отправлено Павел , 14-Ноя-07 23:47 
>[оверквотинг удален]
>>be for-
>>            
>> warded to port (or the port number in the packet
>>if one is not
>>            
>> specified in the rule) on the local machine.
>
>Тамже рядышком - The fwd action does not change the contents of
>the packet at all
>и до конца абзаца.

Ну харе издеваться, лучше подсказали бы как это реализовать и с помощью чего ;-)


"ipfw + fwd"
Отправлено idle , 15-Ноя-07 08:55 
>[оверквотинг удален]
>>>if one is not
>>>            
>>> specified in the rule) on the local machine.
>>
>>Тамже рядышком - The fwd action does not change the contents of
>>the packet at all
>>и до конца абзаца.
>
>Ну харе издеваться, лучше подсказали бы как это реализовать и с помощью
>чего ;-)

В случае ipfw используйте NAT, а лучше переходите на pf.



"ipfw + fwd"
Отправлено Павел , 15-Ноя-07 13:08 
>[оверквотинг удален]
>>>> specified in the rule) on the local machine.
>>>
>>>Тамже рядышком - The fwd action does not change the contents of
>>>the packet at all
>>>и до конца абзаца.
>>
>>Ну харе издеваться, лучше подсказали бы как это реализовать и с помощью
>>чего ;-)
>
>В случае ipfw используйте NAT, а лучше переходите на pf.

знать бы что это такое "pf" ))) и с чем его кушать )


"ipfw + fwd"
Отправлено axbat , 15-Ноя-07 09:08 
По очереди.

>либо нечто вроде этого, всегда выдается ошибка:
>ipfw: getsockopt(IP_FW_ADD): Invalid argument

Настраивай файрвол. Точнее, правильно вживляй в систему. Не у тебя первого такая ошибка.

Второе. используй natd для форварда портов, как тебе уже сказали


"ipfw + fwd"
Отправлено Павел , 15-Ноя-07 13:06 
>По очереди.
>
>>либо нечто вроде этого, всегда выдается ошибка:
>>ipfw: getsockopt(IP_FW_ADD): Invalid argument
>
>Настраивай файрвол. Точнее, правильно вживляй в систему. Не у тебя первого такая
>ошибка.

Да, фаер вживлен, но ядро GENERIC без поддержки fwd, но как я понял оно тут и не нужно получается если использовать NAT или pf ?

>
>Второе. используй natd для форварда портов, как тебе уже сказали

Natd у меня настроен из локалки во вне, надо как-то настраивать его и в другую сторону?
или же использовать 2 ната?


"ipfw + fwd"
Отправлено Павел , 15-Ноя-07 13:21 

в нат я нашел только нечто вроде
-redirect_address tcp внешнийIP:80 внутреннийIP:80

меня смущает слово редирект.



"ipfw + fwd"
Отправлено Павел , 16-Ноя-07 04:06 
настроил я через нат! Спасибо кто помогал ))

использовал redirect.port tcp 192.168.0.2:80 80
но есть пару вопросов может кто знает??

во первых апач отдает удаленный адрес как 10.4.25.210 всегда, этот адрес внешнего интерфейса! А было бы неплохо чтобы он отдавал адрес именно клиента кто заходит на сайт, как такое то сделать? А то статистика на сайте теперь левая (((

второй вопросик как переадресовывать пользователей в зависимости от запрашиваемого имени, например если заходит на www.site1.ru то ридеректить на одну машину, если www.site2.ru то на другую?


"ipfw + fwd"
Отправлено Павел , 16-Ноя-07 05:15 
проблему через ipfw add fwd я понял
т.е. локальному компу в пакете передается адрес назначения тот что передавался роутинговому серверу. Тогда возникает вопрос как заставить например апач принять запрос на IP который не в системе :-[ ??


"ipfw + fwd"
Отправлено idle , 16-Ноя-07 10:16 
>второй вопросик как переадресовывать пользователей в зависимости от запрашиваемого имени, например если
>заходит на www.site1.ru то ридеректить на одну машину, если www.site2.ru то
>на другую?

Редиректить где? Если в апаче - то через виртуальные хосты, если на фаерволле то неполучится.

>проблему через ipfw add fwd я понял
>т.е. локальному компу в пакете передается адрес назначения тот что передавался роутинговому
>серверу. Тогда возникает вопрос как заставить например апач принять запрос на
>IP который не в системе :-[ ??

Согласно RFC(и здравой логике) система такие пакеты вообще не должна принимать.


"ipfw + fwd"
Отправлено Павел , 16-Ноя-07 10:47 
>>второй вопросик как переадресовывать пользователей в зависимости от запрашиваемого имени, например если
>>заходит на www.site1.ru то ридеректить на одну машину, если www.site2.ru то
>>на другую?
>
>Редиректить где? Если в апаче - то через виртуальные хосты, если на
>фаерволле то неполучится.

да, попробовал, правда незнаю как через вирутальные, сделал через модуль редиректа с опцией [P] и прописыванием в файл hosts хостов чтобы имя хоста передавать.

>
>>проблему через ipfw add fwd я понял
>>т.е. локальному компу в пакете передается адрес назначения тот что передавался роутинговому
>>серверу. Тогда возникает вопрос как заставить например апач принять запрос на
>>IP который не в системе :-[ ??
>
>Согласно RFC(и здравой логике) система такие пакеты вообще не должна принимать.

это понятно, просто как решить собственно задачу, я её в другой теме описал... и здесь тоже немного выше ))


"ipfw, natd (fwd)"
Отправлено kvasik , 07-Апр-10 12:41 
Расскажите в чем тогда может быть разница реализации форвардинга методом natd, добавляя опции в /etc/natd.conf, например:
-redirect_port proto targetIP:targetPORT[-targetPORT]
-redirect_address localIP publicIP

и методом ipfw, где можно произвести те же настройки, внеся изменения в /etc/rc.firewall, например:
${ipfw} add fwd <протокол> from <откуда> to <куда> <дополнительные_условия>

Второе можно сделать только с опцией IPFIREWALL_FORWARD. В первом случае можно обойтись вообще без пересбоки ядра. Думаю на этом отличия не заканчиваются?