요약
Brutelock 에이전트를 설치하고 설정하면 SSH, FTP, POP, IMAP 등에서 반복된 로그인 실패를 실시간으로 감지해 공격 IP를 차단합니다. 이 문서는 설치 단계, 구성 파일 편집, iptables 연동, 테스트 방법과 운영 체크리스트를 포함한 실무 가이드입니다.
한 줄 정의
Brutelock: 시스템 로그를 모니터링해 무차별 대입(브루트포스) 시도를 탐지하고 악성 IP를 자동으로 차단하는 오픈소스 에이전트입니다.
설치 개요
- 지원 서비스: SSH 외에 FTP, POP, IMAP 등 로그 파일을 통해 감시 가능한 모든 서비스.
- 확장성: 로그 파일 경로와 정규표현식만 제공하면 추가 서비스 모니터링 가능.
설치 전 점검
- 루트 권한 또는 sudo 권한을 가진 계정으로 작업하십시오.
- 방화벽 정책(예: iptables) 변경 전 원격 접속 복구 수단을 준비하십시오.
설치 단계
- Brutelock 에이전트를 다운로드하고 /usr/local/에 저장합니다.
- 터미널에서 작업 디렉터리 이동:
cd /usr/local/
- 압축 해제:
tar -xjvf brutelock-version_number.tar.bz2
- 디렉터리 진입:
cd /usr/local/brutelock-version_number
- 구성 스크립트 실행:
./configure
- 빌드:
make
- 설치:
make install
- 새 구성 파일 편집
- 파일 경로: /usr/local/brutelock/conf/brutelock.conf
- 구독 키(subscription key)를 설정하십시오.
- SSH 로그 경로가 시스템마다 다르므로 필요하면 경로를 수정하십시오.
- FTP, POP, IMAP 등 보호할 다른 서비스를 주석 해제 후 설정하십시오.
- 화이트리스트 편집
- 경로: /usr/local/brutelock/conf/whitelist
- 각 IP를 별도 줄로 추가합니다. 로컬호스트(127.0.0.1) 외에 서버의 외부 IP도 최소한 하나 추가하십시오.
- iptables에 별도 체인 추가
- Brutelock이 차단 규칙을 삽입할 체인을 만듭니다:
/sbin/iptables -N Brutelock-Firewall-INPUT
- INPUT 체인에 Brutelock 체인을 삽입합니다:
/sbin/iptables -I INPUT -j Brutelock-Firewall-INPUT
- 데몬 시작
/usr/local/brutelock/bin/brutelockd
- 로그 모니터링
- 설치 후 시스템 로그(예: /var/log/auth.log 또는 /var/log/secure)를 관찰하여 실패한 로그인 횟수가 줄어드는지 확인합니다.
중요: 구독 키
구독 키가 없다면 Brutelock 사이트에서 무료 또는 유료 옵션을 선택해 키를 발급받으십시오. 무료 옵션으로도 브루트포스 공격을 적극 차단할 수 있으며, 유료 구독은 지속적인 룰·데이터 업데이트를 통해 예방적 보호를 제공합니다.
구성 팁
- 정규식 패턴을 적용할 때는 로그 형식(타임스탬프, 호스트명, 서비스명 등)에 맞춰 테스트하세요.
- 여러 서비스의 로그를 한 곳에서 수집하고(예: rsyslog, syslog-ng) Brutelock이 수집된 로그 파일을 모니터링하도록 설정하면 관리가 편리합니다.
- 화이트리스트는 최소 권한 원칙을 따르고, 넓은 범위(예: 0.0.0.0/0)로 절대 추가하지 마십시오.
테스트 및 검증
- 기본 테스트 케이스
- 정상: 루프백(127.0.0.1)에서 허용되는지 확인.
- 실패 시 차단: 테스트용 외부 IP에서 여러 번 실패 로그인 후 iptables 규칙이 삽입되는지 확인.
- 화이트리스트 예외: 화이트리스트에 넣은 IP는 차단되지 않는지 확인.
운영 체크리스트 역할별
- 시스템 관리자
- brtelockd 서비스 실행/중지 명령 숙지
- /usr/local/brutelock/conf/brutelock.conf 백업
- iptables 규칙 변경 전 세션 유지
- 보안 담당자
- 정기적으로 로그와 차단된 IP 목록 검토
- 화이트리스트 변경 이력 감사
- 운영팀
- 패키지/소스 업데이트 시 구성 파일 호환성 점검
간단 운영 SOP
- 신규 서버에 Brutelock 설치
- 구성 파일에 구독 키와 로그 경로 설정
- 화이트리스트와 iptables 체인 추가
- 데몬 시작 후 24시간 모니터링
- 비정상 트래픽 발견 시 화이트리스트 및 정규식 조정
언제 Brutelock이 적합하지 않은가
- 비정상적으로 많은 동시 접속이 정상인 환경(예: 대규모 API 엔드포인트에서 정상 비밀번호 입력 실패가 빈번한 경우)에서는 오탐이 발생할 수 있습니다. 이 경우 보다 정교한 인증·라우팅 기반 방어(예: rate limiting, WAF, MFA)와 병행해야 합니다.
대안 도구
- Fail2Ban: 로그 기반 차단 도구로 설정 문법과 통합 방법이 Brutelock과 유사합니다.
- CrowdSec: 협업 기반 침해 인텔리전스 공유가 가능한 오픈소스 도구입니다.
간단 용어집
- Brutelock: 로그 모니터링 기반 자동 차단 에이전트
- SSH: Secure Shell, 원격 접속 프로토콜
- iptables: 리눅스 커널 패킷 필터링 툴
요약
Brutelock은 설치와 구성이 간단하며, 로그 기반으로 반복 로그인 실패를 자동 차단해 서버 가용성과 보안을 높입니다. iptables와 연동해 차단 규칙을 적용하고, 화이트리스트와 정규 표현식 설정을 통해 오탐을 줄이십시오.
추가 참고
- 구성 파일이나 로그 경로가 시스템마다 다를 수 있으므로 README를 확인하십시오.
- 방화벽 규칙을 변경하기 전에 원격 액세스 복구 계획을 준비하십시오.
저자
편집