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

Проксирование ssh порта

 , ,


0

1

Задача: скрыть реальный IP git-сервера, но оставить возможность коннектится через дефолтный 22 порт.

Схема примерно такая:

Запрос на 22 порт http://git.example.com/ (IP: 192.168.1.100) перенаправляется на другой порт сервера с IP: 10.122.10.5, например. При этом IP 10.122.10.5 нигде не всплывает. Клиент должен думать, что реальный IP git-хранилища: 192.168.1.100.

Пока вижу два варианта: iptables и ssh-over-http.

Есть ли здесь правильное решение? Если да, то какое?

Deleted

любой вариант с port forwarding, по мне так удобнее через xinetd

zolden ★★★★★
()

Я решил вопрос с помощью iptables. С учетом, что ситуация не была вида «пробросить порт через роутер». Форвадинг вида: «сервер-сервер», если так можно выразиться.

#!/bin/sh

SOURCE_IP="192.168.1.100" # IP сервера, с которого перенаправляем траффик
SOURCE_PORT="22"          # Порт сервера, с которого перенаправляем траффик
TARGET_IP="10.144.5.10"   # IP сервера, на который перенаправляем траффик
TARGET_PORT="1890"        # Порт сервера, на который перенаправляем траффик

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F
iptables -X

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport ${SOURCE_PORT} -j DNAT --to ${TARGET_IP}:${TARGET_PORT}
iptables -A FORWARD -p tcp -i eth0 -d ${SOURCE_IP} --dport ${SOURCE_PORT} -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.