Fail2ban
Fail2ban은 침입 차단 소프트웨어 프레임워크로서 컴퓨터 서버를 무차별 대입 공격으로부터 보호해주는 역할을 한다.
python으로 개발되었고 특정 서비스로 로그인시도가 정해진 값 이상 실패할 경우 로그파일을 읽어서 일정기간동안 접속을 제한하는 툴이다.
ssh,fp,http등에 무작위로 접속을 시도하는 brute force attack에 효과적으로 대응 할 수 있다. 여기서는 nextcloud의 접속실패 로그를 읽어서 접속 제한을 걸 것이다.
설치환경
Ubuntu 18.04.03
nextcloud 16.0.3
설치
apt install fail2ban
fail2ban nextcloud.conf파일 생성
vi /etc/fail2ban/filter.d/nextcloud.conf
아래와 같은 내용 첨가.
[Definition]
failregex=^{.Login failed: '.
' (Remote IP: '').*}$
ignoreregex =
jail.d에도 nextcloud.local 파일 생성.vi /etc/fail2ban/jail.d/nextcloud.local
[nextcloud]
backend = auto
enabled = true
port = 80,443
protocol = tcp
filter = nextcloud
#Number of retrys before to ban
maxretry = 5
#time in seconds
#차단할 시간 (초단위)
bantime = 3600
#지정시간(초단위)
findtime = 300
#Log path, on Ubuntu usually following#nextcloud 로그 위치 기본은 아래
#logpath = /var/www/nextcloud/data/nextcloud.log
logpath = /data/nextcloud/nextcloud.log
위 설정값을 넣어주면 지정시간(findtime)내에 지정횟수(maxretry)를 넘게 실패하면 차단이라는 말이다.(bantime만큼)
설정완료후에는 service fail2ban restart 로 재시작 하면 완료된다.
실제로 클라우드에 들어가서 테스트하면서 /var/log/fail2ban.log를 확인해보면