Назад | Перейти на главную страницу

Что не так с моими iptables?

Проблема

Я не могу получать запросы к моему серверу через порт 80 для перенаправления моему клиенту через порт 8080

Сервер

Я использую виртуальную машину CentOS 6.3 в качестве сервера, клиент - Arduino

Сервер eth0 - 172.16.145.139 eth1 - 10.14.4.1

Клиент eth0 - 10.14.45

Конечная цель

Любое исправление, которое позволит мне получить веб-страницу от моего внутреннего клиента

Что я пробовал

Я пытался различными способами изменить свои iptables, чтобы разрешить мне доступ. Ближе всего к тому, что мой клиент был зарегистрирован, что соединение установлено, но веб-страница не загружается. Это также произошло, когда я использовал туннель SSH. Поэтому я думаю, что есть некоторые настройки, которые я слишком внимательно смотрю, которые не позволяют ему правильно продвигаться.

# cat /proc/sys/net/ipv4/ip_forward
1

IPTABLES

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.14.4.5:8080
-A POSTROUTING -s 10.14.4.0/25 -o eth0 -j SNAT --to-source 172.16.145.139
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -s 10.14.4.0/25 -o eth0 ! -d 10.14.4.0/25 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Заранее благодарим за любую помощь!

Вот что у меня работает на моем виртуальном сервере (адаптированном к вашим IP-адресам):

## Allow through firewll
iptables -I FORWARD -d 10.14.4.5/32 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
## Set up NAT forwarding rule
iptables -t nat -I PREROUTING -p tcp -i eth0 --destination-port 8080 -j DNAT --to-destination 10.14.4.5:80

Похоже, вы пропустили первое правило, которое позволяет пакетам проходить через брандмауэр. Хотя правило nat на вашем выглядит нормально.

Обратите внимание, что «-I» вставляется вверху цепочки правил, «-A» добавляется внизу. В случае первого правила мы хотим, чтобы оно располагалось перед правилом «отклонить» в вашей таблице фильтров - самый простой способ - пойти дальше и вставить его вверху (если вы изменяете существующую таблицу - в противном случае, преобразуйте его в «-A» и поместите перед правилом «отклонить» при изменении существующего файла конфигурации).