티스토리 뷰

fail2ban 설치

[Msnote, /usr/local/src >vi /etc/yum.repos.d/CentOS-Base.repo

> 아래 내용추가후 yum install fail2ban 으로 설치가능


[Msnote, /usr/local/src >yum install fail2ban

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
[dag]
name=Dag RPM Repostory for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
 
[kbs-CentOS-Misc]
name=CentOS.Karan.Org-EL$releasever – Stable
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=1
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/
 
cs


[Msnote, /etc/fail2ban >vi /etc/fail2ban/jail.conf

> SSH 를 예로 적용한사례

1
2
3
4
5
6
7
#enabled = false //미적용
enabled = true // 적용
filter = sshdaction = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure // 참조로그
maxretry = 5 // 시도횟수
bantime = 600 // 밴타임
 
cs


iptables -vnL

fail2ban 실행시 체인생성됨

193 11048 fail2ban-SSH tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

Chain fail2ban-SSH (1 references)

> 여기에 드랍IP가 표시됨!


apache 설정

/etc/fail2ban/jail.local

1
2
3
4
5
6
7
8
9
10
11
12
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/apache2/YOUR_WEB_SERVER_ACCESS_LOG
# maxretry is how many GETs we can have in the findtime period before getting narky
maxretry = 300
# findtime is the time period in seconds in which we're counting "retries" (300 seconds = 5 mins)
findtime = 300
# bantime is how long we should drop incoming GET requests for a given IP for, in this case it'5 minutes
bantime = 300
action = iptables[name=HTTP, port=http, protocol=tcp]
cs

/etc/fail2ban/filters.d/http-get-dos.conf 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Fail2Ban configuration file
#
# Author: http://www.go2linux.org
#
[Definition]
 
# Option: failregex
# Note: This regex will match any GET entry in your logs, so basically all valid and not valid entries are a match.
# You should set up in the jail.conf file, the maxretry and findtime carefully in order to avoid false positives.
 
failregex = ^<HOST> -.*"(GET|POST).*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
cs


'서버 > 리눅스 이야기' 카테고리의 다른 글

Undefined Symbol: Unixd_config  (0) 2015.12.09
mod_expires  (0) 2015.12.09
mod_deflate  (0) 2015.12.09
Fail2ban install & config  (0) 2015.12.09
Apache - TIME_WAIT 줄이기기기  (1) 2015.11.19
Snopy Logger : 사용자 세부 사항 및 커맨드 키록  (0) 2015.11.19
댓글
댓글쓰기 폼