리눅스 서버를 운영할 때 SSH(Secure Shell)를 통한 원격 접속 기록을 관리하는 것은 보안 유지의 중요한 요소 중 하나입니다. SSH 접속 기록을 분석하여 서버에 어떤 사용자들이 언제, 어디서 접속했는지 파악하고, 비정상적인 접근이 있는지 확인함으로써 보안 위협을 조기에 발견할 수 있습니다. 이번 글에서는 리눅스에서 SSH 접속 로그를 분석하는 방법과 효율적인 접속 기록 관리 방법을 소개합니다.
포스팅 목차
1. SSH 접속 기록 파일 확인하기
리눅스에서 SSH 접속 기록은 보통 /var/log/secure 또는 /var/log/auth.log 파일에 저장됩니다.
Ubuntu와 같은 배포판에서는 auth.log 파일
CentOS와 같은 배포판에서는 secure 파일을 확인해야 합니다.
로그 파일에는 SSH 접속 시도, 성공 여부, 실패 로그가 기록되며, 로그 파일의 내용을 통해 서버 접속 활동을 추적할 수 있습니다.
# Ubuntu
sudo cat /var/log/auth.log
# CentOS
sudo cat /var/log/secure
2. SSH 접속 성공/실패 로그 분석하기
로그 파일에는 접속 시도 정보가 다양한 형식으로 기록되는데, 접속 성공과 실패 로그를 필터링하여 분석할 수 있습니다.
접속 성공 로그 필터링
접속 성공 기록은 “Accepted”라는 키워드로 확인할 수 있습니다.
grep
명령어를 사용하여 특정 날짜나 시간의 접속 성공 기록을 확인할 수 있습니다.
grep "Accepted" /var/log/auth.log
접속 실패 로그 필터링
비정상적인 접근 시도나 잘못된 비밀번호로 인한 로그인 실패 기록은 “Failed password”로 표시됩니다.
이를 통해 비정상적인 로그인 시도 횟수나 특정 IP 주소에서의 반복적인 시도 여부를 확인
grep "Failed password" /var/log/auth.log
3. 특정 IP 또는 사용자별 접속 기록 조회하기
특정 IP나 사용자 계정의 접속 기록만 필터링하여 확인하고 싶을 때는 다음과 같은 명령어를 사용
# 특정 IP의 접속 기록
grep "IP_ADDRESS" /var/log/auth.log
# 특정 사용자 계정의 접속 기록
grep "username" /var/log/auth.log
4. 로그 분석 자동화 및 시각화 도구 활용
로그 파일의 규모가 커지면 수동으로 분석하는 데 한계가 있습니다. 따라서 자동화된 로그 분석 도구를 사용하여 효율적으로 접속 기록을 관리할 수 있습니다.
- Fail2Ban : SSH 비정상 접근을 자동으로 차단하는 도구로, 일정 횟수 이상 비밀번호를 잘못 입력한 IP 주소를 자동으로 차단해주는 기능이 있습니다.
- ELK Stack (Elasticsearch, Logstash, Kibana) : Logstash를 통해 SSH 접속 로그를 수집하고 Elasticsearch에 저장한 후, Kibana에서 시각화하여 분석할 수 있습니다. ELK Stack을 통해 접근 시도 빈도, 성공/실패 통계 등을 한눈에 파악할 수 있습니다.
5. 접속 기록 보관 및 관리 정책 수립
로그 파일은 장기간 유지할 필요가 있지만, 서버 자원을 효율적으로 사용하기 위해 주기적으로 오래된 로그를 삭제하거나 백업하는 것이 좋습니다. logrotate 명령어를 사용하여 로그 파일의 용량을 주기적으로 관리할 수 있습니다.
sudo vi /etc/logrotate.d/sshlog
# /etc/logrotate.d/sshlog 파일에 다음과 같은 내용을 추가
/var/log/auth.log {
weekly
rotate 4
compress
missingok
notifempty
}
해당 설정은 매주 auth.log 파일을 압축하여 저장하고, 4주간의 기록만 유지합니다.
설정을 통해 로그 파일이 무한정 커지는 것을 방지하고 저장 공간을 효율적으로 관리할 수 있습니다.
글을 마치며
SSH 로그 분석은 리눅스 서버 보안을 강화하는 데 매우 중요한 작업입니다. SSH 접속 기록을 정기적으로 점검하고 자동화 도구를 적절히 활용하여 비정상적인 접속 시도를 사전에 차단함으로써 서버 보안을 더욱 강화할 수 있습니다. 효과적인 로그 분석과 관리로 서버의 안정성을 높이고, 접속 기록 관리를 체계적으로 구축