개발노트

목록

리눅스 서버 SSH 보안 점검 101: 해킹 시도 이렇게 확인하자

서버보안 SSH로그 리눅스보안 fail2ban 로그인실패기록
Server 2025.11.07 6 회 읽음
Server 22시간 전 6


리눅스 서버를 운영하다 보면 “Last failed login”, “There were XX failed login attempts” 같은 문구를 종종 본다.

이건 누군가 서버에 로그인 시도를 했는데 실패했다는 뜻이다.

보통 무차별 대입(Brute Force) 공격 흔적이거나, 관리자가 비밀번호를 틀린 기록이다.

오늘은 리눅스 SSH 보안 점검과 실패 로그인 기록을 확인하는 핵심 명령어를 정리한다.


SSH 로그인 실패 기록 확인

SSH를 통한 로그인 실패 시도는 대부분 /var/log/secure에 저장된다.

최근 20개의 실패 로그를 확인하려면 아래 명령어를 입력한다:

grep "Failed password" /var/log/secure | tail -20
  • IP, 사용자명, 시도 시간 등을 한눈에 확인할 수 있다.
  • 공격이 지속된다면 fail2ban 같은 보안 툴로 자동 차단 설정을 추천한다.



최근 로그인 기록 확인

성공한 로그인 내역은 wtmp, 실패한 내역은 btmp에 기록된다.

# 성공한 로그인 목록
last | head

# 실패한 로그인 목록
lastb | head
특정 IP나 사용자의 접근 패턴을 분석할 때 유용하다.


root 직접 로그인 차단
root 계정은 공격 대상 1순위다.
따라서 직접 로그인은 막고, 일반 계정 → sudo로 전환하는 방식을 권장한다.

vi /etc/ssh/sshd_config
PermitRootLogin no
systemctl restart sshd


fail2ban으로 자동 차단 설정

무차별 대입 공격을 막으려면 fail2ban을 설치하자.

yum install fail2ban -y
systemctl enable --now fail2ban
SSH에서 일정 횟수 이상 비밀번호 실패 시 해당 IP를 자동으로 차단해준다.


방화벽 기본 설정 점검

SSH 접속을 제한하거나 포트를 변경하는 것도 좋은 보안 습관이다.

firewall-cmd --permanent --remove-service=ssh
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
이후 /etc/ssh/sshd_config의 Port도 동일하게 2222로 변경하면 된다.


마무리

보안은 “한 번 점검하고 끝”이 아니다.

서버 로그를 주기적으로 확인하고, 필요할 때마다 접근제한 정책을 업데이트해야 한다.

특히 /var/log/secure는 매일 한 번쯤 들여다보면 좋다.

“누가, 언제, 어디서 접근하려 했는가”를 아는 게 보안의 시작이다.

목록