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

embedded computers + Linux + iptables

Добавлено: 2009-10-20 12:07:17
BI_J
Добрый день уважаемые жители форума.
Столкнулся с проблемкой :(
Есть embedded computers с risk cpu, на нем вертиться linux
Задача такая:
Нужно настрить iptables таким образом, что бы он ничего не запрещая пробросил порт, с лбого интерфейса, на IP устройства, которое находиться за ним. С iptables я раньше не сталкивался, сейчасс разбираюсь.

Я подготовил такой скрипт:

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

# Step 1. Insert modules. 
insmod  ip_tables		2> /dev/null  
insmod  ip_nat_ftp		2> /dev/null  
insmod  iptable_filter		2> /dev/null
insmod  ip_nat_irc		2> /dev/null  
insmod  iptable_nat		2> /dev/null
insmod  ip_conntrack		2> /dev/null  
insmod  ip_conntrack_ftp  	2> /dev/null  
insmod  ip_conntrack_irc  	2> /dev/null  

# Step 2. Define variables, enable routing and erase default rules. 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin  
export PATH  
echo "1" > /proc/sys/net/ipv4/ip_forward  
/bin/iptables -F  
/bin/iptables -X  
/bin/iptables -Z  
/bin/iptables -F -t nat  
/bin/iptables -X -t nat  
/bin/iptables -Z -t nat  
/bin/iptables -P INPUT   ACCEPT  
/bin/iptables -P OUTPUT  ACCEPT  
/bin/iptables -P FORWARD ACCEPT  
/bin/iptables -t nat -P PREROUTING  ACCEPT  
/bin/iptables -t nat -P POSTROUTING ACCEPT  
/bin/iptables -t nat -P OUTPUT      ACCEPT  

# Step 3.
iptables -t nat -A PREROUTING -p tcp --dport 4003 -j DNAT --to-destination 192.168.3.128:4001
iptables -t filter -A FORWARD -d 192.168.3.128 -p tcp --dport 4001 -j ACCEPT
iptables -L

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

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

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

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
При таком конфиге результат неудовлетворительный.
Подскажите как это иправить ?

Спасибо!!

Re: embedded computers + Linux + iptables

Добавлено: 2009-10-20 12:31:13
_Andy
А обратно натить кто будет? POSTROUTING где?

Re: embedded computers + Linux + iptables

Добавлено: 2009-10-20 13:07:50
BI_J
это будет выглядеть так ??

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

iptables -t nat -A POSTROUTING -s 192.168.3.128

Re: embedded computers + Linux + iptables

Добавлено: 2009-10-20 13:42:09
hizel

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

iptables -t filter -A FORWARD -d 192.168.3.128 -p tcp --dport 4001 -j ACCEPT
не нужное правило, у вас и так FORWARD весь ACCEPT
первого правила достаточно для вашего случая


смотрите tcpdump и

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

iptables -t nat -L -v
вы прокидываете сквозь роутер tcp пакеты приходящие на 4003 порт на ip 192.168.3.128 и порт 4001

Re: embedded computers + Linux + iptables

Добавлено: 2009-10-20 13:49:04
Andy
Тредстартер, ознакомтесь:
http://forum.lissyara.su/viewtopic.php?p=117814#p117814
Поглядите как сделано, после чего попробуйте применить с учетом
Ваших реалий.

Re: embedded computers + Linux + iptables

Добавлено: 2009-10-20 15:01:05
BI_J
Andy
Спасибо огромное, помогло.

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

Re: embedded computers + Linux + iptables

Добавлено: 2009-10-20 15:32:09
_Andy
BI_J писал(а):Andy
Спасибо огромное, помогло.
Не за что.
BI_J писал(а): Единственный минус, нужно указывать каждый интерфейс отдельной парой правил.
Было бы здорово, если бы все интерфейсы срау....:)
А у вас их сколько? ПРочитайте про masquerade, может быть это то,
что Вам нужно?