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
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.
źródło
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
źródło
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.
źródło
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.
źródło