Reject2ban이란 하나의 클라이언트(supplicant)가 지정된 시간(findtime)내에 지정된 회수(maxretry) 이상 인증 실패가 발생하면 일정 시간(bantime) 동안 인증을 거부하는 기능입니다. 이렇게 설정된 시간으로 인증이 거부된 클라이언트는 Reject2ban Jail에 포함되게 되며 최초로 Jail에 포함된 이후 bantime이 지나야 다시 인증을 받을 수 있습니다.
Jail에 포함된 클라이언트의 인증 요청은 로컬 데이터베이스 및 외부 데이터베이스 쿼리를 무시하게 되므로 brute-force 등으로 인한 공격발생 시 외부 데이터베이스의 트래픽 증가를 방지할 수 있습니다. 예를들어 findtime이 10분이며 maxretry는 10 그리고 bantime이 5분인 경우 10분이내에 10번의 Access-Reject 발생시 5분동안 어떠한 데이터베이스 쿼리도 진행하지 않고 무조건 인증이 거부됩니다.
다만 이 기능은 무선랜 컨트롤러 및 AP에 따라 클라이언트의 인증 요청회수보다 많은 요청이 인증서버에 수신될 수 있으므로 충분한 값을 설정하는것을 권장합니다. 즉, 클라이언트는 한번 요청했지만 무선랜 컨트롤서에서 재요청을 진행하여 2회 이상의 인증 요청이 인증 서버에 수신될 수 있습니다. 이러한 경우 인증서버는 인증 실패를 2회로 간주합니다.
또한 Jail된 클라이언트가 인증 요청을 시도하여도 클라이언트에는 어떠한 인증 실패 피드백(feedback)이 전송되질 않으므로 사용자 계속 인증 실패가되므로 사용자에 사전 공지가 필요합니다.
Jail된 클라이언트에 대해 즉시 인증을 다시 허용하려면 Reject2ban Jail 메뉴에서 해당 사용자를 삭제하면 됩니다.
Reject2ban 설정
RADIUS> 설정> 일반> Reject2ban에서 설정하며 bantime, findtime, 그리고 maxretry를 설정할 수 있습니다. 제품 초기 이 기능은 "사용 안 함" 상태로 출고되므로 사용을 원할 경우 "사용"으로 변경하고 나머지 값을 설정하세요. bantime, findtime, 그리고 maxretry의 권장 값은 각각 120분, 60분, 그리고 60회 입니다.
이 기능은 일부 악성 클라이언트의 비정상 요청으로부터 데이터베이스 부하를 감소시키기 위한 목적이므로 권장 설정값보다 작게 지정할 경우 정상적인 클라이언트가 의도치않게 Jail에 포함되어 인증이 거부될 수 있습니다.
Reject2ban 이력
RADIUS> 이력> Reject2ban은 특정 사용자의 요청이 Reject2ban 조건(findtime, maxretry)을 만족하여 인증 거부된 이력을 나타냅니다.
또한 관리자가 수동으로 특정 사용자를 Jail에 추가하거나 제외시킬 수 있는데 이러한 이력도 포함됩니다.