본문 바로가기
프로그래밍/서버관리

CentOS 7, fail2ban 설정

by 사악신 2019. 6. 4.

ssh, ftp, smtp 등 무작위로 로그인 시도를 할 경우 서비스를 보호하기 위하여 fail2ban 을 사용하여 접속을 차단합니다.

 

#yum install fail2ban-firewalld fail2ban-systemd

 

설치 후 설정 파일을 생성합니다.

 

#cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

 

jail.local 파일의 경우 jail.conf 설정의 내용 중 중복되는 부분을 overwrite 하는 역할을 합니다. 하지만 yum 등의 패키지 매니저를 통한 업데이트가 발생할 경우 conf 파일은 교체되니 복사하여 local 파일을 생성합니다. DEFAULT 에 기본 설정을 지정하고 적용하고자하는 서비스에 enabled = true 를 추가하면 됩니다.

 

[DEFAULT]
bantime = 3600 # 1시간 동안 차단
findtime = 600 # 10분 이내의 로그 데이터로 검사
maxretry = 5 # 5회 이상 로그인 실패시
backend = polling
destemail = 이메일주소
mta = mail
banaction = firewallcmd-multiport
banaction_allports = firewallcmd-allports

[sshd]
enabled = true

[sshd-ddos]
enabled = true

[postfix]
enabled = true

[postfix-rbl]
enabled = true

[dovecot]
enabled = true

[postfix-sasl]
enabled = true


 

fail2ban 을 재실행하고 확인합니다.

 

#systemctl restart fail2ban
#fail2ban-client status

 

 


차단된 IP 를 풀어줄 경우,

(dovecot 에서 x.x.x.x IP를 차단해제)

#fail2ban-client set dovecot unbanip x.x.x.x 

 

특정 IP를 항상 차단 하지 않을 경우,

 

vi /etc/fail2ban/jail.local 에 추가함

ignoreip = 127.0.0.1/8 x.x.x.x

SMTP 인증을 계속 시도하는 경우...

 

vi /etc/fail2ban/filter.d/posfix-sasl.conf 을 생성합니다. 이때 [postfix-sasl] 에서 enabled = true 여야 합니다.

[INCLUDES]
before = common.conf
[Definition] _daemon = postfix/smtpd
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$

 


nginx-req-limit 필터가 존재합니다.

[nginx-limit-req]
enabled = true

nginx 의 설정은 다음과 같이 합니다.( /aaa/bbb 경로의 경우 1초에 1회만 200 응답하고 그 이상은 403 반환합니다.)

limit_req_zone $binary_remote_addr zone=protect:10m rate=1r/s;

....

location /aaa/bbb {
    limit_req zone=protect
    limit_req_status 403;

...

}

limit_conn 의 경우 대용량 파일을 전송하는 도중에 또 다른 대용량 파일을 동시에 요청할 경우 사용하면 됩니다.

 

반응형

'프로그래밍 > 서버관리' 카테고리의 다른 글

zsh 사용하기  (0) 2020.03.10
CentOS 7 SELinux 사용  (0) 2020.03.04
CentOS 7, fail2ban 설정  (0) 2019.06.04
CentOS 7 방화벽 설정  (1) 2019.06.04
간단한 보안 검사하기  (0) 2019.05.30
CentOS7 Let's Encrypt 무료 인증서 사용하기  (0) 2018.06.18

태그

,

댓글0