fail2ban과 ipset 그리고 iptable의 조합으로 워드프레스 블로그의 웹 방화벽을 구축한지 만으로 3일 정도가 지났다. 그런데 예상보다 그 효과는 더욱 극적이었다.
필자의 블로그에는 하루에도 수천번의 sshd 무작위 로그인 시도와 워드프레스 웹 로그인 시도 그리고 수시로 몰려오는 파일 스캔으로 로그 파일의 사이즈는 커져만 갔었다.
그래서 앞의 포스트에서 많은 고민 끝에 fail2ban과 ipset 그리고 iptable의 조합으로 웹 방화벽을 구축하고 가장 공격이 많은 세가지의 filter와 jail을 만들고 iptable과 ipset에 ip를 통째로 차단하는 action을 적용했다.
무작위 SSH 로그인 시도는 사라졌다
SSH 접속의 경우 jail에서 2번 시도하면 세 번째 시도부터 차단하도록 적용했더니 하루만에 ssh 접속 시도는 사라졌다. 이는 iptabe의 정책이 DROP이어서 ssh 무작위 로그인 시도에 대해 아무런 응답이 없다 보니 시도 자체를 멈춘것으로 보인다. 특히나 해커들끼리 공유되는 ssh 로그인 시도가 가능한 서버의 목록에서도 사라졌기 때문으로 추측된다.
wp-login 시도 차단 사례
워드프레스의 로그인 페이지인 /wp-login.php에 접근하여 무작위 로그인 시도의 경우 허용된 IP가 아닌 경우 2번만 봐주고 세 번째 시도부터 차단하도록 jail을 작성하여 적용했다. 그 후 다음과 같이 jail에서 지정한 action에 의해 ipset의f2b-apache2-wplogin이라는 그룹에 추가된 차단 IP가 꽤 존재하고 있다.

그 중에서 45.55.138.32 라는 IP의 접근시도를 access.log에서 찾아보니 다음과 같이 2번의 로그인 시도 후 iptable에서 차단되어 더 이상의 로그가 없었다.

세 번째 시도부터는 iptable에 등록된 차단정책에 의해 워드프레스 로그인 페이지에 접근하지 못한 것이다.
웹페이지 취약한 파일 스캔(403, 404) 차단 사례
또한 필자의 워드프레스 블로그 관리자페이지는 관리목적으로 접근을 허용한 IP가 아닌 IP에서 접근하는 경우 403 에러를 응답하도록 보안 설정을 해두었다. 일단 403 에러로 접근을 차단했다. 그리고 /.env, /.git 등 취약한 경로나 파일을 스캔하는 경우에는 404 에러가 발생한다. 이 두 경우를 합하여 5번 이상의 403 , 404 에러를 발생시키는 ip가 탐지될 경우 f2b-apache2-40x 라는 ipset 그룹에 해당 ip를 추가하여 iptable에서 차단하도록 action을 작성했다.
그결과 다음과 같이 f2b-apache2-40x라는 ipset 그룹에 차단된 ip들이 차곡~차곡~ 쌓여있었다.

그리고 그IP들 중에서 172.212.188.103 IP의 접근 내역을 access log에서 찾아보았다.

404 응답이 38초에서 40초까지 3초간 8회 발생했다. 아마도 ipset에 해당 ip를 등록하는데 약간의 시간이 걸려 5회가 아니라 8회 발생한 것으로 보인다. 취약한 파일들을 스캔하다가 8회만에 차단된 것이다. 이런 경우 그 뒤에 다른 파일이름으로 수십회의 404 Not Found 에러가 발생하는 것이 일반적이다. 하지만 8회만에 차단된 것이다.
이로써 fail2ban과 ipset 그리고 iptable 조합의 웹 방화벽이 매우 잘 동작한다는 것을 확인할 수 있었다. 앞으로 계속 이 조합의 웹 방화벽을 계속 운영하게 될 것 같다.
#iptbale #fail2ban #ipset #웹방화벽
답글 남기기