Туннелирование локального веб-сервера через 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с ограниченными разрешениями, посвященными этой ответственности?
inf3rno
источник

Ответы:

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.

davidgo
источник
Я думал, что открыть 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