fail2ban 이란?
침입 차단 소프트웨어 프레임워크로 로컬 방화벽(예를 들어 iptables)을 설정하기 쉽게해주는 고마운 것이다.
주 목적은 컴퓨터 서버를 무차별 대입 공격으로부터 보호하는것에 있다.
작동원리는 설정한 시간동안 설정한 횟수만큼 연결을 실패하는 ip를 설정한 시간만큼 차단시킨다.
로그기만 프로그램으로 로그기준으로 횟수를 카운트한다.
때문에 자신도 벤당할 수 있어 이부분에 대해 따로 설정이 필요하다.(자신이란 로컬을 의미하는게 아닌 관리자)
fail2ban maxretry 최대 로그인 시도가능 횟수
1 -> 1회 2 -> 7회 3 -> 13회 4 -> 18회 5 -> 25회 n -> 6*(n-1)+1회
의 규칙을 가진다.
#iptable 조작 root권한이 필요하다.
방화벽 확인 : iptables -L
포트 상태확인 : netstat -nap
-n : host명으로 표시 안함
-a : 모든 소켓 표시
-p : 프로세스ID와 프로그램명 표시
포트 LISTEN확인 : netstat -nap | grep LISTEN
포트 열기 : iptables -I INPUT 1 -p tcp --dport 포트번호 -j ACCEPT
-I : 규칙을 추가하는 번호를 말함
-p : 패킷의 프로토콜 tcp, udp
-j : 규칙에 해당하는 패킷의 처리방법 ACCEPT, DROP, LOG, REJECT, ULOG
규칙 조회 : iptables -L -v
-L : 규칙 출력
-v : 자세히
규칙 삭제 : 규칙 번호로 삭제, 규칙방법으로 삭제
번호로 삭제 : iptables -D INPUT 1 //1번이 삭제된다.
규칙으로 삭제 : iptables -D INPUT -p tcp --dport 포트번호 -j ACCEPT
fail2ban 조작
fail2ban 설치 ( 데비안 )
apt-get install fail2ban
규칙수정 : /etc/fail2ban/jail.conf
기본 파일이라면 50번째 라인부터
ignoreip 절대 차단되지 않을 아이피 ( 구분방법 공백 한칸 )
bantime 차단 시간 ( sec 단위 계산 )
findtime 로그에서 기준으로 찾는시간 ( sec 단위 계산 )
maxretry 실패횟수 최대제한 ( 넘으면 벤 )
저장후 서버 재시작 혹은 서비스 재시작
차단 현황 확인 : fail2ban-client status
차단 ip 확인 : /var/log/fail2ban.log
차단 ip 해제 : iptables -D fail2ban-ProFTPD -s xxx.xxx.xxx.xxx -j REJECT
iptables -D fail2ban-SSH -s xxx.xxx.xxx.xxx -j REJECT
출처 : 직접작성