kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

OS

[Linux/Unix] Fail2ban 적용

까마기 2014. 9. 19. 17:34
728x90
반응형
Fail2ban
- 파이썬으로 만든 침입 방지 프레임워크이다.
- 패킷 컨트롤 시스템(ex: Tcp Wrapper)이나 iptables가 설치된 POSIX 시스템에서 사용 가능하다.
- 주요 기능은 로그 파일을 감시하여 username/password 무차별 침입 시도(Brute-force, dictionary attack)등 비정상적인 행동을 하는 IP를 차단하는 기능이다.

- 적용방법은 log를 기록하는 각 서비스 별로 적용이 가능하다. ex) apache, sendmail, ssh, iptables, squid 등등

<설치> - 소스파일 다운로드 및 컴파일
# wget https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.8.13
# tar zxvf 0.8.13
# cd fail2ban-0.8.13
# ./setup.py install

<설치> - rpm 다운로드
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum install fail2ban -y


< 각 OS 종류 별로 맞는 스크립트 복사하여 데몬 설정 >
# cd files
[root@master1 fail2ban-0.8.13]# cd files/
[root@master1 files]# ll
합계 64
-rw-rw-r-- 1 root root 5498 2014-03-15 17:14 bash-completion
drwxrwxr-x 2 root root 4096 2014-03-15 17:14 cacti
-rw-rw-r-- 1 root root  468 2014-03-15 17:14 fail2ban-logrotate
-rw-rw-r-- 1 root root   36 2014-03-15 17:14 fail2ban-tmpfiles.conf
-rw-rw-r-- 1 root root  313 2014-03-15 17:14 fail2ban.service
-rwxrwxr-x 1 root root 2400 2014-03-15 17:14 gen_badbots
-rw-rw-r-- 1 root root  218 2014-03-15 17:14 gentoo-confd
-rwxrwxr-x 1 root root 1556 2014-03-15 17:14 gentoo-initd
-rw-rw-r-- 1 root root 1011 2014-03-15 17:14 ipmasq-ZZZzzz_fail2ban.rul
-rw-rw-r-- 1 root root  587 2014-03-15 17:14 macosx-initd
drwxrwxr-x 2 root root 4096 2014-03-15 17:14 nagios
-rwxrwxr-x 1 root root 2141 2014-03-15 17:14 redhat-initd
-rw-rw-r-- 1 root root 1615 2014-03-15 17:14 solaris-fail2ban.xml
-rwxrwxr-x 1 root root 1682 2014-03-15 17:14 solaris-svc-fail2ban
-rw-rw-r-- 1 root root 2679 2014-03-15 17:14 suse-initd

[root@master1 files]# cp redhat-initd /etc/init.d/fail2ban
[root@master1 files]# chmod 755 /etc/init.d/fail2ban 
[root@master1 files]# chkconfig fail2ban on
[root@master1 files]# chkconfig --list | grep fail2ban
fail2ban        0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제

<jail.conf 설정파일 복사>
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

< 탐지 ignore 할 ip 설정 >
# vi /etc/fail2ban/jail.local

ignoreip = 자신의ip

* 악성 IP를 찾아 감옥(Jail)에 넣기 위해 jail.conf (fail2ban 설정 파일)에 규칙을 생성하여 대상 IP의 요청을 일정 시간 동안 무시하도록 할 수 있다.

<ssh 설정>

# vi /etc/fail2ban/jail.conf

[ssh-iptables]

enabled  = true            // 사용 여부
filter   = sshd                // /etc/fail2ban/filter 에 로그를 읽을 때 사용할 필터가 정의
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]                // iptables로 차단하고 메일을 발송하겟다는 내용
logpath  = /var/log/sshd.log            //로그 파일 위치
maxretry = 5                                // 차단 적용 되는 실패 횟수
bantime = 1800                            / 차단 시간


# touch /var/log/sshd.log
# /etc/init.d/fail2ban start
 



반응형

'OS' 카테고리의 다른 글

Microsoft ACPI-Compliant System  (0) 2014.09.19
리눅스 보안 관련 설정  (0) 2014.09.19
리눅스 Iptables  (0) 2014.09.19
vnc 서버 설치  (0) 2014.09.19
리눅스 cpu 코어에 프로세서 지정 명령어  (0) 2014.09.19