nginx 에서 useragent 로 접속 차단하기

회사에서 관리 중인 서버에 특별한 이유가 없는데 접속 속도가 어마어마 하게 느리고 CPU 사용률도 높아서 원인을 찾아보다 접속 로그에 요상한 bot이 계속해서 접속하는 것을 발견하고 useragent 를 이용해 차단하기로 했다. ip는 계속해서 변하기 때문에 어려움이 있다.

/etc/nginx/ 디렉토리에 useragent.rules 파일을 생성하고 아래 내용을 추가한다.

map $http_user_agent $badagent {
        default         0;
        ~*yellowbrandprotectionbot	1;
	~*semrushBot	1;
}

다음으로 nginx.conf 파일에 아래와 같이 추가한다. 추가된 내용은 include /etc/nginx/useragent.rules; 이다.

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    include /etc/nginx/useragent.rules;

다음으로 server 블럭에 아래 코드를 추가한다.

        if ($badagent) {
            return 403;
        }

service nginx reload 명령으로 설정을 적용해준다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.