Закрытый порт при туннелировании HTTP через ssh

Я разрабатываю приложение, которое будет использовать службу AWS SNS для получения уведомлений по HTTP.

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

Все выглядит нормально при проверке соединения с самого хоста EC2, однако порт закрыт при внешней проверке.

Мое локальное приложение находится на порту 2222. Я выполнил следующую команду на своем локальном компьютере, чтобы установить прокси:

ssh -i myCredentials.pem [email protected] -R 2222:localhost:2222

Где myserver.com указывает на экземпляр EC2. С помощью SSH к экземпляру EC2 я могу успешно подключиться к своему приложению через туннель, и nmap отображает следующее:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.00055s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
2222/tcp open  EtherNet/IP-1

Однако, когда я запускаю nmap для экземпляра EC2 с моей локальной машины, порт закрывается:

Nmap scan report for xxxxxx
Host is up (0.24s latency).
Not shown: 998 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
2222/tcp closed EtherNet/IP-1

Группа безопасности, назначенная серверу, разрешает TCP-трафик через порты 2222 на 0.0.0.0/0, а iptables не работает на сервере.

Что мне нужно сделать на стороне EC2, чтобы сделать этот порт открытым для внешнего мира?


person nullPainter    schedule 13.12.2013    source источник
comment
изменить свой профиль безопасности?   -  person Scary Wombat    schedule 13.12.2013
comment
Группа безопасности уже принимает входящий TCP-трафик через порт 2222 от 0.0.0.0/0.   -  person nullPainter    schedule 13.12.2013
comment
Извините, наверное, пропустил эту часть. Если вы запустите еще один экземпляр EC2, возможно, спотовый, он будет открытым?   -  person Scary Wombat    schedule 13.12.2013
comment
Предыдущий инстанс EC2 был Amazon Linux AMI. Я только что создал (не точечный) сервер Ubuntu, и у него такая же проблема. Я подозреваю, что могу упустить что-то фундаментальное во всем процессе туннелирования.   -  person nullPainter    schedule 13.12.2013
comment
Я пытался исключить, связано ли это с вашим брандмауэром. Если у вас есть два EC2, сможете ли вы добиться успеха в nmap?   -  person Scary Wombat    schedule 13.12.2013


Ответы (1)


Команда туннелирования верна, однако для привязки SSH к подстановочному адресу требуется следующая настройка в /etc/ssh/sshd_config на удаленном сервере:

GatewayPorts yes

Как только это будет добавлено, перезапустите sshd, и туннелирование будет работать как нужно, если на пути нет брандмауэров.

person nullPainter    schedule 13.12.2013