Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » iptables - создание туннеля (PortTunnel)

Ответить
Настройки темы
iptables - создание туннеля (PortTunnel)

Пользователь


Сообщения: 112
Благодарности: 0

Профиль | Отправить PM | Цитировать


....така задача появилась:
на машине c адресом в сети 192.168.33.3 нужно все подключения на порт 334 тунеллировать на порт 333, так чтобы подключения на порт 333 приходили (создавались) с адресом источника 192.168.33.3
Знаю, под Вынь есть, реализующая всё это, программа - PortTunnel. Подскажите эт всё как под Линь учинить.
Делал так:
#iptables –A PREROUTING –t nat –p tcp –dport 334 -j REDIRECT –to-port 333 ...но входящие соединения на порт 333 шли с адресом источника, а не с адресом 192.168.33.3, вот!..
Ещё пробовал эдак:
#iptables –t nat –A PREROUTING –p tcp –d 192.168.33.3 –dport 334 -j NAT –to-destination 192.168.33.3:333 ...таж фигня..

Еже кто разумел проблему, то будте добры, растолкуйте что да как/куда..

....заранее спасиБо!..

Отправлено: 11:47, 19-09-2007

 

Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


Зачем это нужно, можно узнать?

Отправлено: 14:18, 19-09-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 112
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:37, 19-09-2007 | #3


Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


Тогда ответ - никак.
SNAT - по хорошему, делается только в цепочке OUTPUT.

Отправлено: 14:40, 19-09-2007 | #4


Новый участник


Сообщения: 32
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня как раз проблема подобного рода, но порт надо прокидывать из одной подсети (192.168.1.0/24) в другую (192.168.0.0/24).

Почитал вот это: http://www.opennet.ru/base/net/dnat_linux.txt.html
И решил написать простенький скриптик для удобства:
Код: Выделить весь код
#!/bin/sh

#IP внутренней сети, передаётся первым параметром
INT_IP=$1

#IP внешней сети
EXT_IP="192.168.0.1"

INT_PORT=$2
EXT_PORT=$3

#интерфейс, который смотрит во внутреннюю подсеть
INT_IF="br0"

#Это может пригодиться потом 
#EXT_IF="vlan1"

iptables -t nat -A  PREROUTING -p tcp -d $EXT_IP --dport $EXT_PORT -j DNAT --to-destination $INT_IP:$INT_PORT
iptables -A FORWARD -i $INT_IF -d $INT_IP -p tcp --dport $INT_PORT -j ACCEPT
Теперь по идее, запустив этот скрипт с параметрами, скажем
./portout 192.168.1.4 80 80
мы должны обращаясь на 192.168.0.1:80 получить доступ на 80-й порт машины 192.168.1.4, но этого почему-то не происходит.

Код: Выделить весь код
[admin@router scripts]$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[admin@router scripts]$ iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
VSERVER    all  --  anywhere             192.168.0.1

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain VSERVER (1 references)
target     prot opt source               destination

[admin@router scripts]$ cat /etc/hosts | grep book
192.168.1.4 book

[admin@router scripts]$ ./portout.sh 192.168.1.4 80 80

[admin@router scripts]$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             book               tcp dpt:www

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[admin@router scripts]$ iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
VSERVER    all  --  anywhere             192.168.0.1
DNAT       tcp  --  anywhere             192.168.0.1        tcp dpt:www to:192.168.1.4:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain VSERVER (1 references)
target     prot opt source               destination
Подскажите пожалуйста, что же я делаю не так?

Отправлено: 06:01, 20-09-2007 | #5


Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


ИМХО, примерно вот так (при default политиках DROP):
Код: Выделить весь код
iptables -A  PREROUTING -t nat -p tcp -d $EXT_IP --dport $EXT_PORT -j DNAT --to-destination $INT_IP:$INT_PORT
iptables -A FORWARD  -t filter -p all -i $EXT_IF -o $INT_IF -j ext-to-int
iptables -A FORWARD  -t filter -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -N  ext-to-int
iptables -A ext-to-int -p tcp -d $INT_IP --dport INT_PORT -j ACCEPT
iptables -A ext-to-int -p all -d $INT_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

В Вашем случае, опять таки ИМХО, будет достаточно просто:
Код: Выделить весь код
iptables -A  PREROUTING -t nat -p tcp -d $EXT_IP --dport $EXT_PORT -j DNAT --to-destination $INT_IP:$INT_PORT
Далеше пакет пойдет в FORWARD и получит по умолчанию ACCEPT, далее в POSTROUTING - ACCEPT и т.д.

Отправлено: 10:23, 20-09-2007 | #6


Новый участник


Сообщения: 32
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я знаю, форвард в дальнейшем будет DROP, поэтому скрипт пишется сразу так.

Я сглупил. Одну машину пересадил из одной подсети в другую, но пытался зайти на 192.168.0.1 с машины из 192.168.1.0/24, ибо с квм свитчем перепутал машины. Сорри, всё работает...

Отправлено: 11:30, 21-09-2007 | #7


Пользователь


Сообщения: 112
Благодарности: 0

Профиль | Отправить PM | Цитировать


....на самом то деле нифига не решено :-)
....чо мне с PortTunnelle`м то делать? :-):-):-)

Отправлено: 14:13, 21-09-2007 | #8


Аватара для [mzd]

Линуксоид-стакановец


Сообщения: 2391
Благодарности: 186

Профиль | Отправить PM | Цитировать


zelo, упс, прошу прощения

-------
Живя в реальном мире, стремись к невероятному... Эрнесто Че Гевара
Everybody lies. (c) House M.D.
Базовая настройка Ubuntu. Документация для новичка.
Руководство по установке, начальной настройке и основам использования операционной системы Ubuntu


Отправлено: 14:19, 21-09-2007 | #9


Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата zelo:
....на самом то деле нифига не решено :-)
....чо мне с PortTunnelle`м то делать? :-):-):-) »
Если Вы не опишете зачем это нужно - то вам никто и не ответит.

В общем случае - я уже сказал выше.

Отправлено: 08:54, 24-09-2007 | #10



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » iptables - создание туннеля (PortTunnel)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Стабильный SSH туннель. Скрипт мониторинга SSH туннеля. AlexeiZ Общий по Linux 2 02-11-2009 12:49
Debian/Ubuntu - Настройка SQUID для VPN-туннеля Vadim_kazan Общий по Linux 3 15-05-2009 10:41
IPTABLES!!! RULES, Разгавор о iptables BuuG Общий по Linux 17 03-03-2006 16:00
iptables The Antihero Общий по Linux 21 03-11-2002 18:22




 
Переход