Решено: Вопрос про iptables

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Haldei
Сообщения: 21
ОС: debian

Решено: Вопрос про iptables

Сообщение Haldei »

Доброго времени всем.
Пожалуйста, помогите настроить проброс портов внутрь локальной сети.
Конфигурация:
CentOS 5.4
eth0 - 192.168.10.2
eth1 - Интернет от провайдера
eth2 - Интерфейс ведущий в DMZ (пока что его нет :).
192.168.10.9 - IP-адрес ПК на который надо пробросить RDP.iptables - был пересобран с 1.3.6 на 1.4.6

iptables - rules

Chain INPUT (policy ACCEPT) - Убраны все правила и политика АCCEP, чтоб все пакеты ходили
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.10.9 anywhere tcp spt:ms-wbt-server
ACCEPT tcp -- anywhere 192.168.10.9 tcp dpt:ms-wbt-server

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination

Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere XX.XX.XX.XX tcp dpt:ms-wbt-server to:192.168.10.9

Chain POSTROUTING (policy ACCEPT)
(Правило SNAT для всей сети тоже убрал, вдруг оно лочило соединение)
target prot opt source destination
SNAT all -- 192.168.10.9 anywhere to:XX.XX.XX.XX

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Если написать правила и просто выпустить народ в инет, все проходит на ура, а вот с пробросами что то не так.
Все что описано в подобных темах, не работает, маны перекурены вдоль и поперек.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Вопрос про iptables

Сообщение Alex2ndr »

Правило, с помощью которого DNAT делаете дайте посмотреть.
Еще вопрос - как вы проверяете ваш проброс? Знаети ли вы что если вы изнутри локальной сети стучитесь на ВНЕШНИЙ интерфейс вашего сервера то ничего не получится. Проверять надо только снаружи.
Спасибо сказали:
Haldei
Сообщения: 21
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение Haldei »

Alex2ndr писал(а):
10.02.2010 15:09
Правило, с помощью которого DNAT делаете дайте посмотреть.
Еще вопрос - как вы проверяете ваш проброс? Знаети ли вы что если вы изнутри локальной сети стучитесь на ВНЕШНИЙ интерфейс вашего сервера то ничего не получится. Проверять надо только снаружи.

Правило для DNAT:


iptables -t nat -A PREROUTING -p tcp -d XX.XX.XX.XX --dport 3389 -j DNAT --to 192.168.10.9

Проверка проброса осуществляется с помощью tcpdump'а, слушающего внешний интерфейс (eth1) и порт 3389, а так же на внутреннем интерфейсе (eth0) слушающего тот же порт.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение pelmen »

Проверку нужно производить на том компе, на который пробросили. Ваше правило правильное
Спасибо сказали:
Haldei
Сообщения: 21
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение Haldei »

pelmen писал(а):
10.02.2010 15:30
Проверку нужно производить на том компе, на который пробросили. Ваше правило правильное

Дело в том что при проверке на шлюзе на внешнем/внутреннем интерфейсе появляется только 3 пакета типа SYN. А дальше дело не идет. Хотя политика по умолчанию везде ACCEPT. Куда копать? 
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение pelmen »

а форвардинг ?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Вопрос про iptables

Сообщение Alex2ndr »

Haldei писал(а):
10.02.2010 15:28
Проверка проброса осуществляется с помощью tcpdump'а, слушающего внешний интерфейс (eth1) и порт 3389, а так же на внутреннем интерфейсе (eth0) слушающего тот же порт.

Вы не поняли. Я говорил про клиента, который коннектится к вашему серверу по RDP - где этот клиент? Снаружи в инете или из вашей локалки на внешний адрес сервера обращается?
Спасибо сказали:
Haldei
Сообщения: 21
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение Haldei »

Alex2ndr писал(а):
10.02.2010 16:19
Haldei писал(а):
10.02.2010 15:28
Проверка проброса осуществляется с помощью tcpdump'а, слушающего внешний интерфейс (eth1) и порт 3389, а так же на внутреннем интерфейсе (eth0) слушающего тот же порт.

Вы не поняли. Я говорил про клиента, который коннектится к вашему серверу по RDP - где этот клиент? Снаружи в инете или из вашей локалки на внешний адрес сервера обращается?

Проверка осуществляется снаружи. 
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Вопрос про iptables

Сообщение Alex2ndr »

Haldei писал(а):
10.02.2010 15:28
Alex2ndr писал(а):
10.02.2010 15:09
Правило, с помощью которого DNAT делаете дайте посмотреть.
Еще вопрос - как вы проверяете ваш проброс? Знаети ли вы что если вы изнутри локальной сети стучитесь на ВНЕШНИЙ интерфейс вашего сервера то ничего не получится. Проверять надо только снаружи.

Правило для DNAT:


iptables -t nat -A PREROUTING -p tcp -d XX.XX.XX.XX --dport 3389 -j DNAT --to 192.168.10.9

Проверка проброса осуществляется с помощью tcpdump'а, слушающего внешний интерфейс (eth1) и порт 3389, а так же на внутреннем интерфейсе (eth0) слушающего тот же порт.

попробуйте вот так

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

iptables -t nat -A PREROUTING -p tcp --dport 3389 -d XX.XX.XX.XX -j DNAT --to-destination 192.168.10.9
iptables -A FORWARD -p tcp --dport 3389 -d 192.168.10.9 -j ACCEPT

что-то я не припомню чтоб --to был синонимом --to-destination
Спасибо сказали:
Haldei
Сообщения: 21
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение Haldei »

По всякому пробовал, ни так ни эдак не работает. :(
Спасибо сказали:
crazyuser
Сообщения: 10

Re: Решено: Вопрос про iptables

Сообщение crazyuser »

Возможно стоит посмотреть попадают ли од это правила какие-нибудь пакеты?

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

iptables -v -L -n -t nat


Возможно стоит указать destination port

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

-A PREROUTING -d 192.168.77.77/32 -p tcp -m tcp --dport 4444 -j DNAT --to-destination 192.168.66.66:4444
Спасибо сказали:
Haldei
Сообщения: 21
ОС: debian

Re: Решено: Вопрос про iptables

Сообщение Haldei »

Вопрос решился до банальности просто.
Для проброса порта внутрь сети надо:

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

EXTERNAL_IP="внешний ip-адрес"
EXTERNAL_PORT="Порт который будет светиться наружу" # У меня это 33390
LOCAL_IP="IP-адрес машины на которую надо пробросить порт" #У меня это 192.168.10.200
LOCAL_PORT="Порт локальной машины на который надо сделать проброс" # У меня это 3389
iptables -t nat -A PREROUTING -p tcp -d $EXTERNAL_IP --dport $EXTERNAL_PORT -j DNAT --to $LOCAL_IP:$PORT
iptables -t nat -A POSTROUTING -d $LOCAL_IP -j  MASQUERADE

Спасибо всем кто помогал. :)

Инфа взята с debian.org
Спасибо сказали: