2015년 1월 1일 목요일

특정 IP를 nginx 접속 차단하기

아침에 서버 로그 그래프를 보니, 다운로드 페이지로의 접속 횟수가 엄청나다. 로그를 확인하니, 상하이쪽 IP 주소에서 계속 접속을 하고 있다.

nginx.conf에 include /etc/nginx/conf.d/blockips.conf를 만들고 nginx.conf에서 include를 했다.

nginx.conf:

http {
...

    # BLOCK SPAMMERS IP ADDRESS
    include /etc/nginx/conf.d/blockips.conf;
}

blockips.conf:

deny XXX.XXX.XXX.XXX;

nginx를 다시 시작하기 전에 nginx -t로 설정파일을 테스트해 본 후 재 시작.

그런데, 이렇게 하면 nginx에서 접속 처리를 하기 때문에 로그에는 계속 남고, 시스템 자원을 이용하게 된다.

더 앞쪽에서 막기 위해 iptables 사용:

sudo iptables -A INPUT -s XXX.XXX.XXX.XXX -j DROP