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

Проброс порта наружу с помощью IPTABLES

 , ,


0

1

Я уже все глаза протер в поисках что тут не так(

Нужно пробросить 443 (https) порт вовнешку, все уже проверил 10 раз, но не могу понять в чем дело(

# Allow SSH"
$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT

# Drop all traffic on external device
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state RELATED,ESTABLISHED -j ACCEPT

# Allow masquerade for my network
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -s 192.168.0.0/24 -j MASQUERADE

# Allow iptel https port

$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -d $EXTIP --dport 443 -j DNAT --to-destination 192.168.0.203:443
$IPTABLES -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.0.203 --sport 443 -j SNAT --to-source $EXTIP:443


Я уже все глаза протер

Представь себя первым пакетом соединения и, тыкая пальцем сверху вниз, пройди по цепочке правил. Можно еще читать комментарии к ним.

thesis ★★★★★
()

разреши транзит 443 порта

$IPTABLES -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.0.203 --sport 443 -j SNAT --to-source $EXTIP:443

выкинь, есть же уже маскарадинг

$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP

зачем дропаешь новые соединения, убивай только инвалидов

--to-destination 192.168.0.203:44

на адресе назначения выстави гейтом узел на котором применяешь данный нат, и да tcpdump во все поля.

axelroot
()

и еще из своей локалки не проверишь, светится ли порт наружу, проверяй с другого гейта.

axelroot
()
Ответ на: комментарий от BartMan

В input твой пакет и не попадает. Гугли картинки под названием netfilter packet flow. А для фильтрования «всего трафика, кроме явно разрешенного», лучше использовать policy, а не явные правила.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от axelroot

Во, человек все правильно пишет.
Еще можно :443 выкинуть, порт же у тебя не изменяется.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)

вдогонку лично мне не нравятся скрипты для формирования правил, по-моему лучше юзать iptables-save + iptables-restore , лично мне так удобнее и более наглядно

axelroot
()
Ответ на: комментарий от axelroot
# Allow SSH"
$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT

# Drop all traffic on external device
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state RELATED,ESTABLISHED -j ACCEPT

# NAT iptel https port
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -d $EXTIP --dport 443 -j DNAT --to-destination 192.168.0.203

# Allow masquerade for my network
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -s 192.168.0.0/24 -j MASQUERADE

Вот что получилось, но толку нет, щас попробую узнать стоить ли шлюзом на 192.168.0.203 мой сервер, но мне кажется не в этом проблема(

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

За rinetd спасибо, но по-моему с ним только путаница какая то начнется, через iptables тоже вроде не сложно.

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

транзита 443 в локалку так и нет!

опробую узнать стоить ли шлюзом на 192.168.0.203

это обязательное условие

axelroot
()
Ответ на: комментарий от BartMan

в форварде пропиши порт по которому разрешен транзит.

axelroot
()
Ответ на: комментарий от BartMan

$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -d $EXTIP --dport 443 -j DNAT --to-destination 192.168.0.203

после того как в пакете натом подменится внешний адрес назначения на внутрениий, пакет должен транзитом предаться с одного сетевого интерфейса на другой, то что разрешено для транзита описывается в форварде, в данных правилах нет правила разрешающего транзит к адресу назначения 192.168.0.203 по порту 443.

axelroot
()
Ответ на: комментарий от thesis

А какое преимущество полисей перед явными правилами?

turtle_bazon ★★★★★
()

axelroot дело пишет. Вообще убери все -A FORWARD. По умолчанию они разрешены. Проверь так. Потом их добавишь, ежели так надо.

turtle_bazon ★★★★★
()

Попробуй задействовать такое првило

-A PREROUTING -p tcp -d 91.91.91.91 --dport 443 -j DNAT --to-destination 192.168.0.117:443

Внешний IP- 91.91.91.91

Внутренний IP LAN- 192.168.0.117

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