Reguła ruchu przychodzącego Amazon EC2 Security Group z dynamicznym adresem IP

13

Szukam wyjaśnień na temat tego, co widzę jako potencjalny problem z Grupami Bezpieczeństwa EC2.

Konfiguruję grupę zabezpieczeń do łączenia się z instancjami Linux. Stworzyłem reguły „wszędzie” dla dostępu HTTP i HTTPS.

W przypadku mojej reguły SSH samouczek amazonka mówi, że powinienem ograniczyć dostęp przychodzący do mojego publicznego adresu IP .

  1. Nie rozumiem, w jaki sposób jest to bezpieczne lub wykonalne, jeśli twój publiczny adres IP jest dynamiczny?

  2. Mój adres IP jest dynamiczny, więc co się stanie, gdy mój dostawca usług internetowych zmieni mój publiczny adres IP i nie będę mógł ssh do mojej instancji?

Link do przewodnika instalacji, którego używam: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html (Krok 7 „Utwórz grupę zabezpieczeń „wydaje mi się to problematyczne)

Will Byrne
źródło

Odpowiedzi:

6

Nie rozumiem, w jaki sposób jest to bezpieczne lub wykonalne, jeśli twój publiczny adres IP jest dynamiczny?

To rozwiązanie może działać, jeśli okaże się, że adres IP nie zmienia się często lub jeśli potrzebujesz dostępu tylko przez krótki czas. Dodaje dodatkową warstwę bezpieczeństwa, ponieważ SSH nie jest narażony na ruch poza dostarczonym CIDR.

Jeśli określony CIDR nie działa, możesz wypróbować na pokładzie lub więcej zakresów CIDR, z których prawdopodobnie będzie korzystał twój dostawca usług internetowych, to nadal ograniczy dostęp z dużej części Internetu, a to jest wygrana dla bezpieczeństwa.

co się stanie, gdy mój dostawca usług internetowych zmieni moje publiczne IP i nie mogę już ssh do mojej instancji?

Możesz zalogować się do konsoli AWS lub użyć CLI, aby zaktualizować regułę Security Group w locie.

Możesz napisać skrypt bezpośrednio współdziałający z CLI. Może to być tak proste, jak coś, co sprawdza Port 22 rule, czy nie ma aktualnego adresu IP i aktualizuje go, jeśli jest inny. Oczywiście uruchomienie takiego skryptu może wywołać więcej pytań bezpieczeństwa :)

Czy zapora IP jest najlepszym sposobem zabezpieczenia SSH?

Podczas gdy miło jest ograniczyć ruch ssh tylko do zaufanych źródeł IP, tam gdzie jest to praktyczne, rzeczą, która sprawia, że ​​ssh jest bezpieczny, to użycie prywatnych kluczy i rozsądnej konfiguracji.

Kluczowe elementy do rozważenia:

  • Dodaj hasło do klucza prywatnego SSH
  • Wyłącz uwierzytelnianie hasła w SSH
  • Wyłącz logowanie roota do SSH
  • Przeprowadź inspekcję wszystkich kont użytkowników w poszukiwaniu kluczy publicznych SSH

Możesz także zrobić kilka rzeczy, aby pozbyć się „hałasu” związanego z atakami brutalnymi siłami:

  • Uruchom ssh na wyższym porcie
  • Używaj oprogramowania takiego jak fail2ban, który dynamicznie rejestruje wiele nieudanych prób i blokuje zakresy adresów IP na określony czas
Drew Khoury
źródło
4

Można ograniczyć dostęp do serwera SSH według adresu IP, ale SSH nie polega na tym ze względu na swoje bezpieczeństwo. Jeśli wyłączysz logowanie za pomocą hasła ( PasswordAUthentication no) i użyjesz tylko uwierzytelniania za pomocą klucza prywatnego, nikt nie będzie mógł się zalogować bez Twojego klucza prywatnego. To jest bezpieczne.

Innymi słowy, nie musisz martwić się regułami zapory, jeśli nie chcesz.

Andrew Schulman
źródło
1
Aby przejąć plik klucza, musisz się martwić o ukierunkowany atak na komputer lokalny, ale jeśli nie korzystasz z danych dotyczących opieki zdrowotnej / karty kredytowej / danych rządowych, szanse na to są prawdopodobnie minimalne.
ceejayoz
3

Możesz dodać zakres CIDR do grupy zabezpieczeń, która reprezentuje nadzór wszystkich adresów IP, które dostawca usług internetowych może ci przydzielić.

Albo albo skorzystaj z AWS API, aby dynamicznie aktualizować swoją grupę bezpieczeństwa.

dmourati
źródło
3

Istnieje kilka nowszych rozwiązań tego starszego pytania:

Od wewnątrz AWS: Jak automatycznie aktualizować grupy zabezpieczeń dla Amazon CloudFront i AWS WAF za pomocą AWS Lambda

Zdalna aktualizacja ze źródła dynamicznego (skrypt node.js): skrypt węzła aws-ec2-ssh-secgroup-update

Zdalna aktualizacja ze źródła dynamicznego (skrypt Python): Automatycznie dodaj bieżący publiczny adres IP do grupy zabezpieczeń, aby zezwolić na ruch na określonym porcie

Ville
źródło
0

Za pomocą polecenia aws_ipadd można łatwo aktualizować reguły grupy zabezpieczeń AWS i zarządzać nimi oraz dodawać białą listę do publicznego adresu IP za pomocą portu po każdej zmianie.

$ 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!
Piyush Sonigra
źródło
0

Za pomocą interfejsu AWS CLI można dynamicznie dodawać / usuwać reguły dostępu dla SSH w grupie zabezpieczeń. Dostępne są metody API autoryzacji-bezpieczeństwa-grupowania i odwołania do grupy zabezpieczeń .

Niedawno opublikowałem post na ten temat na wypadek, gdybyś potrzebował wyjaśnienia krok po kroku.

pawurb
źródło
Proszę zawsze podawać najistotniejszą część ważnego linku, na wypadek gdyby strona docelowa była nieosiągalna lub została trwale wyłączona. Możesz spojrzeć na Jak napisać dobrą odpowiedź?
Swisstone