LINUX.ORG.RU
ФорумAdmin

перебросить порт


0

3

нужно чтобы порт скажем 22 был виден с наружи как например 1000

делаю iptables -A PREROUTING -j REDIRECT -t nat -p tcp --dport 1000 --to-ports 22

все отлично но nmap показывает что открыты порты 1000 и 22

по идее нужно пакеты пришедшие на порт 1000 както маркировать и пукать в INPUT только паркированнные пакеты ибо он не понимает что к нему на 22 порт пришло - изначально адресованное на 22 порт или с 1000 порта...

что-то гугление и в лоб прикрутить mark пока не вышло, можете кинуть пару строк как это сделать?

★★★★

переназначить порт в ssh не предлагать - речь именно о средствах iptables

quest ★★★★
() автор топика

Сейчас в INPUT написано:
iptables -P INPUT DROP
iptables -A INPUT -j ACCEPT -p tcp --dport 22

А писать по идее нужно:
iptables -P INPUT DROP
iptables -A INPUT -j ACCEPT -p tcp -m mark --mark 22
где 22 метка для пакетов пришедших на 1000 порт и переброшенных на 22


А вот как метить?

quest ★★★★
() автор топика

ман бы почитал ) А еще есть хороший док хавту по iptables

Вцелом так:

iptables -t nat -A PREROUTING -m tcp -p tcp -i $ext_if --dport 1000 -j REDIRECT --to-ports 22

совсем непонятно что вы имели в виду под МАРК

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

Автор же хочет извращений. Я предлагаю сказать ссх слушать только 127.0.0.1:22 и редиректом завернуть туда что приходит на 1000 - извращенно, средставами иптейблс, порт ссх не переназначен.

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

ssh выбран для примера, та программа на которую пробрасывается порт не поддается настройке - так проще?

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

>Вцелом так: это РАБОТАЕТ и у меня (фактически та же строка) задача закрыть порт 22 для того что приходит на него непосредственно и открыть для того что приходит с порта 1000

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

ssh выбран для примера, та программа на которую пробрасывается порт не поддается настройке - так проще?

Кстати, если эта программа хоть и проприетарная, но собрана не статически, то проблему можно решить и другим путём - подсунув so'шку с подменой стандартной функции bind, которая будет менять порт на какой угодно.

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

да мысль интересная, я делал таких штуки с LD_PRELOAD, но тут не вспомнилось, но все равно хочеться считайте что из принципа сделать это средствами iptables

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

Попробуй так:

-A PREROUTING -p tcp -m tcp --dport 1000 -j CONNMARK --set-xmark 666
-A PREROUTING -p tcp -m tcp --dport 1000 -j REDIRECT --to-ports 22
-A -m connmark --mark 666 -m conntrack --ctproto tcp --ctorigdstport 22 --ctstate NEW -j ACCEPT
-A -m conntrack --ctproto tcp --ctorigdstport 22 --ctstate NEW -j DROP

Deleted
()

> нужно чтобы порт скажем 22 был виден с наружи как например 1000

маркировка тут не нужна.

LOCAL_NETWORK=«192.168.1.0/24»

iptables -P INPUT DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s ${LOCAL_NETWORK} -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 1000 -j REDIRECT --to-ports 22

Объяснять что к чему не буду - всё замечательно гуглится и опеннетится.

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

что то не понял фишки, походу из вне в вашем решении все так же будут видны порты 22 и 1000

quest ★★★★
() автор топика

Сделал так:

iptables -A PREROUTING -t mangle -j MARK -p tcp --dport 1000 --set-mark 22
iptables -A PREROUTING -t nat -j REDIRECT -p tcp --dport 1000 --to-ports 22

iptables -P INPUT DROP
iptables -A INPUT -j ACCEPT -i lo
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -p icmp

iptables -A INPUT -j ACCEPT -p tcp -m mark --mark 22

quest ★★★★
() автор топика

когда то я оперировал такими же понятиями «прокинуть порт, пробросить, открыть..» и толком не понимал в чем суть всего этого.

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

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

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