Infra & DevOps

[Linux] Fail2Ban이 SSH ν¬νŠΈμ—μ„œ λ™μž‘ν•˜μ§€ μ•ŠλŠ” μ΄μœ μ™€ νŠΈλŸ¬λΈ”μŠˆνŒ…

hyeyeonismm 2025. 2. 4. 09:19
μ μš©ν•΄λ‘μ—ˆλ˜ fail2ban이 μ œλŒ€λ‘œ μž‘λ™μ΄ μ•ˆλ˜μ–΄ νŠΈλŸ¬λΈ”μŠˆνŒ… 과정을 κΈ°λ‘ν•΄λ³΄κ³ μž ν•œλ‹€.

 

이전에 μ μš©ν–ˆλ˜ Fail2ban λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ œλŒ€λ‘œ μž‘λ™λ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€. μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ‘œ μƒνƒœλ₯Ό ν™•μΈν–ˆμ„ λ•ŒλŠ” Banned IP List에 SSH 곡격을 μ‹œλ„ν•œ IPκ°€ μ œλŒ€λ‘œ ban된 것을 확인할 수 μžˆμ—ˆλŠ”λ°, μ‹€μ œλ‘œ ssh 접속을 μ‹œλ„ν•˜λ©΄ 접속이 λ˜μ—ˆμŒ

fail2ban-client status sshd

λΆ„λͺ… iptables λͺ…λ Ήμ–΄λ‘œ 확인해도 REJECTλ˜μ–΄μžˆλŠ”λ°... μ™œ 접속이 λ˜λŠ”μ§€ κ²€μƒ‰ν•΄λ³΄μ•˜λ‹€.

 

1. conf 파일 확인

/etc/fail2ban/jail.local 경둜둜 μ ‘μ†ν•˜μ—¬ config νŒŒμΌμ„ ν™•μΈν–ˆλ‹€.

[DEFAULT]
bantime = -1 
findtime = 2m
maxretry = 8

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

logpath의 κ²½λ‘œλ„ /var/log/secure을 바라보고 μžˆμ—ˆμŒ (RHEL 계열 Linux이기 λ•Œλ¬Έμ— fedora.conf μ‚¬μš©)

 

2. iptables 확인

λ§Œμ•½ iptables -nL둜 적용 κ·œμΉ™μ„ ν™•μΈν–ˆμ„ λ•Œ, f2b-sshd (fail2ban κ΄€λ ¨ κ·œμΉ™)이 ν•˜λ‹¨μ— 있으면 적용이 λ˜μ§€ μ•ŠλŠ”λ‹€.
iptablesμ—μ„œ Chain의 κ·œμΉ™μ€ μœ„μ—μ„œ μ•„λž˜λ‘œ 순차적용됨

 

κ·Έλž˜μ„œ λ¬Έμ œκ°€ λ­”μ§€ 감이 μž‘νžˆμ§€ μ•Šκ³  μžˆμ—ˆλŠ”λ° .... ν¬νŠΈκ°€ 30022인걸 λ°œκ²¬ν–ˆλ‹€.
λ‚΄ μ„œλ²„λŠ” 30022번 포트λ₯Ό μ“°κ³  μžˆμ—ˆλŠ”λ°, config νŒŒμΌμ—λŠ” ssh(22번)둜 섀정을 ν•΄λ‘¬μ„œ REJECTκ°€ μ œλŒ€λ‘œ λ˜μ§€ μ•Šμ€κ±°μ˜€μŒ...
κ·Έλž˜μ„œ config νŒŒμΌμ— portλ₯Ό 30022둜 μˆ˜μ •ν–ˆλ”λ‹ˆ λ¬΄μ‚¬νžˆ μž‘λ™μ΄ λ˜μ—ˆλ‹€..

 

κ³Όμ •κ³Ό λ³„κ°œλ‘œ fail2banκ³Ό 방화벽을 더 곡뢀할 수 μžˆμ—ˆλ‹€!
μ°Έκ³ > https://mytory.net/archives/13121