Правило входящего трафика Amazon EC2 Group с динамическим IP

12

Я ищу разъяснения относительно того, что я вижу в качестве потенциальной проблемы с группами безопасности EC2.

Я создаю группу безопасности для подключения к экземплярам Linux. Я создал «где угодно» правила для доступа по HTTP и HTTPS.

Для моего правила SSH в учебнике Amazon говорится, что я должен ограничить входящий доступ к своему общедоступному IP-адресу .

  1. Чего я не понимаю, так это того, насколько это безопасно или работоспособно, если ваш публичный IP-адрес динамический?

  2. Мой IP-адрес является динамическим, что происходит, когда мой провайдер меняет мой публичный IP-адрес, и я больше не могу использовать ssh в своем экземпляре?

Ссылка на руководство по установке, которое я использую: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html (Шаг 7 из «Создание группы безопасности» это то, что мне кажется проблематичным)

Уилл Бирн
источник

Ответы:

6

Чего я не понимаю, так это того, насколько это безопасно или работоспособно, если ваш публичный IP-адрес динамический?

Это решение может сработать, если вы обнаружите, что ваш IP-адрес меняется не часто или вам нужен только короткий доступ. Это добавляет дополнительный уровень безопасности, поскольку SSH не подвергается трафику за пределами CIDR, который вы предоставляете.

Если определенный CIDR не работает, вы можете примерить или использовать несколько диапазонов CIDR на плате, которые, вероятно, будет использовать ваш интернет-провайдер, но это по-прежнему ограничит доступ к большому проценту Интернета, и это победа для безопасности.

что произойдет, когда мой провайдер изменит мой публичный IP-адрес, и я больше не смогу использовать ssh в своем экземпляре?

Вы можете войти в консоль AWS или использовать CLI для обновления правила группы безопасности на лету.

Вы можете написать скрипт, который напрямую взаимодействует с CLI. Это может быть так же просто, как то, что проверяет Port 22 ruleваш текущий IP и обновляет его, если оно отличается. Конечно, запуск такого скрипта может вызвать больше вопросов безопасности :)

Является ли брандмауэр IP лучшим способом защиты SSH?

Хотя целесообразно ограничивать трафик ssh только надежными источниками IP, где это практически возможно, но безопасность ssh заключается в использовании закрытых ключей и разумной конфигурации.

Ключевые пункты для рассмотрения:

  • Добавьте ключевую фразу в свой закрытый ключ SSH
  • Отключить аутентификацию пароля к SSH
  • Отключить root-вход в SSH
  • Аудит всех учетных записей пользователей для открытых ключей SSH

Вы также можете сделать несколько вещей, чтобы избавиться от «шума», связанного с атаками грубой силы:

  • Запустите SSH на более высоком порту
  • Используйте программное обеспечение, например fail2ban, которое будет динамически регистрировать многочисленные неудачные попытки и блокировать диапазоны IP-адресов в течение указанных периодов времени.
Дрю Хури
источник
4

Можно ограничить доступ к вашему SSH-серверу по IP-адресу, но SSH не полагается на это для своей безопасности. Если вы отключите логин с паролем ( PasswordAUthentication no) и используете только аутентификацию с помощью закрытого ключа, никто не сможет войти без вашего личного ключа. Это безопасно.

Другими словами, вам не нужно беспокоиться о правилах брандмауэра, если вы этого не хотите.

Эндрю Шульман
источник
1
Вам действительно нужно беспокоиться о целенаправленной атаке на ваш локальный компьютер, чтобы получить файл ключа, но если вы не используете что-то, имеющее дело с данными здравоохранения / кредитной карты / правительства, шансы на это, вероятно, минимальны.
ceejayoz
3

Вы можете добавить диапазон CIDR в группу безопасности, которая представляет собой расширенный набор всех IP-адресов, которые ваш ISP может выделить вам.

Либо так, либо используйте AWS API для динамического обновления вашей группы безопасности.

dmourati
источник
3

Есть несколько более недавних решений этого старого вопроса:

Изнутри AWS: как автоматически обновлять группы безопасности для Amazon CloudFront и AWS WAF с помощью AWS Lambda

Удаленное обновление из динамического источника (скрипт node.js): скрипт узла aws-ec2-ssh-secgroup-update

Удаленное обновление из динамического источника (скрипт Python). Автоматически добавляйте текущий публичный IP-адрес в группу безопасности, чтобы разрешить трафик через определенный порт.

Виль
источник
0

Вы можете использовать команду aws_ipadd, чтобы легко обновлять правила группы безопасности AWS и управлять ими, а также вносить в белый список ваш ip с портом при каждом его изменении.

$ aws_ipadd my_project_ssh
 Your IP 10.10.1.14/32 and Port 22 is whitelisted successfully.

$ aws_ipadd my_project_ssh
 Modifying existing rule...
 Removing old whitelisted IP '10.10.1.14/32'.
 Whitelisting new IP '10.4.10.16/32'.
 Rule successfully updated!
Пиюш Сонигра
источник