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

Исходное сообщение
"Не работает форвард в iptables"

Отправлено Me , 26-Июн-07 14:51 
Народ помогите советом у меня не работает форвард на 1494 порт... в iptables прописал
iptables -t nat -A PREROUTING -p tcp -i eth0 -s IP_компа_с которого_перслать -d Внешний_IP --dport 1494 -j DNAT --to-destination IP_компа_на который_переслать
iptables -A FORWARD -p tcp -s IP_компа_с которого_перслать -d IP_компа_на который_перслать --dport 1494 -j ACCEPT
iptables -A FORWARD -p tcp -d IP_компа_с которого_перслать -s IP_компа_на который_перслать --sport 1494 -j ACCEPT

iptables -L -n показывает что NAT есть. Но почему то пакеты не проходят. Причем со внутренней сетки и с самого шлюза коннект идет на 1494 порт,а снаружи нет.Может я отключил чего??Маны лопачу круглосуточно не могу причину найти.Заранее спасибо!!!


Содержание

Сообщения в этом обсуждении
"Не работает форвард в iptables"
Отправлено stas , 26-Июн-07 15:39 
>Народ помогите советом у меня не работает форвард на 1494 порт... в
>iptables прописал
>iptables -t nat -A PREROUTING -p tcp -i eth0 -s IP_компа_с которого_перслать
>-d Внешний_IP --dport 1494 -j DNAT --to-destination IP_компа_на который_переслать
>iptables -A FORWARD -p tcp -s IP_компа_с которого_перслать -d IP_компа_на который_перслать --dport
>1494 -j ACCEPT
>iptables -A FORWARD -p tcp -d IP_компа_с которого_перслать -s IP_компа_на который_перслать --sport
>1494 -j ACCEPT
>
>iptables -L -n показывает что NAT есть. Но почему то пакеты не
>проходят. Причем со внутренней сетки и с самого шлюза коннект идет
>на 1494 порт,а снаружи нет.Может я отключил чего??Маны лопачу круглосуточно не
>могу причину найти.Заранее спасибо!!!

На мой взгляд, у Вас странное правило в цепочке PREROUTING.
Должно быть что-то вроде такого:
iptables -t nat -A PREROUTING -p tcp -i eth0 -d Внешний_IP --dport 1494 -j DNAT --to-destination IP_компа_на который_переслать

Для внешних соединений Ваша опция "-s IP_компа_с которого_перслать" ограничивает соединения только с этого IP адреса.


"Не работает форвард в iptables"
Отправлено Me , 26-Июн-07 16:31 
>На мой взгляд, у Вас странное правило в цепочке PREROUTING.
>Должно быть что-то вроде такого:
>iptables -t nat -A PREROUTING -p tcp -i eth0 -d Внешний_IP --dport
>1494 -j DNAT --to-destination IP_компа_на который_переслать
>
>Для внешних соединений Ваша опция "-s IP_компа_с которого_перслать" ограничивает соединения только с
>этого IP адреса.

Спасибо за ответ.Но мне и надо чтоб он ограничивал. И чтоб только с этого IP адреса ко мне был конект на этот порт. Но попробовав что вы посоветовали эффект тотже.


"Не работает форвард в iptables"
Отправлено Kliver , 26-Июн-07 16:59 
>>На мой взгляд, у Вас странное правило в цепочке PREROUTING.
>>Должно быть что-то вроде такого:
>>iptables -t nat -A PREROUTING -p tcp -i eth0 -d Внешний_IP --dport
>>1494 -j DNAT --to-destination IP_компа_на который_переслать
>>
>>Для внешних соединений Ваша опция "-s IP_компа_с которого_перслать" ограничивает соединения только с
>>этого IP адреса.
>
>Спасибо за ответ.Но мне и надо чтоб он ограничивал. И чтоб только
>с этого IP адреса ко мне был конект на этот порт.
>Но попробовав что вы посоветовали эффект тотже.

А ип_форвард включен?
echo 1 > /proc/sys/net/ipv4/ip_forward


"Не работает форвард в iptables"
Отправлено Kliver , 26-Июн-07 17:03 
>>>На мой взгляд, у Вас странное правило в цепочке PREROUTING.
>>>Должно быть что-то вроде такого:
>>>iptables -t nat -A PREROUTING -p tcp -i eth0 -d Внешний_IP --dport
>>>1494 -j DNAT --to-destination IP_компа_на который_переслать
>>>
>>>Для внешних соединений Ваша опция "-s IP_компа_с которого_перслать" ограничивает соединения только с
>>>этого IP адреса.
>>
>>Спасибо за ответ.Но мне и надо чтоб он ограничивал. И чтоб только
>>с этого IP адреса ко мне был конект на этот порт.
>>Но попробовав что вы посоветовали эффект тотже.
>
>А ип_форвард включен?
>echo 1 > /proc/sys/net/ipv4/ip_forward

и в догонку на компе стоит маршрут по умолчанию на шлюз?



"Не работает форвард в iptables"
Отправлено Me , 26-Июн-07 17:15 
>>
>>А ип_форвард включен?
>>echo 1 > /proc/sys/net/ipv4/ip_forward
>
>и в догонку на компе стоит маршрут по умолчанию на шлюз?

Да, сделано так.


"Не работает форвард в iptables"
Отправлено stas , 26-Июн-07 17:23 
>Народ помогите советом у меня не работает форвард на 1494 порт... в
>iptables прописал
>iptables -t nat -A PREROUTING -p tcp -i eth0 -s IP_компа_с которого_перслать
>-d Внешний_IP --dport 1494 -j DNAT --to-destination IP_компа_на который_переслать
>iptables -A FORWARD -p tcp -s IP_компа_с которого_перслать -d IP_компа_на который_перслать --dport
>1494 -j ACCEPT
>iptables -A FORWARD -p tcp -d IP_компа_с которого_перслать -s IP_компа_на который_перслать --sport
>1494 -j ACCEPT
>
>iptables -L -n показывает что NAT есть. Но почему то пакеты не
>проходят. Причем со внутренней сетки и с самого шлюза коннект идет
>на 1494 порт,а снаружи нет.Может я отключил чего??Маны лопачу круглосуточно не
>могу причину найти.Заранее спасибо!!!

А интерфейс, на который приходят пакеты, правильно прописан ?


"Не работает форвард в iptables"
Отправлено Me , 26-Июн-07 17:33 
>А интерфейс, на который приходят пакеты, правильно прописан ?

Да я это проверил не один раз.


"Не работает форвард в iptables"
Отправлено Me , 27-Июн-07 13:18 
Народ хоть чуть чуть подскажите или ссылки киньте на подобные проблемы. У меня все идеи закончились.

"Не работает форвард в iptables"
Отправлено Kliver , 27-Июн-07 13:37 
>Народ хоть чуть чуть подскажите или ссылки киньте на подобные проблемы. У
>меня все идеи закончились.
А и тспдампом посмотреть на внешнем интерфейсе, на внутреннем. Есть ли пакеты снаружи есть ли ответы от компа?



"Не работает форвард в iptables"
Отправлено ksergey , 27-Июн-07 13:42 
еще INPUT посмотри

"Не работает форвард в iptables"
Отправлено Me , 27-Июн-07 14:04 
>>Народ хоть чуть чуть подскажите или ссылки киньте на подобные проблемы. У
>>меня все идеи закончились.
>А и тспдампом посмотреть на внешнем интерфейсе, на внутреннем. Есть ли пакеты
>снаружи есть ли ответы от компа?

Но при вводе tcpdump -i eth0 у меня показывает со всех IP кто подключен, а у меня их больше 100. Как тогда сделать чтоб с определенного IP только подключения смотрел???


"Не работает форвард в iptables"
Отправлено Me , 27-Июн-07 14:20 
>>>Народ хоть чуть чуть подскажите или ссылки киньте на подобные проблемы. У
>>>меня все идеи закончились.
>>А и тспдампом посмотреть на внешнем интерфейсе, на внутреннем. Есть ли пакеты
>>снаружи есть ли ответы от компа?
>
>Но при вводе tcpdump -i eth0 у меня показывает со всех IP
>кто подключен, а у меня их больше 100. Как тогда сделать
>чтоб с определенного IP только подключения смотрел???

Извиняюсь разобрался с tcpdump.Вот что он мне написал.

14:15:48.873078 IP IP_с_которого_идет_запрос.1829 > внешний_IP_на_eth0: S 277054116:277054116(0) win 64512 <mss 1460,nop,nop,sackOK>
14:15:51.689923 IP IP_с_которого_идет_запрос.1829 > внешний_IP_на_eth0.1494: S 277054116:277054116(0) win 64512 <mss 1460,nop,nop,sackOK>
14:15:57.756972 IP IP_с_которого_идет_запрос.1829 > внешний_IP_на_eth0.1494: S 277054116:277054116(0) win 64512 <mss 1460,nop,nop,sackOK>


"Не работает форвард в iptables"
Отправлено Kliver , 27-Июн-07 14:29 
>>>>Народ хоть чуть чуть подскажите или ссылки киньте на подобные проблемы. У
>>>>меня все идеи закончились.
>>>А и тспдампом посмотреть на внешнем интерфейсе, на внутреннем. Есть ли пакеты
>>>снаружи есть ли ответы от компа?
>>
>>Но при вводе tcpdump -i eth0 у меня показывает со всех IP
>>кто подключен, а у меня их больше 100. Как тогда сделать
>>чтоб с определенного IP только подключения смотрел???
>
>Извиняюсь разобрался с tcpdump.Вот что он мне написал.
>
>14:15:48.873078 IP IP_с_которого_идет_запрос.1829 > внешний_IP_на_eth0: S 277054116:277054116(0) win 64512 <mss 1460,nop,nop,sackOK>
>14:15:51.689923 IP IP_с_которого_идет_запрос.1829 > внешний_IP_на_eth0.1494: S 277054116:277054116(0) win 64512 <mss 1460,nop,nop,sackOK>
>14:15:57.756972 IP IP_с_которого_идет_запрос.1829 > внешний_IP_на_eth0.1494: S 277054116:277054116(0) win 64512 <mss 1460,nop,nop,sackOK>

а на внутренем интерфейсе что?



"Не работает форвард в iptables"
Отправлено Me , 27-Июн-07 14:33 
>а на внутренем интерфейсе что?

Тоже самое.


"Не работает форвард в iptables"
Отправлено Me , 27-Июн-07 14:34 
>>а на внутренем интерфейсе что?
>
>Тоже самое.


Я дела так tcpdump -i eth0 -n port 1494 и tcpdump -i eth1 -n port 1494.


"Не работает форвард в iptables"
Отправлено Kliver , 27-Июн-07 14:44 
>>>а на внутренем интерфейсе что?
>>
>>Тоже самое.

Что теже самые ип что и на внешнем? или все-таки преобразованные?

Значит нет ответов от внутреннего компа? А программа там не может отсекать соединения по ип? И точно ли на ней прописан шлюз в настройках TCP?
>
>
>Я дела так tcpdump -i eth0 -n port 1494 и tcpdump -i
>eth1 -n port 1494.



"Не работает форвард в iptables"
Отправлено Me , 27-Июн-07 14:51 
>>>>а на внутренем интерфейсе что?
>>>
>>>Тоже самое.
>
>Что теже самые ип что и на внешнем? или все-таки преобразованные?
>
>Значит нет ответов от внутреннего компа? А программа там не может отсекать
>соединения по ип? И точно ли на ней прописан шлюз в
>настройках TCP?


Извиняюсь адреса преобразованные.Проверил все действительно на компе не был прописан шлюз.Все заработало.Спасибо тебе просто огромное.


"Не работает форвард в iptables"
Отправлено Kliver , 27-Июн-07 14:22 
>>>Народ хоть чуть чуть подскажите или ссылки киньте на подобные проблемы. У
>>>меня все идеи закончились.
>>А и тспдампом посмотреть на внешнем интерфейсе, на внутреннем. Есть ли пакеты
>>снаружи есть ли ответы от компа?
>
>Но при вводе tcpdump -i eth0 у меня показывает со всех IP
>кто подключен, а у меня их больше 100. Как тогда сделать
>чтоб с определенного IP только подключения смотрел???

tcpdump -i eth0 src host x.x.x.x  -входящие пакеты
tcpdump -i eth0 host x.x.x.x  - j,f yfghfdktybz