Fail2ban
fail2ban은 외부 침입자들로부터 계정 또는 비밀번호 시도 횟수 초과시 특정 시간동안 아예 접근을 못하도록 막아버리는 프로그램이다.
ssh를 사용하는 나의 라즈베리파이 서버에 로그인 시도하는 해커들을 방지하기위해 사용한다.
sudo apt install fail2ban # 설치
sudo vi /etc/fail2ban/jail.conf # jail.conf 설정
bantime은 일주일 (1w)로 설정했다.
findtime은 maxretry 횟수를 시도하는 총 시간이다. 100분으로 설정했다.
systemctl retstart fail2ban # 재시작
sudo systemctl status fail2ban # fail2ban 구동 확인
오류
fail2ban 실행이 실패한다.
Fail2ban 설정 파일 구문 점검을 위해서 다음 명령을 실행했다.
sudo fail2ban-client -d
빨간색에러 말고 WARNING을 보면
WARNING Have not found any log file for sshd jail 이라고 나와있다.
이는 sshd jail을 위한 log file이 없기 때문이다.
즉, sshd jail을 위한 log file을 빈 파일로 만들어주면 해결이다. log file의 이름은 auth.log이며 path는 /var/log로 설정하면 된다.
sudo vi /var/log/auth.log
Fail2ban의 Jail
Fail2ban에서 "Jail"은 특정 서비스나 애플리케이션에 대해 악의적인 IP를 차단하기 위해 구성된 정책 집합입니다.
sshd jail은 SSH 서비스와 관련된 보안을 강화하기 위한 Fail2ban의 Jail입니다.
Fail2ban은 SSH 로그 파일(/var/log/auth.log 등)을 모니터링하고, 실패한 로그인 시도나 비정상적인 접근 시도를 감지한 뒤, 해당 IP를 방화벽 규칙으로 차단합니다.
SSHD Jail이란?
Fail2ban에서 "Jail"은 특정 서비스나 애플리케이션에 대해 악의적인 IP를 차단하기 위해 구성된 정책 집합입니다.
sshd jail은 SSH 서비스와 관련된 보안을 강화하기 위한 Fail2ban의 Jail입니다.
Fail2ban은 SSH 로그 파일(/var/log/auth.log 등)을 모니터링하고, 실패한 로그인 시도나 비정상적인 접근 시도를 감지한 뒤, 해당 IP를 방화벽 규칙으로 차단합니다.
Jail의 주요 구성 요소
Jail은 Jail 설정 파일에서 정의됩니다. 일반적으로 /etc/fail2ban/jail.local 또는 /etc/fail2ban/jail.conf에서 설정됩니다. Jail의 주요 구성 요소는 다음과 같습니다:
- 서비스 이름 ([sshd])
- sshd는 SSH 서비스를 보호하기 위한 Jail입니다.
- Jail 이름은 특정 서비스나 애플리케이션에 따라 다를 수 있습니다.
- 로그 파일 경로 (logpath)
- Fail2ban이 분석할 로그 파일 경로입니다.예: /var/log/auth.logSSH 서비스에서 로그인 시도와 관련된 모든 정보는 이 로그 파일에 기록됩니다.
- 필터 (filter)
- 로그 파일에서 악성 패턴(예: 실패한 로그인 시도)을 감지하기 위한 정규 표현식입니다.
- SSHD Jail의 필터는 /etc/fail2ban/filter.d/sshd.conf에 정의됩니다.
- 액션 (action)
- 감지된 악성 IP에 대해 어떤 조치를 취할지 정의합니다.일반적으로 방화벽을 이용한 IP 차단입니다.
'라즈베리파이' 카테고리의 다른 글
라즈베리파이 홈서버 8 - iptable, GeoIP (1) | 2024.12.23 |
---|---|
라즈베리파이 홈서버 7 - 포트포워딩 (0) | 2024.12.23 |
라즈베리파이 홈서버 5 - SSH 기본 포트 변경하기 (0) | 2024.12.22 |
라즈베리파이 홈서버 4 - Hostname 변경 (0) | 2024.12.22 |
라즈베리파이 홈서버 3 - 사용자 추가 및 root 비활성화 + 도커 그룹추가 (1) | 2024.12.22 |