목차
차단 방법
nginx에서 차단을 할 것이기 때문에 새로운 conf 파일을 만들어줘야 한다.
원래는 snippets 폴더에 생성해서 default 파일에 include 하려고 했는데, 도메인을 통하지 않고 접속을 시도하는 경우도 있기 때문에 conf.d 폴더에 fuck_ip.conf 파일을 생성했다.
$ sudo touch /etc/nginx/conf.d/fuck_ip.conf
생성한 뒤 나노 에디터로 수정을 해도 되지만 귀찮으니 Editplus에서 수정할 수 있게 소유자를 변경해준다.
$ sudo chown ubuntu:ubuntu /etc/nginx/conf.d/fuck_ip.conf
access.log 파일을 열어보니 wp-content 경로로 접속을 시도하는 ip는 45.146.165.157이다.
fuck_ip.conf 파일에 아래의 내용을 추가한다.
map $remote_addr $fuck_ip {
"45.146.165.157" 1;
default 0;
}
fuck_ip.conf 파일에 추가된 IP를 차단하기 위해 서버 블록에 아래 내용을 추가해준다.
if ($fuck_ip) {
return 403;
}
당연히 nginx를 재시작해야 적용된다.
$ sudo service nginx restart
악성 아이피 검색
웹린이인 나는 access.log를 봐도 뭐가 악성 IP인지 구분이 잘 안되는데, 스팸 전화번호처럼 악성 IP들을 모아두고 검색이 가능한 DB 사이트가 있었다!
AbuseIPDB - https://www.abuseipdb.com/
접속 기록이 있는 IP들을 검색해보면서 대충 쉽게 구분하는 방법을 알게 됐다.
- 막 만든 듣보잡 사이트에 여러 번 접속
- 로그 상태가 이상한 문자열로 된 경우
- 내 사이트에 없는 경로로 접속을 시도하는 경우
1번의 경우에는 구글에서 크롤링하는 경우도 있으니 검색을 해봐야 되지만 2번이나 3번은 그냥 100% 악성 IP로 등록이 되어있었다.