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:
0.0.0.0/1
128.0.0.0/3
160.0.0.0/5
168.0.0.0/6
172.0.0.0/10
173.0.0.0/8
174.0.0.0/7
176.0.0.0/4
192.0.0.0/3
224.0.0.0/3
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 Linuksa
sudo iptables -I INPUT -s 172.64.0.0/16 -j DROP
Po dodaniu reguł musisz je zapisać i upewnić się, że iptables
usługa rozpocznie się przy starcie systemu.
# For Amazon Linux
sudo service iptables save
# Other distributions might use one of these:
#sudo iptables-save > /etc/sysconfig/iptables-config
#sudo iptables-save > /etc/iptables/rules.4
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.