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 명령으로 설정을 적용해준다.

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.