Назад | Перейти на главную страницу

Подключитесь к FTP через VPN

Добрый вечер,

Прошу помощи с небольшой загадкой. Я установил сервер Centos 7 и хотел бы добавить несколько административных служб только для пользователей VPN.

Это веб-сервер, который публично предоставляет порт 80, 443 и 944. Используя 944, можно подключиться к openvpn, это работает, как ожидалось.

OpenVPN сообщает, что подключению назначен IP 10.8.0.6. Теперь у меня есть сервер vsftpd, настроенный для прослушивания на 127.0.0.1:21, но мой клиент openvpn не может его найти, я пробовал несколько разных конфигураций, но моих знаний о сети просто недостаточно для решения этой проблемы. Может ли кто-нибудь проинструктировать меня, какие журналы, файлы и другая информация вам понадобится, чтобы помочь мне найти решение?

Обратите внимание, я понимаю, что VPN - это другой диапазон адресов, и я могу представить, что локальная маршрутизация изменяется всякий раз, когда вы подключаетесь к VPN, я просто не могу понять, как это исправить и подключиться к локальному хосту удаленный сервер.

Приветствуются любые идеи. Заранее спасибо. Чтобы быть ясным, я следовал этому руководству, чтобы добраться до этого момента: ссылка на сайт

Если ваш VSFTPD-сервер ТОЛЬКО прослушивает 127.0.0.1 (не все интерфейсы или определенные интерфейсы), вы не сможете подключиться к нему из вашей системы, подключенной к VPN, вы сможете подключиться к нему только с ftp (и vpn в данном случае) сам сервер.

У вас есть два варианта:

1 - Настройте туннель переадресации портов SSH от вашего vpn-клиента к ftp-серверу. ssh -L 2121: localhost: 21 user @ hostname В этом примере вы должны направить свой FTP-клиент на localhost: 2121, и он будет туннелирован к месту назначения SSH (ваш ftp-сервер) на localhost: 21. Это немного взломано, но сработает.

2a - Измените свой FTP-сервер, чтобы прослушивать больше интерфейсов. Openvpn по умолчанию будет использовать интерфейс tun0, поэтому вы можете настроить его только для прослушивания интерфейса openvpn, однако, поскольку openvpn может удалять / добавлять свой интерфейс в зависимости от своего рабочего состояния, некоторые приложения будут жаловаться, если интерфейс, который вы ему сказали прослушивание недоступно при запуске. Вы должны протестировать этот сценарий, прежде чем полагаться на него.

2b. В качестве альтернативы вы можете просто прослушивать ВСЕ доступные интерфейсы, но вам нужно убедиться, что ваше правило iptables будет запрещать любой трафик, специально не разрешенный вами. Вам также понадобится правило, разрешающее трафик из вашего VPN.

Не видя ваших точных правил iptables, похоже, что 2a или 2b выиграют от правил, которые выглядят примерно так:

iptables -I INPUT -m conntrack -i tun0 --ctstate NEW -m tcp -p tcp --match multiport --dports 21,22,80,443 -j ACCEPT -m comment --comment "tun0 VPN traffic"

iptables -A INPUT -j DROP

Некоторые примечания к iptables: I и A - это «вставить» и «добавить» соответственно, поэтому вставка будет идти в начале списка, а добавление - в конце. Мне нравится использовать модули «multiport» и «comment», чтобы сделать мои правила iptables немного чище, но они не являются обязательными, и вы можете найти другую документацию, показывающую, как использовать немного более ванильную команду iptables.