블로그.지오닷컴

우분투에서 CSF 명령으로 아마존 서버 접속을 모두 차단하기 본문

노하우/웹서비스 개발

우분투에서 CSF 명령으로 아마존 서버 접속을 모두 차단하기

지오닷컴 2024. 4. 25. 23:52

최근에 관리하는 우분투 서버로 ec2-18-188-20-56.us-east-2.compute.amazonaws.com 와 같은 host 접속이 과도하게 일어나는 것을 확인하였습니다. 하나의 host도 아니고 다양한 지역의 IP를 가지고 접속을 하기 때문에 평소보다 10배 많은 트래픽이 발생하여 손실이 발생하였습니다. 이 때문에 bot 으로 의심되는 compute.amazonaws.com를 모두 차단하여 평소와 같은 트래픽으로 줄일 수 있었습니다.

이번 해결 과정에서는 아래 2개의 게시물을 참고하였습니다.

이 방법을 알아내는 과정에서 How to block amazonaws.com 라고 검색했던 것이 주효한 것 같습니다. 여러분도 문제가 생기면 영문으로 검색해보는 것도 좋을 것 같습니다. 저와 같은 문제로 고생한 분들이 꽤 많은 것 같습니다. 저는 .htaccess 로는 해결이 안 되었습니다.


CSF 설치 및 설정

#우분투에서 설치
wget https://download.configserver.com/csf.tgz
tar xvfvz csf.tgz
cd csf
sudo ./install.sh

#처음 실행
sudo /etc/csf/csftest.pl

#충돌이 일어날 수 있는 APF 및 BFD 등을 제거
sudo /etc/csf/remove_apf_bfd.sh

#기본 설치는 테스트 모드이므로 적용 모드로 설정 파일 변경(아래 내용 참고)
sudo vi /etc/csf/csf.conf

# Change to 0 to disable TESTING mode
TESTING = "0"
. . .
# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443"
# Allow incoming UDP ports
UDP_IN = "20,21,53"
# Allow outgoing UDP ports
UDP_OUT = "20,21,53,113,123"
. . .

#변경된 설정 파일 적용을 위해 재시작
sudo csf -r

아마존 서버 IP 목록 가져오기

# 아마존 서버 IP 목록 파일 가져오기
wget https://ip-ranges.amazonaws.com/ip-ranges.json

# 가져온 아마존 서버 IP 목록 확인하기
grep ip_prefix ip-ranges.json | awk '{print $2}' | tr -d \",

...
3.5.140.0/22
35.180.0.0/16
52.93.178.234/32
52.94.76.0/22
52.95.36.0/22
120.52.22.96/27 
...

CSF로 아마존 서버 IP 모두 차단하기

#가져온 아마존 서버 IP를 모두 CSR 차단 목록으로 만들기
ip-ranges.json | awk '{print $2}' | tr -d \", >>/etc/csf/csf.deny

#CSR을 재실행하여 아마존 서버 IP를 모두 차단하기
csf -r

#실행 시 perl 설치가 안 되었다는 경고 메세지 발생 시, apt-get으로 관련 모듈 설치
- *WARNING* URLGET set to use LWP but perl module is not installed, fallback to using CURL/WGET
apt-get install libwww-perl liblwp-protocol-https-perl libgd-graph-perl

/etc/csf/csf.deny 파일의 차단된 아마존 서버 IP 목록


서버에 접속한 IP(host)별 트래픽을 확인하는 방법은 아래 링크에서 설명해 두었습니다. 실제로 차단되는 트래픽을 확인하시는데 도움이 되실 것입니다.

https://blog.zieo.com/160

 

우분투에서 접속한 IP(host)별 트래픽 확인하기

서버를 관리하다보면 트래픽이 예상외로 트래픽이 많이 나타나는 날이 있습니다. 그럴 때는 누가 서버에 접속해서 트래픽을 유발하고 있는 지 확인하고 싶습니다. 그럴 때 사용할 수 있는 프로

blog.zieo.com

 

다음에 또 좋은 정보로 찾아오겠습니다.

Comments