Подключение / туннелирование к удаленному серверу в обход брандмауэра
Вопрос
Я хочу опробовать некоторые программы MySQL, такие как Workbench, в базе данных MySQL, которую я разрабатываю на работе.После многих неудачных попыток установить соединение я, наконец, спросил одного из администраторов сервера, не делаю ли я что-то неправильно, и мне сообщили, что база данных находится за брандмауэром.Таким образом, я могу использовать phpMyAdmin, поскольку он установлен на стороне сервера, но не Excel, Workbench и т.д. (с моего компьютера).
Поэтому я хотел бы знать, существует ли довольно стандартный способ установить VPN-подобное соединение с сервером.В настоящее время я использую SSH-клиент для подключения без проблем.Но очевидно, что это не связывает мои локальные приложения с сервером.Итак, могу ли я установить соединение таким образом, чтобы вся моя система (так сказать) считалась подключенной к серверу?VPN - это самая близкая аналогия, которую я могу провести, но это не вариант.
И....
Считается ли это справедливо "черной шляпой" или это просто то, чего я не знаю, как делать, но все крутые ребята делают это законно?
Спасибо
Решение
SSH-туннелирование превосходно и может намного упростить жизнь.
Преимущества заключаются в том, что все это выполняется через зашифрованный порт 22, что повышает безопасность, и вы также можете сжимать сеанс, поэтому в медленной сети может наблюдаться некоторое улучшение производительности...
Если вы используете Windows, я бы порекомендовал PuTTY, который легко доступен, если вы загуглите его...После подключения вы можете назначить локальный порт, который перенаправляет на порт на удаленном компьютере.В PuTTY это находится в диалоговом окне Подключение-> SSH-> Туннели.
Я часто использую это для переадресации VNC - поэтому, если у вас есть переадресация localport 5900 на удаленный адрес 5900, вы можете подключиться к localhost: 5900, как если бы вы подключались к удаленному IP-адресу.
Это также полезно, если есть "переход" в удаленную сеть - напримервы не ограничены пересылкой на ssh-сервер, к которому вы подключены, вы также можете подключаться к другим серверам через используемый вами ssh-сервер.
Наконец, я не думаю, что в этом варианте есть что-то незаконное - вы используете ssh-соединение по назначению и получили доступ к используемому вами серверу.Во всяком случае, это повышенная безопасность...
Другие советы
Это просто с помощью SSH-туннелирования.Просто сделайте что-то похожее на следующее:
ssh -f username@your.remote.host -L 4040:your.remote.host:3306 -N
Это приводит к следующему:
- -f - переводит SSH в фоновый режим
- username@your.remote .хост - пользователь и хост, к которым можно подключиться по SSH.
- -L 4040: ваш.удаленный.хост: 3306 - Прослушивайте локальные соединения на порту 4040 и пересылайте их по SSH на ваш.удаленный.порт 3306 хоста
- -N - сообщает SSH не выдавать команду на удаленном хосте
Затем вы сможете подключиться к вашему серверу mysql (при условии, что указанные выше порты верны), используя:
mysql --host=localhost --port=4040 --user=mysqluser -p
У администраторов, где я работаю, есть открытый VPN, который подключает их домашний компьютер к серверам на работе, но он используется только для обслуживания и "экстренных ситуаций".
Я не думаю, что для безопасности полезно иметь "дыры" в брандмауэре, особенно в частном месте, где нет брандмауэра для защиты вашего личного компьютера.
Такого рода практика возможна, но должна быть сведена к минимуму