LINUX.ORG.RU
ФорумAdmin

iptables telegram

 


0

1

Есть 2 компа, на 1 работает телеграм, на другом нет. Хочу на том где работает (Linux ubuntu 4.15.0-43-generic x86_64) поставить iptables перенаправление (никогда не пробовал)

При работающем клиенте посмотрел коннекшн: netstat -naptu | grep ...

tcp        0      0 172.17.17.4:53900     149.154.167.50:443      ESTABLISHED 14249/telegram-desk
tcp        0      0 172.17.17.4:50930     149.154.167.50:80       ESTABLISHED 25831/telegram-desk

Проверю: telnet 149.154.167.50 80 - коннектится

Сначала попробовал сделать для 80ого:

sudo iptables -t nat -A PREROUTING -p tcp --dport 64080 -j DNAT --to-destination 149.154.167.50:80
(не уверен правильно ли написал пострутинг, в частности указав порт такой-же 64080)
sudo iptables -t nat -A POSTROUTING -p tcp -d 149.154.167.50 --dport 64080 -j SNAT --to-source 172.17.17.4

telnet 172.17.17.4 64080

Trying 172.17.17.4...

telnet: Unable to connect to remote host: Connection refused

Подскажите, что не так?



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

Посмотри правила iptables на обоих и сравни.

И на шлюзе посмотри нет ли правил блокирующих второй.

Перенаправление не подходит, ты можешь первый сделать шлюзом для второго и настроить NAT.

anonymous
()

Так попробуйте:

sudo iptables -t nat -A PREROUTING -p tcp --dport 64080 -j DNAT --to-destination 149.154.167.50:80
sudo iptables -t nat -A POSTROUTING -p tcp --dport 80 -d 149.154.167.50 -j SNAT --to-source 172.17.17.4
sudo iptables -A FORWARD -p tcp --dport 80 -d 149.154.167.50 -j ACCEPT

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

Как я понимаю, то после этого:

sudo iptables -t nat -A PREROUTING -p tcp --dport 64080 -j DNAT --to-destination 149.154.167.50:80

у меня же должно происходить подключение telnet localhost 64080 с этой-же машины? (а оно не срабатывает). Telnet же вроде у нас по tcp ходит. Если что, sudo ufw status: Status: inactive

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

у меня же должно происходить подключение telnet localhost 64080 с этой-же машины?

Нет. Благодаря этому правилу, пакет пойдет не в цепочку INPUT, а в FORWARD.

funky
()
Ответ на: комментарий от najar

Наоборот - это он так от роскомпозора прячется. Типа: -я не я и хост не моя!

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

Нашёл вот ещё такое, как:

sudo iptables -t nat -A OUTPUT -p tcp --dport 64080 -d 172.17.17.4 -j DNAT --to-destination 149.154.167.50:80
И тогда из локальной машины срабатывает перенаправление telnet 172.17.17.4 64080

Вообще буду курить мануал чтоб лучше понимать что делаю. Спасибо всем.

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

А ещё вопрос в догонку. На другой машине, которая должна приконнектится к первой, правильно ли будет сделать такое:

sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv4.conf.eth0.route_localnet=1

sudo iptables -t nat -I PREROUTING -d 149.154.167.50 -p tcp --dport 80 -j DNAT --to 172.17.17.4:64080
sudo iptables -t nat -I PREROUTING -d 149.154.167.50 -p tcp --dport 443 -j DNAT --to 172.17.17.4:64443
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
т.е. локально весь трафик, который будет итти на удалённые 149.154.167.50 и порты 80 и 443 перенаправлять на хост в локалке, который настраивался первым?

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