Подключение / туннелирование к удаленному серверу в обход брандмауэра

StackOverflow https://stackoverflow.com/questions/1164437

  •  18-09-2019
  •  | 
  •  

Вопрос

Я хочу опробовать некоторые программы 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, который подключает их домашний компьютер к серверам на работе, но он используется только для обслуживания и "экстренных ситуаций".

Я не думаю, что для безопасности полезно иметь "дыры" в брандмауэре, особенно в частном месте, где нет брандмауэра для защиты вашего личного компьютера.

Такого рода практика возможна, но должна быть сведена к минимуму

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top