안녕하세요 유똥입니다.
오늘은 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 설치 및 설정에 대해 알아봤습니다.
모두 고생하셨습니다.
도움이 되셨다면 구독과 좋아요를
궁금한 내용이 있으시면 댓글 부탁드리겠습니다!!
'IT > Linux' 카테고리의 다른 글
Ubuntu 18.04 LTS 서버버전 설치 (0) | 2021.01.31 |
---|---|
Ubuntu 16.04 LTS 서버버전 설치 (0) | 2021.01.30 |
Apache 403 Forbidden error 해결 방법 (2) | 2021.01.27 |
APM ( Apache 2.4 + PHP 7.3 + MariaDb 10.3 ) yum 설치 (0) | 2021.01.26 |
APM ( Apache 2.4 + PHP 5.6 + MySQL 5.7 ) yum 설치 (0) | 2021.01.26 |
최근댓글