URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5383
[ Назад ]

Исходное сообщение
"Фронтэнд-туннелирование SSH и FTP?"

Отправлено Ex Nihilo , 17-Июл-16 12:57 
Всех приветствую. С тех пор как железный веб-сервер вырос до гипервизора с ворохом виртуалок столкнулся со следующей проблемой. Есть один внешний IP, который обрабатывает шлюз на FreeBSD. Во внутренней сети (за NAT) крутятся виртуалки с бэкендами на разных вариациях Linux. Если с HTTP всё понятно - на шлюзе делается фронтэнд с proxy_pass в nginx с указанием виртуалок с серыми IP, то как реализовать подобное с SSH (SFTP) и FTP? Допустим, использовать FTP в 2016-ом совсем некомильфо, но как решить проброс SSH-туннеля? Гугление показало вот такой способ: http://www.cyberciti.biz/faq/linux-unix-ssh-proxycommand-pas.../ (с командой ProxyCommand), но для конечных пользователей он совершенно неудобен, да и не поддерживается FileZilla/WinSCP. То есть в идеале должен быть такой механизм:

Пользователь     ->     Шлюз          ->           Виртуалка
10.20.30.40             77.50.40.30:22             192.168.1.105:22
#SSH login user a       user a=192.168.1.105       SSH user a
                        user b=192.168.1.110
                        user c=192.168.1.115

Есть ли корректное (без тупого порт-форвардинга по скрипту) и безопасное (чтобы юзеры не попадали на шлюз или другую виртуалку) решение? Уверен, что не я один с таким сталкивался.

Содержание

Сообщения в этом обсуждении
"Фронтэнд-туннелирование SSH и FTP?"
Отправлено universite , 17-Июл-16 15:03 
Порт форвардинг на шлюзе.

77.50.40.30:10005 -->              192.168.1.105:22
77.50.40.30:12005 -->              192.168.1.105:21

+ модуль для проксирования пассивных FTP соединений


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено Ex Nihilo , 17-Июл-16 21:49 
> Порт форвардинг на шлюзе.
> 77.50.40.30:10005 -->          
>    192.168.1.105:22
> 77.50.40.30:12005 -->          
>    192.168.1.105:21
> + модуль для проксирования пассивных FTP соединений

А без таких диких костылей? Это у меня, выходит, будет с десяток SSH-портов смотреть в веб, откуда их будут брутить китайские ботнеты? Не вариант.

P.S. Мне на ум приходит разве что дублирование пользователей на шлюзе с запуском при коннекте SSH у них скрипта в home, который бы подцеплял по NFS домашнюю папку с виртуалки. Но это тоже костыль.


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено vvp , 17-Июл-16 22:18 
а без костылей тут никак

если хочеш побыть пионЭром - http://www.opennet.dev/opennews/art.shtml?num=44659


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено universite , 18-Июл-16 01:02 

> А без таких диких костылей? Это у меня, выходит, будет с десяток
> SSH-портов смотреть в веб, откуда их будут брутить китайские ботнеты? Не
> вариант.

man ACL
man fail2ban
и еще с 10-к аналогичных продуктов


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено Ex Nihilo , 18-Июл-16 01:15 

> man ACL
> man fail2ban
> и еще с 10-к аналогичных продуктов

Не-не-не, мне Америку открывать не нужно, я и так в курсе существования sshguard и прочих. Просто сама концепция горы открытых портов наружу меня совсем не прельщает, а раздавать на каждого юзера белый список его подсети с доступом к порту ещё более корявое решение. Хотя, видимо, другого варианта просто нет.


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено universite , 18-Июл-16 14:48 
>> man ACL
>> man fail2ban
>> и еще с 10-к аналогичных продуктов
> Не-не-не, мне Америку открывать не нужно, я и так в курсе существования
> sshguard и прочих. Просто сама концепция горы открытых портов наружу меня
> совсем не прельщает, а раздавать на каждого юзера белый список его
> подсети с доступом к порту ещё более корявое решение. Хотя, видимо,
> другого варианта просто нет.

Напишите свой ssh клиент и прокси с шахматами и поэтессами :)


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено Ex Nihilo , 18-Июл-16 15:03 
> Напишите свой ssh клиент и прокси с шахматами и поэтессами :)

Вот это больше всего и удивляет. Казалось бы, ситуация вроде моей встречаются довольно часто, но нормального решения никто до сих пор не сделал. Вот те на.
Что ж, значит будем изобретать вел^W колхозить.


"Фронтэнд-туннелирование SSH и FTP?"
Отправлено alololololo , 19-Июл-16 11:20 
>[оверквотинг удален]
>            
>            
>  user b=192.168.1.110
>            
>            
>  user c=192.168.1.115
>

> Есть ли корректное (без тупого порт-форвардинга по скрипту) и безопасное (чтобы юзеры
> не попадали на шлюз или другую виртуалку) решение? Уверен, что не
> я один с таким сталкивался.

а с haproxy не работает(сам не проверял, нашел на просторах)?
к примеру:
listen SSHD :2200
    mode tcp
    acl is_apple hdr_dom i apple
    acl is_orange hdr_dom -i orange
    use_backend apple if is_apple
    use_backend orange if is_orange

backend apple
    mode tcp
    server apple 10.0.3.221:22

backend orange
    mode tcp
    server orange 10.0.3.222:22