개발
백엔드
Nginx 특정 IP 차단 하기
⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
오랜만에 방문자 세션을 뒤지던 도중에 일반적인 사용자도 아닌 봇도 아닌 접근자가 이상한 경로를 요청한 로그를 발견했다.
남겨진 로그정보를 바탕으로 조금 검색해봤더니 관리자 권한이나 특정 엑세스를 노리는 해킹용 접근시도로 밝혀졌다. 보통 과도한 접근시도같은건 자동으로 막히는데 무슨 매크로 돌리는거처럼 발견되는 모든 도메인에 특정파일을 접근시도해보는거는 뭘 어떻게 막아보기도 힘들다.
그냥 이번처럼 수동적으로 해당 아이피가 다시는 공격하지 못하게 서버단에서 차단 리스트를 관리하는 수밖에...
다행히도 차단하는 방법은 짱 간편하다. 아래 구문처럼 쓰면 해당 아이피는 막힌다.
# sudo vi /etc/nginx/conf.d/ips.conf <- 없으면 생성하자
deny 185.220.100.252;
deny 185.220.101.6;
Copy
이 구문을 nginx 서버 설정 파일의 서버 1뎁스 하위나 로케이션 1뎁스 하위 어디에나 적으면 차단처리가 진행된다. 단 이런 리스트가 많아지면 그만큼 나중에 추가 삭제하기도 힘드니 별도의 ip 차단리스트 파일(/etc/nginx/conf.d/ips.conf)을 만들어서 따로 관리 후 아래처럼 include를 통해 설정옵션을 더 깔끔하게 관리할 수 도 있다.
#sudo vi /etc/nginx/sites-available/default
server {
...
include /etc/nginx/conf.d/ips.conf;
...
Copy
물론 위의 서버설정 후 서버 재시작은 잊지말고 해줍시다!
#Nginx
0
개의 댓글
백엔드 콜렉션의 다른 글
개발 카테고리의 다른 글
09/03/2019
MySQL CONCAT 함수 및 NULL 처리 방법
쿼리 작업하다가 데이터 합칠게 있어서 CONCAT 썼다가 안되는 문제 발생해서 문제 해결 후 잊어버릴까봐 작업 로그겸 기록 남깁니다. CONCATMySQL 또는 MariaDB에서 한 개 이상의 문자열 데이터를 합치는 DB함수로서 CONCAT을 지원합니다. 통상적으로는 두개의 유효한 문자열을 합치는데 큰 문제없이 사용할 수 있는 기능이...
06/20/2019
Nginx 체인 인증서 적용
eruLabo의 SSL 인증서가 거의 만료때가 다가와서 2년 연장하면서 새로 인증작업을 다시하는 도중에 체인 인증서라는 것을 적용해보았습니다. 체인 인증서란 루트 인증서와 발급받은 인증서 간의 연결을 보장해주는 인증서로써 쉽게말해 각자 홈페이지에서 사용하고 있는 인증서가 어디의 인증서버에서 발급해준건지 중계 및...

05/21/2019
Integrity 해시 생성
최근에 cdn 주소를 가져다 쓰다가 api 자체에서 Integrity 용 해시를 제공하지 않아서 생성 사이트를 찾아봤습니다. 제 경우에는 jQuery api 를 이용하려고 cdnjs api 에서 해당경로를 찾아냈는데 주소만 제공하고 별도의 해시를 제공하지 않았습니다. ssl 인증서를 사용하는 웹 페이지에서 외부 웹 리소스를 이용할땐 가...