Amazon EC2 인스턴스를 사용하여 IP 주소 범위를 차단하려면 어떻게 해야 합니까?

Amazon EC2 인스턴스를 사용하여 IP 주소 범위를 차단하려면 어떻게 해야 합니까?

특정 범위의 IP 주소가 내 서버에 문제를 일으킨다는 것을 알고 있습니다. 172.64.*.*내 Amazon EC2 인스턴스에 대한 액세스를 차단하는 가장 좋은 방법은 무엇입니까? 보안 그룹을 사용하여 이를 수행할 수 있는 방법이 있습니까, 아니면 서버 자체의 방화벽을 사용하여 수행하는 것이 더 낫습니까?

답변1

만일의 경우에 대비해 가능하다면 서버와 방화벽의 트래픽을 차단하세요.

보안 그룹은 호스트 외부에 위치하여 데이터가 사용자에게 도달하지 않기 때문에 훌륭합니다. 그러나 대부분의 서버 기반 방화벽만큼 구성이 가능하지 않습니다.

불행하게도 EC2 보안 그룹은 기본 거부 정책을 통해서만 서비스를 "허용"할 수 있습니다. 따라서 더 작은 IP 범위에 대해 공개적으로 "허용된" 서비스에 대한 액세스를 차단하려는 경우 "나머지 인터넷"에 대한 허용 규칙을 구축하는 것은 IP 범위를 차단하는 것보다 조금 더 복잡합니다. 좋은 청크를 지정했으므로 172.64.0.0/16을 제외한 네트워크 범위 목록은 그리 길지 않습니다.

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

이 목록은 포트에 추가되어야 합니다. 그런 다음 해당 포트에 대한 "모두 허용" 규칙을 제거할 수 있습니다. 이 작업을 수행하려는 여러 포트가 연속적이지 않은 경우 해당 목록을 여러 번 입력해야 합니다. 보안 그룹이 여러 개인 경우 관리가 금방 어려워질 수 있습니다.

로컬 방화벽도 작동합니다. iptables기본 Amazon AMI 및 모든 Linux 배포판에서 사용 가능

sudo iptables -I INPUT -s 172.64.0.0/16 -j DROP

규칙을 추가한 후에는 규칙을 저장하고 iptables부팅 시 서비스가 시작되는지 확인해야 합니다.

# 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

저장된 구성 파일은 배포판에 따라 다릅니다.

VPC 네트워크 ACL 사용

당신이 사용하는 경우개인 네트워크인스턴스의 경우 서브넷에서 실행되도록 "네트워크 ACLS"를 지정할 수 있습니다. 네트워크 ACL을 사용하면 허용 및 거부 규칙을 작성할 수 있으므로 그렇게 하는 것이 좋습니다.

답변2

트래픽을 중지하는 가장 쉬운 방법은 트래픽을 인스턴스의 VPC 네트워크 ACL에 추가하고 해당 IP 주소의 모든 트래픽을 거부하는 것입니다(VPC가 사용 중이라고 가정).

한 가지 기억해야 할 점은 거부 규칙 번호는 첫 번째 허용 규칙 번호보다 작아야 한다는 것입니다.

답변3

저는 문제에 두 번 부딪혔고 EC2 상황이 약간 다르다는 것을 깨달았습니다. iptables서버가 Elastic Load Balancer(ELB) 뒤의 클러스터에 있는 경우에는 작동하지 않습니다. - IP 주소아는 사람은 ELB입니다.

ELB가 최신 구성으로 구성된 경우 아래 답변을 참조하세요.https://stackoverflow.com/questions/20123308/how-to-configure-aws-elb-to-block-certain-ip-addresses-known-spammers

우리의 경우에는 그런 설정이 없었기 때문에 X-FORWARDED-FOR거기에서 헤더를 조회하고 IP 주소를 차단하는 Apache를 사용해야 했습니다.

이를 Apache 구성에 추가하십시오(아마도 VirtualHost 블록에 있음).

RewriteEngine On
RewriteCond %{HTTP:X-FORWARDED-FOR] ^46\.242\.69\.216
RewriteRule .* - [F]

ELB에서 설정한 헤더를 확인합니다.

구성을 저장하고 apache2ctl -tDebian/Ubuntu(또는 apachectl -tRHEL)로 테스트한 후 Apache를 다시 시작하세요.

이것은 단지 403 Forbidden응답을 다시 보냅니다.

답변4

인스턴스가 VPC 내에 있는 경우 네트워크 ACL 인바운드 규칙을 편집할 수 있습니다.

To block 172.64.*.* add an entry like 172.64.0.0/16

To block 172.64.120.* add an entry like 172.64.120.0/24

To block 172.*.*.* add an entry like 172.0.0.0/8

To block a specific IP add an entry 172.64.120.56/32     

여기에 이미지 설명을 입력하세요.

관련 정보