CentOS에서 비정상적인 로그인 시도 추적과 접근 제한 방법
서버 보안은 모든 시스템 관리자에게 가장 중요한 과제 중 하나입니다. 특히 SSH를 통해 무차별 대입 공격(Brute Force Attack) 등의 비정상적인 로그인 시도를 방어하는 것은 필수적입니다. 이 블로그 포스트에서는 CentOS에서 비정상적인 로그인 시도를 추적하고 접근을 제한하는 방법에 대해 다룹니다.
1. 비정상적인 로그인 시도 추적
비정상적인 로그인 시도를 추적하기 위해서는 시스템 로그를 확인해야 합니다. CentOS에서는 /var/log/btmp 파일에 실패한 로그인 시도가 기록됩니다.
실패한 로그인 시도 확인
last 명령어를 사용하여 실패한 로그인 시도를 확인할 수 있습니다.
last -f /var/log/btmp
이 명령어는 다음과 같은 출력을 제공합니다:
user1 ssh:notty 192.168.1.5 Mon Jun 28 08:12 - 08:12 (00:00)
user2 ssh:notty 192.168.1.6 Mon Jun 28 08:15 - 08:15 (00:00)
user3 ssh:notty 192.168.1.7 Mon Jun 28 08:17 - 08:17 (00:00)
각 필드의 의미
- 사용자 이름: 로그인 시도를 한 사용자 이름입니다. 존재하지 않는 사용자 계정일 수 있습니다.
- 터미널: ssh:notty는 SSH를 통해 시도되었고 터미널을 사용할 수 없었음을 의미합니다.
- 원격 호스트: 로그인 시도를 한 원격 호스트의 IP 주소입니다.
- 로그인 시도 시간: 로그인 시도가 발생한 시간입니다.
- 지속 시간: 시도된 세션의 지속 시간입니다. 실패한 로그인 시도는 대개 지속 시간이 00:00으로 표시됩니다.
2. Fail2Ban 설정
Fail2Ban은 실패한 로그인 시도를 감지하고, 일정 횟수 이상 실패한 IP 주소를 자동으로 차단하는 도구입니다. 이를 통해 비정상적인 로그인 시도를 효과적으로 방어할 수 있습니다.
Fail2Ban 설치
먼저 Fail2Ban을 설치합니다:
sudo yum install epel-release -y
sudo yum install fail2ban -y
Fail2Ban 설정
Fail2Ban의 기본 설정 파일을 편집합니다:
sudo vi /etc/fail2ban/jail.local
파일에 다음과 같은 기본 설정을 추가합니다:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/secure
maxretry = 5
bantime = 3600
- enabled: Fail2Ban을 활성화합니다.
- port: SSH 포트를 지정합니다.
- filter: 사용할 필터를 지정합니다.
- logpath: SSH 로그 파일의 경로를 지정합니다.
- maxretry: 최대 허용 실패 횟수를 지정합니다.
- bantime: 차단 시간(초)을 지정합니다.
설정 후 Fail2Ban을 시작하고 부팅 시 자동으로 시작되도록 설정합니다:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Fail2Ban 상태를 확인하여 제대로 작동하는지 확인합니다:
sudo fail2ban-client status
차단된 IP 확인
Fail2Ban이 차단한 IP 주소를 확인하려면 다음 명령어를 사용합니다:
sudo fail2ban-client status sshd
CentOS에서 비정상적인 로그인 시도를 추적하고 접근을 제한하는 것은 서버 보안을 강화하는 중요한 단계입니다. last -f /var/log/btmp 명령어로 실패한 로그인 시도를 추적하고, Fail2Ban과 firewalld를 사용하여 비정상적인 접근을 자동으로 차단할 수 있습니다. 이를 통해 서버를 보다 안전하게 유지할 수 있습니다.
'OS > Linux' 카테고리의 다른 글
리눅스 CentOS에서 파일 삭제 방법 총정리 (0) | 2024.11.23 |
---|---|
리눅스 CentOS 아파치 보안 설정 (0) | 2024.06.30 |
CentOS SSH root 계정 접속 막기 linux 보안 (0) | 2024.06.28 |
CentOS에서 SSH 포트 변경 방법 (0) | 2024.06.28 |
CentOS 방화벽 Zone의 종류와 세부 정보 분석하기 (0) | 2024.06.28 |