블로그.지오닷컴
우분투에서 CSF 명령으로 아마존 서버 접속을 모두 차단하기 본문
최근에 관리하는 우분투 서버로 ec2-18-188-20-56.us-east-2.compute.amazonaws.com 와 같은 host 접속이 과도하게 일어나는 것을 확인하였습니다. 하나의 host도 아니고 다양한 지역의 IP를 가지고 접속을 하기 때문에 평소보다 10배 많은 트래픽이 발생하여 손실이 발생하였습니다. 이 때문에 bot 으로 의심되는 compute.amazonaws.com를 모두 차단하여 평소와 같은 트래픽으로 줄일 수 있었습니다.
이번 해결 과정에서는 아래 2개의 게시물을 참고하였습니다.
- CSF 사용법 참조 : https://ko.linux-console.net/?p=9525
- 아마존 웹서버 전체 차단 참조 : https://www.plothost.com/kb/block-amazon-aws-traffic/
이 방법을 알아내는 과정에서 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
서버에 접속한 IP(host)별 트래픽을 확인하는 방법은 아래 링크에서 설명해 두었습니다. 실제로 차단되는 트래픽을 확인하시는데 도움이 되실 것입니다.
다음에 또 좋은 정보로 찾아오겠습니다.
'노하우 > 웹서비스 개발' 카테고리의 다른 글
PHP에서 특정 host 이름으로 접속 차단하기 (0) | 2024.04.26 |
---|---|
우분투에서 프로그램별 트래픽 확인하기 (0) | 2024.04.25 |
우분투에서 접속한 IP(host)별 트래픽 확인하기 (0) | 2024.04.25 |
검색엔진최적화(SEO)를 위한 기본 - 메타 태그(Meta Tag) (0) | 2014.04.30 |
jQuery 적용을 위한 기본 소스 (0) | 2014.04.30 |
Comments