보안

SSH용 fail2ban 설정 방법(2026)

fail2ban을 설정해 SSH 무차별 대입 봇을 차단하세요: 설치, sshd jail 설정(maxretry, findtime, bantime), 확인과 차단 해제, 그리고 휴대폰에서 하는 법 ── 더불어 자신을 가두지 않는 방법까지.

CC Chen Chen· 창업자·2026년 6월 24일·5분 분량

fail2ban이 SSH에 해주는 일

fail2ban은 인증 로그를 감시하다가 어떤 IP 주소가 로그인에 너무 여러 번 실패하면 그 IP를 일시적으로 차단합니다 ── 그래서 당신의 SSH를 무차별 대입하는 봇은 끝없이 두드려대는 대신 방화벽 단계에서 막힙니다. 유용한 방어 계층이지만 그 위치는 분명히 해 두세요. 이미 SSH 키로 전환하고 비밀번호 로그인을 비활성화했다면, 그런 무차별 대입 시도는 애초에 성공할 수 없습니다. fail2ban은 심층 방어이자 로그 노이즈 감소이지, 첫 번째 방어선이 아닙니다. 먼저 키를 설정하고(키 vs 비밀번호), 그 위에 fail2ban을 더하세요.

1단계 ── fail2ban 설치

sudo apt update && sudo apt install fail2ban   # Debian/Ubuntu
# RHEL/Fedora: sudo dnf install fail2ban

합리적인 기본값으로 시작하지만, 패키지 업데이트가 덮어쓰지 않도록 자신의 설정은 jail.local에 적어 두어야 합니다.

2단계 ── SSH jail 설정

/etc/fail2ban/jail.local을 생성합니다:

[sshd]
enabled  = true
port     = ssh
maxretry = 5
findtime = 10m
bantime  = 1h

이렇게 읽힙니다: 10분 이내에 로그인에 5회 실패하면 그 IP를 1시간 차단한다. 반복하는 상대에게는 bantime을 높일 수 있습니다(하루로 두는 사람도 있고, bantime.increment = true로 점차 늘리는 사람도 있습니다). SSH를 22번 포트에서 옮겼다면 port를 실제 포트로 설정하세요.

3단계 ── 재시작 후 확인

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

상태 줄에는 현재 차단된 IP와 합계가 표시됩니다. 실수로 차단한 주소(예를 들어 몇 번 잘못 입력한 후의 자기 자신)를 해제하려면:

sudo fail2ban-client set sshd unbanip 203.0.113.10
휴대폰에서 서버의 fail2ban 상태를 확인하는 SSH 세션
fail2ban-client status sshd를 실행해 차단된 IP를 확인하세요. 설치, 설정, 상태 확인 ── 이 모든 것이 휴대폰에서 SSH로 문제없이 됩니다.

휴대폰에서 하기

fail2ban은 휴대폰에서 SSH로 완전히 관리할 수 있습니다: SFTP나 nanojail.local을 편집하고, 서비스를 재시작하고, 상태를 확인합니다. 정확한 fail2ban-client 하위 명령이 떠오르지 않으면 TermAI 어시스턴트에게 설명하세요 ── "sshd에서 차단된 IP 표시", "이 주소 차단 해제" ── 실행하기 전에 명령을 검토하세요.

TermAI가 Run 버튼과 함께 fail2ban 명령을 제안하는 모습
올바른 fail2ban-client 명령을 요청하고 실행 전에 검토하세요 ── 휴대폰에서 차단을 확인할 때 편리합니다.

자신을 가두지 마세요

자신의 로그인에 몇 번 실패하면 fail2ban이 당신도 차단할 수 있습니다. 두 가지 안전장치: 테스트하는 동안 사용 가능한 세션을 열어 두고, 자신의 IP(또는 자신의 Tailscale 범위)를 무시 목록에 추가하세요:

# in [DEFAULT] of jail.local
ignoreip = 127.0.0.1/8 100.64.0.0/10

100.64.0.0/10은 Tailscale 범위입니다 ── Tailscale을 통해 SSH에 접속하면 자신의 연결은 차단되지 않습니다. 더 좋은 방법: 아예 SSH를 Tailscale 뒤에 두면 공개 봇은 애초에 거기 도달하지 못합니다.

FAQ

SSH 키를 쓰면 fail2ban이 필요한가요?
선택 사항입니다. 키를 쓰고 비밀번호 로그인을 비활성화하면 무차별 대입 시도는 성공할 수 없습니다. 그래도 fail2ban은 로그 노이즈를 줄이고 트래픽을 막으므로, 많은 관리자가 추가 계층으로 운영합니다.

fail2ban은 IP를 얼마나 오래 차단하나요?
bantime에 설정한 값 ── 1시간이 일반적입니다. 높이거나, 반복하는 상대에게는 점차 늘릴 수 있습니다.

fail2ban에서 IP 차단을 해제하려면?
fail2ban-client set sshd unbanip <IP>를 실행하세요. 신뢰하는 IP를 ignoreip에 추가하면 절대 차단되지 않습니다.

핵심 요약

  • 역할: SSH 로그인 실패가 반복된 후 IP 차단
  • 위치: 심층 방어 ── 키 + 비밀번호 비활성화가 더 중요
  • 설정: /etc/fail2ban/jail.local[sshd] maxretry / findtime / bantime
  • 자신을 차단하지 않기: 자신의 IP / Tailscale 범위를 ignoreip에; 더 좋은 건 SSH를 Tailscale 뒤에 두기
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog