방화벽 iptables 로 IP 차단하기


블로그에 스팸 접속을 웹 서버에서 막았는데 CPU부하는 여전하다. 그래서 아예 웹서버에 들어오기 전에 있는 방화벽에서 IP로 막았다.

워드프레스 스팸 및 관리자 권한 탈취 접속

아마존 라이트세일의 인스턴스 CPU 부하가 갑자기 많아졌다. 며칠동안 구글 어낼리티스의 실시간 접속자 수에 비해 웹 서버 접속자 수가 너무 많다.

access.log 를 분석해보니 특정 ip 에서 워드프레스 크론을 돌리거나 xmlrpc.php , 플러그인들을 접속해서 관리자 권한이나 해킹을 시도하고 있다. 그런데 ip가 엄청 많다. ip를 돌려가면서 쓰는 모양이다.

그래도 몇 개의 ip가 해킹하려는 시도가 보여서 이 ip 를 막기로 했다.

우분투 방화벽

친구한테 물어보니 웹서버에서 ip나 url를 막아도 php-fpm 은 같이 뜬다고 한다. 웹서버를 아파치에서 nginx 로 바꿔 동접 문제를 그나마 해결했다고 생각했는데, php-fpm이 cpu 부하를 차지한다.

커널레벨에서 하는 방화벽인 iptables 로 막으면 웹서버 까지 안 가지 cpu 사용이 줄어들 것같다. 그래서 iptables 방화벽을 사용해보기로 했다.

IPTables

AWS 라이트세일 우분투로 인스턴스를 만들었는데 iptables 가 이미 설치되어 있었다.

iptables 버전확인

sudo iptables -V

iptables 설정 저장 및 불러오기

iptables 설정은 기본적으로는 저장되지 않는다고 한다. 그래서 save 명령을 하는데, 찾아보니 iptables-persistent 패키지를 이용하면 명령어세트가 텍스트 파일로 저장되고 불러올 수 있다.

방화벽 IPTables 로 접속 IP 차단하기

단일 IP 차단하기

xxx.xxx.xxx.xxx 대신 차단할 ip를 입력한다.

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

IP 범위로 차단하기

1.1.1.x 차단하기

sudo iptables -A INPUT -s 1.1.1.0/24 -j DROP

1.1.x.x 차단하기

sudo iptables -A INPUT -s 1.1.0.0/16 -j DROP

1.x.x.x 차단하기

sudo iptables -A INPUT -s 1.0.0.0/8 -j DROP

설정되었는지 확인한다.

sudo iptables -L

IPtables 규칙 삭제

규칙을 삭제할 경우도 있다. 규칙의 번호로 삭제할 수 있다.

iptables 규칙 목록을 번호 출력하기 

sudo iptables -L INPUT --line-numbers

규칙 번호로 삭제하기

sudo iptables -D INPUT 2

모든 규칙 삭제하기

sudo iptables -F

서버 리부팅 후 반영되게

iptables 규칙은 서버를 재시작하면 사라진다.

iptables-persistent 를 이용해 iptables 설정을 저장하고 불러올 수 있다.

구글 검색봇 IP

33, 192로 시작하는 IP는 구글에서 공개한 구글 검색봇 IP 이다.

마치며

워드프레스 관리자 계정을 탈취하거나 해킹하기 위해 접속 시도를 막기 위한 여러가지 방법이 있는데 특정 ip가 확실한 경우에는 ip를 막을 수 있다. 그동안 웹 서버에서 ip를 차단했는데 cpu 부하 때문에 방화벽에서 막았다.

그러나 한 ip가 아니라 여러 ip를 사용하는 경우에는 매번 ip를 추가할 수 없다. iptables 에서 url 로 막는 방법과 fail2ban 으로 막는 방법을 더 알아봐야겠다.







제휴 링크로 구매 시 제휴마케팅 활동의 일환으로 일정액의 수수료를 지급받아 콘텐츠를 제작하는데 큰 도움이 됩니다.



도움이 되셨다면, 댓글이나 소중한 커피 한 잔 부탁드려도 될까요?

커피 사주기



























스쿼트스타: 스쿼트 카운터

스쿼트하면 자동으로 횟수 측정, 횟수를 음성으로 세주고 스쿼트 속도 등의 분석, 일별/월별/연도별 운동 기록 관리









Add a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다