LINUX.ORG.RU
решено ФорумAdmin

Контроллер с RNDIS и трансляция адресов

 ,


0

1

Здравствуйте.
Возникла необходимость подключить некий контроллер к локальной сети. Контроллер имеет usb\rndis интерфейс. Есть также комп с установленной ubuntu (16.04.2), к которому подключается контроллер. Сетевой адаптер и rndis-интерфейс компьютера имеют следующую конфигурацию:

eth0      Link encap:Ethernet  HWaddr 02:81:41:b4:9b:96
          inet addr:192.168.0.253  Bcast:192.168.0.255  Mask:255.255.255.0

usb0      Link encap:Ethernet  HWaddr 76:71:23:5a:4b:5d
          inet addr:192.168.123.223  Bcast:192.168.123.255  Mask:255.255.255.0

Сам контроллер получает адрес 192.168.123.123
Задача состоит в следующем:
1) Получить доступ к web-админке контроллера из локальной сети, поключаясь к интерфейсу eth0 ПК на 80 порт.
2) Разрешить контроллеру отсылать/принимать SOAP-запросы в локальную сеть (также через порт 80).
Прочитав несколько туториалов, составил правила, которые, естественно, не решили задачу:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.123.123
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.123.123 -j ACCEPT

Задача вроде бы тривиальная, но у меня нет опыта в администрировании. Спасибо.

Это все правила у вас в iptables ? Или еще какие-то есть?
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

anc ★★★★★
()
Ответ на: комментарий от anc

Спасибо! Да, похоже, что не всё я учел. Добавил Ваше правило и все заработало, однако только после разрешения для FORWARD (последнее правило):

iptables -P FORWARD DROP 
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.123.123
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.123.123 -j ACCEPT
iptables -P FORWARD ACCEPT

Сперва я хотел запретить все FORWARD пакеты (первое правило), а потом разрешить прохождение пакетов только на порт 80 (пятое правило). Разве правило:

iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.123.123 -j ACCEPT
не делает исключение по порту 80 для политики:
iptables -P FORWARD DROP
?

replicater81
() автор топика
Ответ на: комментарий от replicater81

Пакеты летают в обе стороны. Так что для FORWARD надо два правила. У вас же только в одну прописано -i eth0.... обратное правило тоже нужно.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.