SW/리눅스

Linux : CentOS 8 : Fail2ban 설치, 구성 방법, 예제, 명령어

얇은생각 2022. 12. 11. 07:30
반응형

인터넷에 노출된 모든 서버는 악성 프로그램 공격의 위험이 있습니다. 예를 들어 공용 네트워크에 연결된 소프트웨어가 있는 경우 공격자는 무차별적인 시도를 사용하여 응용 프로그램에 액세스할 수 있습니다.

Fail2ban은 서비스 로그의 악의적인 활동을 모니터링하여 무차별 공격 및 기타 자동화된 공격으로부터 Linux 시스템을 보호하는 데 도움이 되는 오픈 소스 도구입니다. 정규식을 사용하여 로그 파일을 검색합니다. 패턴과 일치하는 모든 항목이 카운트되며, 해당 항목이 미리 정의된 특정 임계값에 도달하면 Fail2ban은 특정 시간 동안 위반 IP를 금지합니다. 기본 시스템 방화벽은 금지 작업으로 사용됩니다. 금지 기간이 만료되면 IP 주소가 금지 목록에서 제거됩니다.

이 자료에서는 CentOS 8 Fail2ban을 설치하고 구성하는 방법을 설명합니다.

 

 

Linux : CentOS 8 : Fail2ban 설치, 구성 방법, 예제, 명령어

 

 

CentOS Fail2ban을 설치

Fail2ban 패키지는 기본 Cent에 포함되어 있습니다.OS 8 리포지토리입니다. 설치하려면 다음 명령을 루트 또는 sudo 권한을 가진 사용자로 입력합니다.

sudo dnf install fail2ban

 

 

설치가 완료되면 Fail2ban 서비스를 활성화하고 시작합니다.

sudo systemctl enable --now fail2ban

 

 

Fail2ban 서버가 실행 중인지 확인하려면 다음과 같이 입력합니다.

sudo systemctl status fail2ban

# ● fail2ban.service - Fail2Ban Service
#    Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
#    Active: active (running) since Thu 2020-09-10 12:53:45 UTC; 8s ago
# ...

 

 

이 시점에서 Cent에서 Fail2Ban이 실행되고 있습니다.OS 서버입니다.

 

 

 

Fail2ban 구성

기본 Fail2ban 설치에는 두 개의 구성 파일인 /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/00-firewall.conf가 함께 제공됩니다. 이러한 파일은 패키지가 업데이트될 때 덮어쓸 수 있으므로 수정하면 안 됩니다.

Fail2ban은 구성 파일을 다음 순서로 읽습니다.

 - /etc/fail2ban/syslog.conf

- /etc/fail2ban/syslog.d/*conf

- /etc/fail2ban/syslog.local입니다.

- /etc/fail2ban/syslog.d/*local

 

.local 파일은 .conf 파일의 설정을 재정의합니다.

Fail2ban을 구성하는 가장 쉬운 방법은 jail.conf jail.local로 복사하고 .local 파일을 수정하는 것입니다. 고급 사용자는 처음부터 .local 구성 파일을 작성할 수 있습니다. .local 파일은 재정의하려는 설정만 포함하여 해당 .conf 파일의 모든 설정을 포함할 필요는 없습니다.

기본 jail.conf 파일에서 .local 구성 파일을 생성합니다.

sudo cp /etc/fail2ban/jail.{conf,local}

 

 

Fail2ban 서버 열기 구성을 시작하려면 텍스트 편집기가 있는 jail.local 파일을 참조하십시오.

sudo nano /etc/fail2ban/jail.local

 

 

이 파일에는 각 구성 옵션이 수행하는 작업에 대한 설명이 포함되어 있습니다. 이 예에서는 기본 설정을 변경합니다.

 

 

 

화이트리스트 IP 주소

금지에서 제외할 IP 주소, IP 범위 또는 호스트를 ignoreip 지시문에 추가할 수 있습니다. 여기서 로컬 PC IP 주소와 화이트리스트에 추가할 다른 모든 컴퓨터를 추가해야 합니다.

ignore ip로 시작하는 줄의 주석을 제거하고 공백으로 구분된 IP 주소를 추가합니다.

# /etc/fail2ban/jail.local

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

 

 

금지 설정 

banttime, findtime maxretry 옵션의 값은 bantime bantime 조건을 정의합니다.

bantime IP가 금지된 기간입니다. 접미사를 지정하지 않으면 기본값은 초입니다. 기본적으로 밴타임 값은 10분으로 설정됩니다. 일반적으로 대부분의 사용자는 더 긴 금지 시간을 설정하려고 합니다. 원하는 대로 값을 변경합니다.

# /etc/fail2ban/jail.local

bantime  = 1d

 

 

IP를 영구적으로 금지하려면 음수를 사용합니다.

find time은 금지가 설정될 때까지의 실패 횟수 사이의 기간입니다. 예를 들어 Fail2ban이 다섯 번의 실패(최대 재시도, 아래 참조) IP를 금지하도록 설정된 경우 이러한 실패는 찾기 시간 내에 발생해야 합니다.

# /etc/fail2ban/jail.local

findtime  = 10m

 

 

maxretry IP가 금지되기 전의 실패 횟수입니다. 기본값은 5로 설정되며, 대부분의 사용자는 이 값을 사용해도 됩니다.

# /etc/fail2ban/jail.local

maxretry = 5

 

 

 

이메일 알림

Fail2ban IP가 금지된 경우 전자 메일 알림을 보낼 수 있습니다. 전자 메일 메시지를 수신하려면 서버에 SMTP를 설치하고 다음과 같이 IP %(action_mw)s로만 금지하는 기본 작업을 변경해야 합니다.

# /etc/fail2ban/jail.local

action = %(action_mw)s

 

 

%(action_mw)s는 문제 IP를 금지하고 whois 보고서와 함께 이메일을 보냅니다. 전자 메일에 관련 로그를 포함하려면 작업을 %(action_mwl)s로 설정하십시오.

또한 다음과 같은 전자 메일 주소의 송수신도 조정할 수 있습니다.

# /etc/fail2ban/jail.local

destemail = admin@tistory.com

sender = root@tistory.com

 

 

Fail2ban은 jail의 개념을 사용합니다. jail은 서비스를 설명하고 필터와 작업을 포함합니다. 검색 패턴과 일치하는 로그 항목이 카운트되고 미리 정의된 조건이 충족되면 해당 작업이 실행됩니다.

Fail2ban은 다양한 서비스에 대해 다수의 jail과 함께 배송됩니다. 또한 자신만의 jail 구성을 만들 수도 있습니다.

기본적으로 CentOS 8, jail이 활성화되지 않았습니다. jail을 활성화하려면 jail 제목 뒤에 enabled = true를 추가해야 합니다. 다음은 sshd jail을 활성화하는 예를 보여 줍니다.

# /etc/fail2ban/jail.local

[sshd]
enabled   = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

 

 

이전 섹션에서 논의한 설정은 jail별로 설정할 수 있습니다. 예를 들어 보겠습니다.

필터는 /etc/fail2ban/filter.d 디렉터리에 있으며 jail과 이름이 같은 파일에 저장됩니다. 사용자 정의 설정 및 정규식 사용 경험이 있는 경우 필터를 미세 조정할 수 있습니다.

구성 파일을 수정할 때마다 Fail2ban 서비스를 다시 시작해야 변경 사항이 적용됩니다.

sudo systemctl restart fail2ban

 

 

 

Fail2ban 클라이언트

Fail2ban Fail2ban-client라는 명령줄 도구와 함께 제공되며, 이 도구를 사용하여 Fail2ban 서비스와 상호 작용할 수 있습니다.

fail2ban-client 명령의 사용 가능한 모든 옵션을 보려면 -h 옵션을 사용하여 다음 명령을 호출합니다.

fail2ban-client -h

 

 

이 도구를 사용하여 IP 주소 금지/금지 해제, 설정 변경, 서비스 재시작 등을 수행할 수 있습니다. 다음은 몇 가지 예입니다.

jail의 상태를 확인합니다.

sudo fail2ban-client status sshd

 

 

IP의 금지를 해제합니다.

sudo fail2ban-client set sshd unbanip 23.34.45.56

 

 

IP를 금지합니다.

sudo fail2ban-client set sshd banip 23.34.45.56

 

 

CentOS 8 Fail2ban을 설치하고 구성하는 방법을 보여드렸습니다. Fail2ban 구성에 대한 자세한 내용은 공식 설명서를 참조하십시오.

반응형