Группа безопасности Amazon EC2 входящее правило с динамическим IP

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

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

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

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

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

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

10
задан 30 June 2015 в 14:23
6 ответов

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

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

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

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

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

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

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

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

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

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

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

  • Запустите ssh на более высоком порту
  • Используйте программное обеспечение типа fail2ban, которое будет динамически регистрировать многочисленные неудачные попытки и блокировать диапазоны IP-адресов на заданные промежутки времени
5
ответ дан 2 December 2019 в 22:08

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

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

.
3
ответ дан 2 December 2019 в 22:08

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

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

.
2
ответ дан 2 December 2019 в 22:08

На этот старый вопрос есть несколько более свежих решений:

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

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

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

2
ответ дан 2 December 2019 в 22:08

Вы можете использовать команду 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!
0
ответ дан 20 February 2020 в 02:44

Вы можете использовать AWS CLI для динамического добавления/удаления правил доступа для SSH в вашей группе безопасности. Доступны методы API authorize-security-group-ingress и revoke-security-group-ingress.

Недавно я опубликовал сообщение в блоге об этом на случай, если вам понадобится пошаговое объяснение.

После настройки правильной группы безопасности и пользователей IAM вы можете переключать доступ по SSH с помощью следующих сценариев bash:

bin/open_ssh

#!/bin/sh

source ./bin/.authorize_aws

WHITELISTED_IP=$(curl https://ifconfig.me 2> /dev/null)

echo "Opening SSH for ${WHITELISTED_IP}"

aws ec2 autorize-security-group-ingress \
--group-name ephemeral-ec2-ssh-access \
--region us-west-1 --protocol tcp --port 22 \
--cidr "${WHITELISTED_IP}/32" 2> /dev/null

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY

bin/close_ssh

#!/bin/sh

source ./bin/.authorize_aws

WHITELISTED_IP=$(curl https://ifconfig.me 2> /dev/null)

echo "Closing SSH for ${WHITELISTED_IP}"

aws ec2 revoke-security-group-ingress \
--group-name ephemeral-ec2-ssh-access \
--region us-west-1 --protocol tcp --port 22 \
--cidr "${WHITELISTED_IP}/32" 2> /dev/null

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
0
ответ дан 26 April 2020 в 13:00

Теги

Похожие вопросы