Skip to menu

Server Admin

Fail2ban 설치

inkwang@gmail.com 2019.02.24 07:48 Views : 114

Fail2ban

 

1. CentOS 의 추가 저장소인 EPEL(Extra Packages for Enterprise Linux yum) 를 설치합니다.

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

 

2. epel 저장소에서 fail2ban 을 설치합니다.

# yum --enablerepo epel install fail2ban

 

3. 부팅시 자동으로 시작되도록 설정하고 fail2ban 을 구동합니다.

# systemctl enable fail2ban

# systemctl restart fail2ban

 

4. 설정

fail2ban 의 기본 설정은 /etc/fail2ban/jail.conf 에 있지만
기본 설정 파일은 놔두고 개인화 설정 파일인 /etc/fail2ban/jail.local 을 사용하는 것이 좋습니다.

 

ignoreip 에 설정된 IP 는 로그인을 실패해도 차단하지 않으며 기본 설정은 localhost 입니다.
IP를 추가할 경우, 공백이나 , 로 구분해 주면 되며 아래는 로컬호스트와 192.168.10.x 대역은 차단하지 않는 설정입니다.

 

ignoreip = 127.0.0.1/8 192.168.10.0/24

 

bantime 

bantime 은 인증에 실패한 클라이언트를 차단할 시간을 초 단위로 지정하며 기본 설정은 600초(10분)입니다.

259200

 

findtime, maxretry

findtime 과 maxretry 는 클라이언트를 차단하기 위한 조건을 지정하며 findtime 에 지정한 시간(초 단위)내에 maxretry 에 설정한 횟수만큼 인증을 실패하면 차단하게 됩니다.

 

mail 알림

destemail = sysadmin@example.com

sender = fail2ban@my-server.com

mta = sendmail

 

action = %(action_mw)s

fail2ban 으로 차단한 정보를 메일로 전송할 경우 destemail 에 수신자 이메일 주소를  설정하고 sender 에는  "보낸 사람"의 정보를 설정합니다.

보낸 사람 이름은 전자 메일의 "보낸 사람"필드의 값을 설정하며 mta 매개 변수는 메일을 보내는 데 사용할 메일 서비스를 설정하며 기본은 sendmail 입니다.

중요한 부분은 action 항목으로 차단했을 때 실행할 액션을 의미하며 기본 설정은 아무 일도 안 하는 설정인 "action = %(action_)s" 입니다.

기본 설정으로는 차단 내용을 메일로 전송하지 않으므로 action_ 을 action_mw 나 action_mwl 로 지정해야 메일을 전송하며 차이는 아래와 같습니다.

 

action_mw : 메일을 전송하고 whois 로 IP 정보를 조회한 결과를 첨부

action_mwl : 메일을 전송하고 whois 로 IP 정보를 조회한 결과와 관련된 로그를 첨부

whois 가 설치되지 않은 경우 $ sudo yum install whois 를 실행합니다.

 

개별 jail 설정

기본적으로 fail2ban 은 차단하지 않으므로 차단할 서비스를 [sshd] 처럼 항목명에 서비스를 등록하고 enabled = true 를 추가해 주면 차단됩니다.

 

포트 번호 변경

ssh 를 다른 포트로 사용할 경우 port 항목에 해당 포트를 기술해 주면 됩니다.
만약 ssh 가 여러 포트를 사용한다면 , 를 구분자로 해서 포트를 모두 기술하며 아래는 ssh 기본 포트와 1982 를 사용할 경우 설정입니다.

 

[sshd]

enabled = true

port = ssh, 2251

 

Sample

[DEFAULT]

## 차단하지 않을 IP

ignoreip = 127.0.0.1/8 192.168.0.10/24

 

# 3시간 차단

bantime  = 259200

 

# 아래 시간동안 amxretry 만큼 실패시 차단

findtime  = 300

 

# 최대 허용 횟수

maxretry = 3

 

# 메일 수신자, 다중 수신자는 지원 안 함

destemail = sysadmin@example.com

 

# 메일 보낸 사람

sender = fail2ban@my-server.com

 

# 메일 전송 프로그램

mta = sendmail

 

# 차단시 whois 정보와 관련 로그를 첨부하여 메일 전송

action = %(action_mwl)s

 

# sshd 서비스 차단

[sshd]

enabled = true

port     = ssh, 2251

 

5. 서비스 재시작

# systemctl restart fail2ban

 

fail2ban 로그는 /var/log/fail2ban.log 에 기록되므로
tail -f /var/log/fail2ban.log 명령어로 확인해 볼 수 있습니다.

 

6. 차단 정보 확인

# fail2ban-client status sshd

 
No. Subject Author Date Views
12 GitHub 사용 John 2020.05.12 4
11 그누보드 설치 문제점 해결 John 2020.04.19 197
10 phpMyAdmin 설치 John 2020.04.15 4
9 디렉토리 색상 변경 inkwang@gmail.com 2019.02.25 2363
8 XE3 설치 inkwang@gmail.com 2019.02.25 120
7 XE 설치 inkwang@gmail.com 2019.02.25 112
6 mariaDB 설치 inkwang@gmail.com 2019.02.25 112
5 php 7 install inkwang@gmail.com 2019.02.25 135
4 httpd setup inkwang@gmail.com 2019.02.25 113
3 sshd port 변경 inkwang@gmail.com 2019.02.24 137
2 vsftpd 설치 & 설정 inkwang@gmail.com 2019.02.24 117
» Fail2ban 설치 inkwang@gmail.com 2019.02.24 114
Up