728x90
fail2ban이란?
여러 곳에서 ssh를 이용하여 원격 접속을 하는 경우, 원치 않는 사람이 서버에 무단으로 로그인 시도를 할 때 차단해 주는 것을 말한다.
fail2ban의 작동원리
로그 파일을 읽어들여 비정상적이게 접근하는 IP들을 운영체제의 방화벽 규칙에 추가한다.
설치환경 : CentOS
1) 설치
# CentOS의 추가 저장소인 EPEL(Extra Packages for Enterprise Linux yum)을 설치한다.
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# epel 저장소에서 fail2ban을 설치한다.
yum --enablerepo epel install fail2ban
# 위와 동일하지만 다른 명령어로 fail2ban을 설치하는 명령어
yum install -y fail2ban fail2ban-systemd
2) 서비스 활성화
# 부팅 해도 fail2ban이 실행되어 있게 설정
systemctl enable fail2ban
# fail2ban 재시작
systemctl restart fail2ban
# fail2ban 상태를 확인
systemctl status fail2ban
3) 파일 수정
# 수정할 파일 위치 : /etc/fail2ban/jail.conf
# jail.conf 파일에 수정하는 것 보다는
# 개인화 설정 파일인 jail.local 파일로 .conf 파일을 복사해 사용하는 편이 효율적이다.
# 파일 복사를 위해 cp 명령어를 사용한다.
cp /etc//fail2ban/jail.conf /etc/fail2ban/jail.local
# jail.local 파일을 수정하기 위해 vi 편집기를 사용
vi /etc/fail2ban/jail.local
# vi 편집기를 열었을 때 /(검색할 단어)를 입력하면 쉽게 찾고자 하는걸 찾을 수 있다.
# n 키를 누르면 다음 일치하는 단어를 찾기의 기능을 제공하니 유용하게 사용하자.
#--------------------------
# ignoreip란? - ignoreip에 설정되어 있는 ip는 로그인 시도를 실패해도 차단되지 않는다.
# 해당 설정을 하기 위해 /ignoreip 를 입력 후 편집키(i키)를 누른 후
# 해당 부분 주석을 해지하고 내용을 수정한다.
# "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban
# will not ban a host which matches an address in this list. Several addresses
# can be defined using space (and/or comma) separator.
ignoreip = 127.0.0.1/32 ::1 # < --- 주석해지
# 기존 /8로 하게 될 경우
# 127.~~~.~~~.~~~을 가진 아이피를 모두 허용한다는 의미이기 때문에 /32로 바꿔준다.
# 수정이 완료 됐으면 다음 검색 단어를 찾기 위해 ESC를 눌러 편집모드를 종료하자.
#--------------------------
# /bantime 입력하고 편집키(i키)를 누른 후 아래 내용을 수정한다.
# "bantime" is the number of seconds that a host is banned.
bantime = 10m # 차단되는 시간 설정 10m 은 10분을 뜻한다.
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m # 로그인 실패 수가 카운트 되는 시간 10m은 10분을 뜻한다.
# "maxretry" is the number of failures before a host get banned.
maxretry = 5 # findtime 안에 몇 번 틀려야 차단이 되는지의 횟수를 정한다. 5는 5회를 뜻한다.
# 수정이 완료 됐으면 다음 검색 단어를 찾기 위해 ESC를 눌러 편집모드를 종료하자.
#--------------------------
# /sshd 입력하고 편집키(i키)를 누른 후 해당 부분 아래 내용을 추가한다.
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
enabled = true # 추가된 항목
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
# 모든 설정을 마쳤으면 ESC를 눌러 편집 모드를 종료하고 :wq (대소문자 구분 중요) 를 입력해
# vi 편집기를 저장하고 끄도록 하자.
설정을 적용하기 위해 fail2ban을 재시작한다.
# fail2ban 재시작
systemctl restart fail2ban
4) 작동여부 확인
putty 창을 닫고 putty를 재시작한다.
일부러 틀린 비밀번호를 입력해 fail2ban이 설정한대로 작동이 되는지 확인할 수 있다.
# 방금 일부러 비밀번호를 틀리게 들어갔을 때 fail2ban이 정상적으로
# 작동을 하고 있었는지 확인하려면 아래 명령어를 입력하여 확인할 수 있다.
fail2ban-client status sshd
정상적으로 잘 된걸 볼 수 있다!
728x90
반응형
'회사 > 과제' 카테고리의 다른 글
리눅스 기본 명령어 50개 (0) | 2021.12.30 |
---|---|
MySQL Replication 이중화 (0) | 2021.12.29 |
Apache + Tomcat 연동 / 고양이 페이지 (0) | 2021.12.28 |
APM 설치 (0) | 2021.12.28 |
[CentOS 7] 부팅 USB (0) | 2021.05.07 |