Чего я не понимаю, так это того, насколько это безопасно или работоспособно, если ваш публичный 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-адресов в течение указанных периодов времени.
Вы можете добавить диапазон CIDR в группу безопасности, которая представляет собой расширенный набор всех IP-адресов, которые ваш ISP может выделить вам.
Либо так, либо используйте AWS API для динамического обновления вашей группы безопасности.
источник
Есть несколько более недавних решений этого старого вопроса:
Изнутри AWS: как автоматически обновлять группы безопасности для Amazon CloudFront и AWS WAF с помощью AWS Lambda
Удаленное обновление из динамического источника (скрипт node.js): скрипт узла aws-ec2-ssh-secgroup-update
Удаленное обновление из динамического источника (скрипт Python). Автоматически добавляйте текущий публичный IP-адрес в группу безопасности, чтобы разрешить трафик через определенный порт.
источник
Вы можете использовать команду aws_ipadd, чтобы легко обновлять правила группы безопасности AWS и управлять ими, а также вносить в белый список ваш ip с портом при каждом его изменении.
источник