Туннелирование локального веб-сервера через SSH


1

Я хотел бы связаться с моим локальным веб-сервером, http://192.168.0.186:3000когда меня нет дома. Я не хочу публиковать его в Интернете, потому что я не думаю, что это безопасно, если вы не являетесь экспертом в обслуживании и безопасности. Однажды я сделал это с сервером Apache, использующим dyndns, и в тот же день журналы были полны попыток хакеров. Я понял, что что-то не так, когда получил сообщение от операционной системы, что C: / заполнен.

Я подумал об использовании SSH-туннеля. Поэтому я предполагаю, что мне нужен SSH-сервер, работающий на локальной машине. У меня уже есть один 192.168.0.186:22. Я использую для подключения с ssh root@192.168.0.186Git Bash. Я думаю, мне нужно открыть порт 22 на брандмауэре маршрутизатора, чтобы я мог подключиться к серверу SSH через Интернет.

На клиентских машинах у меня Windows 7, Windows 8.1 и Fedora 23 в настоящее время. В Windows я бы хотел использовать git bash или что-то подобное вместо putty, если это возможно. Я хотел бы запускать все, что связано с этим, в фоновом режиме, поэтому запуск замазки каждый раз, когда я хочу подключиться к домашнему серверу, не подходит. Я могу написать простой фоновый сервис для клиентов, если это необходимо.

Мои вопросы:

  1. Как настроить сервер SSH для пересылки HTTP-запросов на локальный веб-сервер?
  2. Как настроить браузер на использование SSH-сервера для подключения к локальному веб-серверу?
  3. Чтобы сделать это более безопасным, я должен создать нового пользователя Linux 192.168.0.186с ограниченными разрешениями, посвященными этой ответственности?

Ответы:


1

Посмотрите на пересылку SSH Посмотрите на переадресацию локального порта на ssh.

ssh -L 3000:internalip:3000 ext.home.ip.addr

Это откроет локальный порт 3000, который сопоставляется с вашим сервером на 3000. Вы можете получить к нему доступ, перейдя по адресу http: // localhost: 3000 на машине, которая инициировала соединение ssh

Вам также нужно будет выполнить переадресацию портов на маршрутизаторе, чтобы сопоставить внешний IP-адрес с внутренним IP-адресом для порта 22, и, вероятно, опубликовать его с использованием динамического DNS. К сожалению, это приводит к открытию SSH для всего мира и нежелательно. Это также не поможет вам на коробках с замазкой ( но вы можете сделать что-то подобное с замазкой )

Однако, если бы я делал это, я бы настроил систему OpenVPN на своем домашнем маршрутизаторе, а затем использовал бы OpenVPN для подключения внешних систем к локальной сети - это защищает трафик порта 22 и не требует использования SSH. Его также намного проще автоматизировать, и для большинства ОС есть клиенты OpenVPN.


Я думал, что открыть SSH для интернета не так рискованно, как открыть HTTP-сервер. На самом деле я использую модем интернет-провайдера для маршрутизации. Он не поддерживает dyndns и openvpn. Я уверен, что могу решить часть dyndns на сервере. Можете ли вы разработать свой ответ о openvpn? Можно ли установить VPN-сервер на моем локальном сервере вместо модема, или как это работает? Можете ли вы предоставить некоторые учебники? Все, что я нашел о VPN, - это как использовать его в качестве прокси для просмотра веб-страниц, что не помогает в моем случае.
— inf3rno

Еще одна интересная вещь: я не хочу подключаться ко всей домашней сети. Я просто хочу получить доступ к одному серверу. Так что VPN может быть преувеличением.
— inf3rno

@ inf3rno - Да, вы можете установить OpenVPN только на вашем целевом ПК (и переадресации портов на вашем маршрутизаторе, чтобы добраться до него). Взгляните на openvpn.net/index.php/open-source/documentation/… - вы просто настраиваете сервер OpenVPN на компьютере (google "как настроить сервер OpenVPN в XXXXX", где XXXXX - это ОС), а затем убедитесь, что вы сопоставили порт, который вы настроили в маршрутизаторе.
— Давидго

Я не думаю, что само собой разумеется, что ssh, открытый для мира, автоматически менее безопасен, чем openvpn, открытый для мира. Безопасность любого из них во многом зависит от того, как вы его настроили.
— Пол

2
@paul - я не согласен, игнорируя, что SSH намного сложнее должным образом защитить - и прямые последствия и вероятность успешной атаки SSH грубой силой, я оставлю вас с venafi.com/blog/post/… - а также сравню cvedetails.com/vulnerability-list/vendor_id-97/product_id-585/… with cvedetails.com/vulnerability-list/vendor_id-3278/…
— davidgo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.