Wiem, że pewien zakres adresów IP powoduje problemy z moim serwerem. 172.64.*.*
Jaki jest najlepszy sposób na zablokowanie dostępu do mojej instancji Amazon EC2? Czy istnieje sposób, aby to zrobić za pomocą grup zabezpieczeń, czy lepiej jest to zrobić za pomocą zapory na samym serwerze?
27
Odpowiedzi:
Na wszelki wypadek blokuj ruch zarówno na serwerze, jak i zaporze.
Grupy zabezpieczeń są dobre, ponieważ znajdują się poza hostem, więc dane nigdy nie docierają do ciebie. Nie są one jednak tak konfigurowalne jak większość zapór ogniowych na serwerze.
Niestety grupy zabezpieczeń EC2 mogą „zezwalać” na usługi tylko poprzez domyślne zasady odmowy. Jeśli więc próbujesz zablokować dostęp do publicznie „dozwolonej” usługi dla małego zakresu adresów IP, zbudowanie reguły zezwolenia dla „reszty Internetu” jest nieco bardziej skomplikowane niż tylko blokowanie zakresu adresów IP. Jak już określiłeś niezły fragment, lista zakresów sieci nie obejmujących 172.64.0.0/16 nie jest zbyt długa:
Tę listę trzeba będzie dodać dla swoich portów. Następnie możesz usunąć regułę „zezwalaj na wszystko” dla tego portu. Jeśli masz wiele portów, które chcesz to zrobić, to nie są ciągłe, lista będzie musiała przejść wiele razy. Jeśli masz wiele grup zabezpieczeń, może to szybko przerodzić się w niemożność zarządzania.
Działa również lokalnie zapora ogniowa.
iptables
jest dostępny na domyślnej Amazon AMI i wszystkich dystrybucjach LinuksaPo dodaniu reguł musisz je zapisać i upewnić się, że
iptables
usługa rozpocznie się przy starcie systemu.Plik konfiguracyjny do zapisania będzie się różnić w zależności od dystrybucji.
Korzystanie z VPC
Jeśli używasz VPC dla swoich instancji, możesz określić „Network ACLS”, które działają w twojej podsieci. Sieciowe listy ACL pozwalają na pisanie zarówno reguł zezwalających, jak i odmawiających, więc zaleciłbym zrobienie tego w ten sposób.
źródło
iptables
niedziałającego, więc czy odnosisz się do dużej dozwolonej podsieci w grupie zabezpieczeń?Najprostszym sposobem zatrzymania ruchu jest (zakładając, że używany jest VPC), dodając go do listy ACL sieci VPC tej instancji i odrzucając cały ruch z tego adresu IP.
Należy pamiętać, że numer reguły odmowy powinien być mniejszy niż numer pierwszej reguły zezwolenia.
źródło
Dwukrotnie napotkałem problem i zdałem sobie sprawę, że moja sytuacja EC2 jest nieco inna:
iptables
nie działa, jeśli twój serwer (serwery) znajdują się w klastrze za elastycznym modułem równoważenia obciążenia (ELB) - adres IP, o którym wie instancja, to adres ELB.Jeśli masz skonfigurowane ELB w bardziej nowoczesnej konfiguracji, zapoznaj się z SO: /programming/20123308/how-to-configure-aws-elb-to-block-certain-ip-addresses-known -spamerzy
W naszym przypadku nie mieliśmy dobrze skonfigurowanych ustawień, więc musiałem użyć Apache, który może szukać
X-FORWARDED-FOR
nagłówka i blokować z niego adresy IP.Dodaj to do konfiguracji Apache (być może w bloku VirtualHost):
Spowoduje to sprawdzenie nagłówka ustawionego przez ELB
Zapisz konfigurację, przetestuj
apache2ctl -t
dla debian / ubuntu (lubapachectl -t
dla RHEL), a następnie uruchom ponownie apache.To po prostu wysyła
403 Forbidden
odpowiedź z powrotemźródło
Blokowanie ruchu z jednego zakresu IP / IP w AWS
Oto krótki samouczek: http://chopmo.dk/posts/2015/06/13/blocking-traffic-in-aws.html
źródło