경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
편집을 취소할 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 |
당신의 편집 |
1번째 줄: |
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 = sysadmin@example.com
| |
|
| |
| # 메일 보낸 사람
| |
| sender = fail2ban@my-server.com
| |
|
| |
| # 메일 전송 프로그램
| |
| 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>
| |
|
| |
|
| == 트러블 슈팅 == | | == 트러블 슈팅 == |
90번째 줄: |
25번째 줄: |
| ** systemctl restart fail2ban.service | | ** systemctl restart fail2ban.service |
| * '''재확인''': fail2ban의 차단이 동작하고 있는지 확인한다. | | * '''재확인''': fail2ban의 차단이 동작하고 있는지 확인한다. |
| ** 아래와 같이 나오면 sshd에 대한 ban 옵션이 동작하고 있는 것이다. | | ** 아래와 같이 나오면 sshd에 대한 ban 옵션이 꺼져 있는 것이다. |
| <pre> | | <pre> |
| # fail2ban-client status | | # fail2ban-client status |
99번째 줄: |
34번째 줄: |
|
| |
|
| == 참고 문헌 == | | == 참고 문헌 == |
| * https://www.lesstif.com/security/fail2ban-ssh
| |
| * https://bobcares.com/blog/fail2ban-not-banning/ | | * https://bobcares.com/blog/fail2ban-not-banning/ |