리눅스 fail2ban: Difference between revisions

From IT Wiki
(새 문서: == 트러블 슈팅 == === ban이 이루어지지 않는 경우 === * '''감지''': 로그인 시 아래와 같은 수많은 실패 기록이 보인다. <pre> Last failed login: Sat...)
 
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[분류:리눅스]][[분류:리눅스 프로그램]][[분류:보안]]
;리눅스에서 특정 시스템에 일정 횟수 이상 로그인을 실패하면 일정 시간동안 차단하는 시스템
== 설정파일 ==
/etc/fail2ban/jail.conf
== 설정 ==
* jail.conf를 직접 수정하지 않고 jail.local 파일을 생성하여 수정한다.
** jail.conf는 업데이트 과정 등에서 덮어씌워질 수 있다.
<pre>
$ cp ./jail.conf ./jail.local
또는
$ cp ./jail.conf ./jail.d/custom.local
</pre>
* 차단 옵션을 추가한다. 기본적으로 아무것도 차단하지 않도록 설정되어 있을 수 있다.
<pre>
[DEFAULT]
## 차단하지 않을 IP
ignoreip = 127.0.0.1/8 192.168.10.0/24
# 3시간 차단
bantime  = 10800
# 아래 시간동안 maxretry 만큼 실패시 차단
findtime  = 300
# 최대 허용 횟수
maxretry = 5
# 메일 수신자, 다중 수신자는 지원 안 함
destemail = [email protected]
# 메일 보낸 사람
# 메일 전송 프로그램
mta = sendmail
# 차단시 whois 정보와 관련 로그를 첨부하여 메일 전송
action = %(action_mwl)s
# sshd 서비스 차단
[sshd]
enabled = true
port    = ssh, 10022
</pre>
* 설정을 마쳤으면 서비스를 재시작하여 변경 사항을 반영한다.
<pre>
$ sudo systemctl restart fail2ban
</pre>
* 차단 정보를 확인한다.
<pre>
$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:    8
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
  |- Currently banned: 0
  |- Total banned:    2
  `- Banned IP list:
</pre>


== 트러블 슈팅 ==
== 트러블 슈팅 ==
Line 24: Line 89:
* '''재기동'''
* '''재기동'''
** systemctl restart fail2ban.service
** systemctl restart fail2ban.service
* '''재확인''': fail2ban의 차단이 동작하고 있는지 확인한다.
** 아래와 같이 나오면 sshd에 대한 ban 옵션이 동작하고 있는 것이다.
<pre>
# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
</pre>
== 참고 문헌 ==
* https://www.lesstif.com/security/fail2ban-ssh
* https://bobcares.com/blog/fail2ban-not-banning/

Latest revision as of 09:58, 6 January 2022

리눅스에서 특정 시스템에 일정 횟수 이상 로그인을 실패하면 일정 시간동안 차단하는 시스템

설정파일[edit | edit source]

/etc/fail2ban/jail.conf

설정[edit | edit source]

  • jail.conf를 직접 수정하지 않고 jail.local 파일을 생성하여 수정한다.
    • jail.conf는 업데이트 과정 등에서 덮어씌워질 수 있다.
$ cp ./jail.conf ./jail.local 
또는 
$ cp ./jail.conf ./jail.d/custom.local 
등
  • 차단 옵션을 추가한다. 기본적으로 아무것도 차단하지 않도록 설정되어 있을 수 있다.
[DEFAULT]
## 차단하지 않을 IP
ignoreip = 127.0.0.1/8 192.168.10.0/24

# 3시간 차단
bantime  = 10800

# 아래 시간동안 maxretry 만큼 실패시 차단
findtime  = 300

# 최대 허용 횟수
maxretry = 5

# 메일 수신자, 다중 수신자는 지원 안 함 
destemail = [email protected]

# 메일 보낸 사람
sender = [email protected]

# 메일 전송 프로그램
mta = sendmail

# 차단시 whois 정보와 관련 로그를 첨부하여 메일 전송
action = %(action_mwl)s

# sshd 서비스 차단
[sshd]
enabled = true
port     = ssh, 10022
  • 설정을 마쳤으면 서비스를 재시작하여 변경 사항을 반영한다.
$ sudo systemctl restart fail2ban
  • 차단 정보를 확인한다.
$ sudo fail2ban-client status sshd

Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     8
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 0
   |- Total banned:     2
   `- Banned IP list:

트러블 슈팅[edit | edit source]

ban이 이루어지지 않는 경우[edit | edit source]

  • 감지: 로그인 시 아래와 같은 수많은 실패 기록이 보인다.
Last failed login: Sat Apr  4 13:25:31 KST 2020 from 11.11.11.11 on ssh:notty
There were 121259 failed login attempts since the last successful login
  • 확인: fail2ban의 차단이 동작하고 있는지 확인한다.
    • 아래와 같이 나오면 sshd에 대한 ban 옵션이 꺼져 있는 것이다.
# fail2ban-client status
Status
|- Number of jail: 0
`- Jail list:
  • 조치: jail 설정 파일에서 sshd에 대한 차단 옵션을 활성화시켜 준다.
    • 설정파일은 일반적으로 /etc/fail2ban/jail.local 또는 /etc/fail2ban/jail.conf 에 있다.
    • 아래와 같은 라인이 주석 처리 되어 있다면 주석 처리를 해제한다.
[sshd]
enabled = true
  • 재기동
    • systemctl restart fail2ban.service
  • 재확인: fail2ban의 차단이 동작하고 있는지 확인한다.
    • 아래와 같이 나오면 sshd에 대한 ban 옵션이 동작하고 있는 것이다.
# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

참고 문헌[edit | edit source]