반응형

안녕하세요 유똥입니다.

오늘은 faile2ban에 대해 알아보겠습니다.

서버를 운영을 하다 보면 SSH, FTP 등 외부에서 알 수 없는 IP가 계정 접근을 시도하는 경우가 더러 있습니다.

이런 경우 보통 해커들의 무작위 대입 공격으로 인해 접속이 될 때까지 패스워드를 변경하며, 계속 접근을 시도합니다.

그러면 패스워드 정보가 뚫리게 되고, 서버 안의 정보들이 위험해질 수 있습니다.

 

이런 경우 faile2ban이라는 프로그램을 이용하여 무작위 공격 방어를 할 수 있습니다.

faile2ban은 접근로그파일에서 실패횟수를 계산하고 iptables을 이용해 서버접근을 차단하는 툴입니다.

 

faile2ban 이란?

파이썬으로 개발되어있으며, 무작위로 로그인이 시도할 경우, SSH 대입공격 방지 할 경우 해당 IP를 커널 방화벽에 등록하여 차단시켜줍니다.

 

그럼 faile2ban 설치 및 설명 시작하겠습니다.


 1. faile2ban 설치

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
yum install -y fail2ban fail2ban-systemd

기본 Centos repo에서는 faile2ban 패키지가 없기 때문에 EPEL 저장소에서 다운 받고 설치를 진행하시면 됩니다.


 2. 부팅시 자동시작 설정 후 fail2ban 구동

systemctl enable fail2ban
systemctl start fail2ban

 3. faile2ban 설정 디렉터리

/etc/fail2ban : fail2ban 설치 시 기본적으로 설치되는 디렉토리

/etc/fail2ban/filter.d : 접속 로그파일 분석 시 filter.d에 있는 서비스 필터를 사용 sshd.conf 파일의 경우 sshd 서비스 로그필터 파일

/etc/fail2ban/fail2ban.conf : log 파일 설정

/etc/fail2ban/jail.conf : fail2ban 기본설정 파일입니다.
설정파일 덮어지는 순서 :  /etc/fail2ban/jail.conf  → /etc/fail2ban/jail.d/*.conf  →  /etc/fail2ban/jail.local  →  /etc/fail2ban/jail.d/*.local

/etc/fail2ban/action.d → 계정 접속 실패시 사용할 수 있는 action 파일들이 위치해 있습니다.

fail2ban-firewalld 설치 → 00-firewalld.conf 파일 생성

fail2ban-systemd 설치 → 00-systemd.conf파일생성
rm -f /etc/fail2ban/jail.d/00-firewalld.conf→ fail2ban-firewalld 패키지가 필수로 설치됩니다.
firewalld가 아닌 iptables 사용 할 예정이므로 해당 파일을 삭제합니다

 


 4. vi /etc/fail2ban/jail.d/jail.local

cp -arp /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/jail.local
vi /etc/fail2ban/jail.d/jail.local

[DEFAULT]
# 차단하지 않을 IP
ignoreip = 127.0.0.1/8 192.168.10.0/24

# 접속을 차단할 시간. 600 = 10분
bantime  = 10800

# 최대 허용 횟수
maxretry = 10

#아래 시간동안 maxretry횟수만큼 실패시 차단
findtime  = 86400

# (선택) 메일 알림기능
destemail = sysadmin@example.com
sender = fail2ban@my-server.com
mta = sendmail
action = %(action_mwl)s

[sshd]
enabled = true

#여러 포트를 사용할 경우 port = ssh,10022
port = 22
filter = sshd
logpath = /var/log/auth.log

 5. 차단 현황 

fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:
   
 cat /var/log/messages | grep Ban

Banned IP list에 차단 IP 이력 확인하시면 됩니다. 

messages log에도 Ban 차단 이력이 남습니다.


 6. 차단 해제

fail2ban-client set sshd unbanip [ IP ]
iptables -D fail2ban-SSH -s [ IP ] -j REJECT

 7. iptables 적용 확인

iptables -nvL | grep f2b-sshd
 107K  160M f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 22

이로서, 여기까지 진행하셨다면 faile2ban 설치 및 설정에 대해 알아봤습니다.
모두 고생하셨습니다.

도움이 되셨다면 구독 좋아요

궁금한 내용이 있으시면 댓글 부탁드리겠습니다!!

정리.txt
0.00MB

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
});