logo

Nginx 특정 IP 차단 하기

Server Side June 20, 2019

오랜만에 방문자 세션을 뒤지던 도중에 일반적인 사용자도 아닌 봇도 아닌 접근자가 이상한 경로를 요청한 로그를 발견했다.

 

 

남겨진 로그정보를 바탕으로 조금 검색해봤더니 관리자 권한이나 특정 엑세스를 노리는 해킹용 접근시도로 밝혀졌다. 보통 과도한 접근시도같은건 자동으로 막히는데 무슨 매크로 돌리는거처럼 발견되는 모든 도메인에 특정파일을 접근시도해보는거는 뭘 어떻게 막아보기도 힘들다.

 

 

그냥 이번처럼 수동적으로 해당 아이피가 다시는 공격하지 못하게 서버단에서 차단 리스트를 관리하는 수밖에...

 

다행히도 차단하는 방법은 짱 간편하다. 아래 구문처럼 쓰면 해당 아이피는 막힌다.

 

1
2
3
4
# sudo vi /etc/nginx/conf.d/ips.conf <- 없으면 생성하자
 
deny 185.220.100.252;
deny 185.220.101.6;
cs

 

이 구문을 nginx 서버 설정 파일의 서버 1뎁스 하위나 로케이션 1뎁스 하위 어디에나 적으면 차단처리가 진행된다. 단 이런 리스트가 많아지면 그만큼 나중에 추가 삭제하기도 힘드니 별도의 ip 차단리스트 파일(/etc/nginx/conf.d/ips.conf)을 만들어서 따로 관리 후 아래처럼 include를 통해 설정옵션을 더 깔끔하게 관리할 수 도 있다.

 

1
2
3
4
5
6
7
8
9
#sudo vi /etc/nginx/sites-available/default 
 
server {
    ...
    
    include /etc/nginx/conf.d/ips.conf;
    
    ...
    
cs

 

물론 위의 서버설정 후 서버 재시작은 잊지말고 해줍시다!