Ограничение доступа по SSH к инстансу Amazon EC2
Я готовлюсь к настройке инстанса Amazon EC2. Это будет машина для тестирования и разработки, которая позволит мне размещать скрипты PHP, Python и т. Д. На сервере без привязки к локальной машине. В настоящее время я использую NitrousIO, но коробка EC2 более привлекательна по ряду причин.
Однако одна вещь беспокоит меня. В большинстве документов четко говорится об ограничении доступа по SSH только своим IP-адресом. Для большинства компаний это, вероятно, не проблема (и, действительно, у моего работодателя установлен диапазон IP-адресов), но мой домашний IP-адрес является динамическим. Есть ли возможность ограничить доступ SSH к экземпляру EC2 по IP-адресу в такой ситуации? Я обеспокоен тем, что меня заблокировали в неподходящее время.
4 ответа
Это не будет проблемой, если у вас есть доступ к настройкам групп безопасности для панели EC2 на консоли Amazon Web Services.
Всякий раз, когда вы регистрируетесь, вы можете перейти в группу безопасности, связанную с вашим экземпляром EC2, настроить входящий доступ и добавить или изменить правила SSH. Есть также удобный выпадающий список с надписью "Мой IP", поэтому он автоматически заполнит пространство вашей информацией и заблокирует этот экземпляр.
Вы должны создать скрипт, который добавляет / удаляет правило группы безопасности, предоставляя доступ к вашему текущему IP.
Используйте веб-API для получения вашего текущего IP-адреса. Что-то вроде http://api.ipify.org/?format=json
Используйте результат для вызова интерфейса командной строки AWS: http://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-sg.html
Примерно так должно работать:
aws ec2 authorize-security-group-ingress --group-name <SSH_ACCESS_GROUP_NAME> --protocol tcp --port 22 --cidr <MY_IP>
Не забудьте удалить правила тоже.
Даже с динамическим IP-адресом должна быть возможность выбрать диапазон, в который вы попадете, либо проверив со временем, какой IP-адрес вы получаете, либо спросив вашего провайдера о конкретном пуле IP-адресов. Как только это будет сделано, вы можете установить запрет по умолчанию и разрешить свой диапазон IP следующим образом:
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
... конечно, заменив значения IP тем, что согласуется с вашими выводами. /16
означает, что последние 16 бит IP могут быть любыми, что соответствует .0.0
часть ИС.
Предупреждение: будьте уверены на 100%, что вы установили его перед применением правила запрета по умолчанию, иначе вы заблокируете себя. Если вы можете, я рекомендую получить оболочку со статическим IP-адресом и добавить ее, чтобы на всякий случай иметь альтернативный маршрут.
На ум приходит пара вариантов.
1) Попросите вашего локального интернет-провайдера предоставить белый список статических IP-адресов и использовать его с локальной машины.
2) разрешить его ТОЛЬКО из диапазона IP-адресов вашего маршрутизатора, так как вы, вероятно, использовали только несколько из этого подключения маршрутизатора. Например белый список 123.456.78.90/21 для SSH.
3) если опция 1 или 2 невозможна, вы МОЖЕТЕ использовать консольный графический интерфейс для ручного изменения "известного" текущего IP-адреса для этого соединения перед использованием ssh с локальной машины.
4) также возможно из домашнего маршрутизатора настроить его на использование только статического для этой машины, поэтому, хотя провайдер может не дать вам статический IP, вы можете использовать статический IP-адрес локальной сети, который все еще будет маршрутизироваться через домашнее соединение.