본문 바로가기

프로그래밍언어/리눅스

[리눅스] 서버보안을 위한 fail2ban

Brute Forcing 공격에 대비하기 

0.개요 
우리가 서비스 로그를 확인할 경우 
pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.xxx.xxx.xxx
pam_succeed_if(sshd:auth): error retrieving information about user developer
Invalid user developer from xxx.xxx.xxx.xxx
input_userauth_request: invalid user developer
pam_unix(sshd:auth): check pass; user unknown

이러한 형태의 로그를 자주 접했을 것이다 그리고 
이러한 로그는 한번에 많게는 수십개씩 바로 붙어 확인이 될것이다 
이러한 형태의 로그가 바로 패스워드 및 아이피를 무작위대입하여 
공격을 하는 형태이다.

이러한 공격의 위험성은 패스워드 정책과 규칙을 재대로 관리 하는 곳이라면 
패스워드가 풀릴 큰위험성은 없지만. 예를 들어 1111, password, 회사명 등 
누구나 유추가능하고 쉬운 패스워드를 쓸경우 쉽게 풀려버리기도 한다.

그리고 순간적으로 너무 많은 접속을 하게되면 소켓 자원의 부족으로 
정상적인 접근이 어렵게 되기도 한다 

이러한 위험성에서 벗어날 수 있는 방법중 한기지를 소개하고자 한다 


1. 소개 어플리케이션

소개할 어플리케이션은  fail2ban 이라는 프로그램이며 
이는  모니터링할 어플리케이션의 로그파일과 iptables를 이용하여 
접속 시도 확인과 차단을 한다 
차단기준은 접속 실패 횟수와 횟수에 도달한 시간이 차단의 기준이다 
예를 들어 5분안에 5회 이상 접속 실패일  경우 접속을 차단한다 

 

우선 EPEL 설치

https://zetawiki.com/wiki/YUM_epel_%EC%A0%80%EC%9E%A5%EC%86%8C_%EC%B6%94%EA%B0%80

yum install -y epel-release

 

 

 


2.  다운로드 
fail2ban의 공식 사이트  http://www.fail2ban.org

 

 

 

yum install -y fail2ban

 


3. 설정파일 추가하기

yum으로 설치하면된다 
yum install fail2ban


4. 설정하기 

 

vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

 

 

 

 

 

 

:wq 저장 ( ssh 포트로 5번의 로그인시도 한경우 하루(86000초) 차단 )

 

 

 

5. fail2ban 시작 및 명령어  

 

 

systemctl enable fail2ban
systemctl start fail2ban

 

 

 

 


* 자주쓰는 명령어

 

 


fail2ban-client status : ban 목록확인
cat /var/log/fail2ban.log : fail2ban 로그확인
cat /var/log/fail2ban.log | grep Ban : Ban 내역만 뽑아서 보기

 


* ban된 ip 해제하기
fail2ban-client set sshd unbanip 200.000.101 (해제IP)

 

벤 명령어 - fail2ban-client set 감옥이름  banip 192.168.1.250 
언벤 명령어 =fail2ban-client set 감옥이름 unbanip 192.168.1.200 

벤로그  
cat /var/log/fail2ban.log* | grep "] Ban" | awk '{print $NF}' | sort | uniq -c | sort -

 

 


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1864