지긋지긋한 아미존 아이피대역에서의 공격. 스팸과 해킹시도 등.
아마존의 전체 아이피대역은 아래의 json 파일로 실시간 제공되고 있다.
https://ip-ranges.amazonaws.com/ip-ranges.json
일반적으로 위 파일을 이용하여, 스크립트를 구성하여 차단하는 방법은 아래와 같다.
1. AWS IP 대역 가져오기
AWS는 공식적으로 JSON 파일을 제공하며, 이 파일에서 IP 대역을 추출할 수 있습니다.
AWS IP 범위를 가져오는 방법:
최신 AWS IP 대역은 아래 URL에서 확인할 수 있습니다.
https://ip-ranges.amazonaws.com/ip-ranges.json
이를 다운로드하고 JSON에서 필요한 IP를 추출해야 합니다.
2. iptables로 AWS IP 차단
IP 대역을 수동으로 추가하는 방법:
iptables -A INPUT -s [AWS_IP_RANGE] -j DROP
iptables -A OUTPUT -d [AWS_IP_RANGE] -j DROP
예를 들어, AWS의 특정 대역(예: 3.5.140.0/22)을 차단하려면:
iptables -A INPUT -s 3.5.140.0/22 -j DROP
iptables -A OUTPUT -d 3.5.140.0/22 -j DROP
⚠ 대역이 많기 때문에 자동화가 필요합니다.
**** 자동으로 AWS 전체 IP 차단 스크립트
#!/bin/
# 최신 AWS IP 대역 다운로드
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[].ip_prefix' > aws_ips.txt
# iptables에 차단 규칙 추가
while read -r ip; do
iptables -A INPUT -s "$ip" -j DROP
iptables -A OUTPUT -d "$ip" -j DROP
done < aws_ips.txt
echo "AWS IP 대역 차단 완료"
📌 jq가 필요하므로 설치(yum install -y jq 또는 apt install -y jq) 후 실행하세요.
3. Router (MikroTik / Cisco)에서 AWS 차단
MikroTik RouterOS
MikroTik에서는 address-list를 사용하여 차단할 수 있습니다.
/ip firewall address-list
add list=aws_blacklist address=3.5.140.0/22
/ip firewall filter
add chain=input src-address-list=aws_blacklist action=drop
add chain=output dst-address-list=aws_blacklist action=drop
📌 위 스크립트를 모든 AWS 대역에 적용하려면 address-list에 자동으로 추가하는 스크립트를 작성해야 합니다.
Cisco Router
Cisco에서는 ACL을 사용하여 차단할 수 있습니다.
access-list 101 deny ip 3.5.140.0 0.0.3.255 any
access-list 101 deny ip any 3.5.140.0 0.0.3.255
access-list 101 permit ip any any
interface GigabitEthernet0/0
ip access-group 101 in
ip access-group 101 out
📌 AWS 대역이 많으므로 ACL을 자동으로 생성하는 스크립트가 필요할 수 있습니다.
4. AWS IP 대역 자동 업데이트
AWS는 IP 대역을 주기적으로 변경하므로, 차단 리스트를 자동으로 업데이트하는 크론 작업을 추가하는 것이 좋습니다.
# 매일 새벽 3시에 AWS IP 대역 업데이트 후 차단
0 3 * * * /root/update_aws_blocklist.sh
특정지역의 대역만을 차단하려면 추가로 추출하는 스크립트를 작성해야 한다.
필자는 그냥 대역만 추출하여 수동으로 iptables에 넣었다.
나중에 삭제하기도 쉽고. 직관적이다.
###########아마존서울리전###########
-A INPUT -s 3.112.0.0/14 -j DROP
-A INPUT -s 3.115.0.0/16 -j DROP
-A INPUT -s 13.112.0.0/14 -j DROP
-A INPUT -s 13.230.0.0/15 -j DROP
-A INPUT -s 13.231.0.0/16 -j DROP
-A INPUT -s 15.152.20.0/24 -j DROP
-A INPUT -s 15.177.79.0/24 -j DROP
-A INPUT -s 18.176.0.0/15 -j DROP
-A INPUT -s 18.178.0.0/16 -j DROP
-A INPUT -s 35.72.0.0/13 -j DROP
-A INPUT -s 35.200.0.0/15 -j DROP
-A INPUT -s 52.193.0.0/16 -j DROP
-A INPUT -s 52.194.0.0/15 -j DROP
-A INPUT -s 54.150.0.0/16 -j DROP
-A INPUT -s 54.168.0.0/16 -j DROP
-A INPUT -s 54.199.0.0/16 -j DROP
-A INPUT -s 54.238.0.0/16 -j DROP
-A INPUT -s 54.250.0.0/16 -j DROP
-A INPUT -s 150.222.240.0/20 -j DROP
-A INPUT -s 151.148.44.0/24 -j DROP
-A INPUT -s 157.167.112.0/21 -j DROP
-A INPUT -s 159.248.232.0/21 -j DROP
-A INPUT -s 159.248.240.0/21 -j DROP
###########아마존서울리전###########
###########아마존일본리전###########
-A INPUT -s 13.112.0.0/14 -j DROP
-A INPUT -s 13.113.0.0/16 -j DROP
-A INPUT -s 13.114.0.0/15 -j DROP
-A INPUT -s 13.208.0.0/16 -j DROP
-A INPUT -s 18.176.0.0/15 -j DROP
-A INPUT -s 18.178.0.0/16 -j DROP
-A INPUT -s 18.179.0.0/16 -j DROP
-A INPUT -s 18.180.0.0/15 -j DROP
-A INPUT -s 18.182.0.0/16 -j DROP
-A INPUT -s 18.183.0.0/16 -j DROP
-A INPUT -s 35.72.0.0/13 -j DROP
-A INPUT -s 35.152.0.0/16 -j DROP
-A INPUT -s 52.68.0.0/15 -j DROP
-A INPUT -s 52.192.0.0/15 -j DROP
-A INPUT -s 52.196.0.0/14 -j DROP
-A INPUT -s 54.64.0.0/15 -j DROP
-A INPUT -s 54.92.0.0/17 -j DROP
-A INPUT -s 54.150.0.0/16 -j DROP
-A INPUT -s 54.168.0.0/16 -j DROP
-A INPUT -s 54.238.0.0/16 -j DROP
-A INPUT -s 54.250.0.0/16 -j DROP
-A INPUT -s 150.249.0.0/16 -j DROP
-A INPUT -s 157.112.0.0/16 -j DROP
-A INPUT -s 176.32.120.0/22 -j DROP
###########아마존일본리전###########
###########아마존중국리전###########
-A INPUT -s 52.80.0.0/16 -j DROP
-A INPUT -s 52.81.0.0/16 -j DROP
-A INPUT -s 52.82.0.0/17 -j DROP
-A INPUT -s 52.82.128.0/18 -j DROP
-A INPUT -s 52.83.0.0/16 -j DROP
-A INPUT -s 54.222.0.0/19 -j DROP
-A INPUT -s 54.222.128.0/17 -j DROP
-A INPUT -s 54.223.0.0/16 -j DROP
-A INPUT -s 54.239.0.0/28 -j DROP
-A INPUT -s 54.239.0.16/28 -j DROP
-A INPUT -s 54.239.1.0/28 -j DROP
-A INPUT -s 54.239.1.16/28 -j DROP
-A INPUT -s 54.239.2.0/23 -j DROP
-A INPUT -s 54.239.4.0/22 -j DROP
-A INPUT -s 54.239.8.0/21 -j DROP
-A INPUT -s 54.239.16.0/20 -j DROP
-A INPUT -s 54.239.32.0/21 -j DROP
-A INPUT -s 54.239.48.0/22 -j DROP
-A INPUT -s 54.239.52.0/23 -j DROP
-A INPUT -s 54.239.54.0/24 -j DROP
-A INPUT -s 54.239.56.0/21 -j DROP
-A INPUT -s 54.239.96.0/24 -j DROP
-A INPUT -s 54.239.98.0/24 -j DROP
-A INPUT -s 54.239.99.0/24 -j DROP
-A INPUT -s 54.239.100.0/23 -j DROP
-A INPUT -s 54.239.104.0/23 -j DROP
-A INPUT -s 54.239.108.0/22 -j DROP
-A INPUT -s 54.239.112.0/24 -j DROP
-A INPUT -s 54.239.116.0/22 -j DROP
-A INPUT -s 54.239.120.0/21 -j DROP
-A INPUT -s 54.239.128.0/18 -j DROP
-A INPUT -s 54.239.192.0/19 -j DROP
-A INPUT -s 54.239.224.0/21 -j DROP
-A INPUT -s 54.239.232.0/22 -j DROP
-A INPUT -s 54.239.236.0/23 -j DROP
-A INPUT -s 54.239.238.0/24 -j DROP
-A INPUT -s 54.239.240.0/22 -j DROP
-A INPUT -s 54.239.244.0/23 -j DROP
-A INPUT -s 54.239.246.0/24 -j DROP
-A INPUT -s 54.239.248.0/22 -j DROP
-A INPUT -s 54.239.252.0/23 -j DROP
-A INPUT -s 54.239.254.0/24 -j DROP
-A INPUT -s 54.240.240.0/24 -j DROP
-A INPUT -s 54.240.244.0/22 -j DROP
-A INPUT -s 54.240.248.0/22 -j DROP
-A INPUT -s 54.240.252.0/23 -j DROP
-A INPUT -s 54.240.254.0/24 -j DROP
-A INPUT -s 13.58.0.0/15 -j DROP
-A INPUT -s 13.64.0.0/14 -j DROP
-A INPUT -s 13.224.0.0/13 -j DROP
-A INPUT -s 14.215.0.0/16 -j DROP
-A INPUT -s 43.229.0.0/16 -j DROP
-A INPUT -s 47.74.0.0/16 -j DROP
-A INPUT -s 47.95.0.0/16 -j DROP
-A INPUT -s 59.111.0.0/16 -j DROP
-A INPUT -s 59.153.0.0/16 -j DROP
-A INPUT -s 120.27.0.0/16 -j DROP
-A INPUT -s 120.55.0.0/16 -j DROP
-A INPUT -s 180.163.0.0/16 -j DROP
###########아마존중국리전###########
위 내용을 /etc/sysconfig/iptables 에 넣고 저장 후 iptables를 restart 하면 된다.
'IT&Guide' 카테고리의 다른 글
윈도우 엣지 비밀번호 확인 방법 (0) | 2024.08.12 |
---|---|
웹사이트 스마트폰 접속 시 페이지가 기본적으로 정상적으로 표시되고, 사용자가 손가락으로 확대할 수 있도록 하려면? 메타테그 (0) | 2024.07.02 |
리눅스 크론 crontab의 사용방법과 예시. (0) | 2023.11.16 |
리눅스 네임서버 운영시 query (cache) 'sl/ANY/IN' denied 내용이 로그파일에 쌓이는데 문제가 무엇이고, 해결방법은 무엇일까? (0) | 2023.08.02 |
Error: Cannot find a valid baseurl for repo: base | yum 설치시 발생하는 에러 해결 방법, CentOS 6 에러. (0) | 2023.02.22 |
댓글