[Linux] ๋น„๋ฐ€๋ฒˆํ˜ธ ์˜ค๋ฅ˜๋กœ ์ธํ•œ ์‚ฌ์šฉ์ž ๊ณ„์ • ์ž ๊ธˆ ๋ฐ ๋กœ๊ทธ์ธ ์‹คํŒจ ๋ฌธ์ œ ํ•ด๊ฒฐ (pam_tally2)

2022. 6. 12. 15:44ใ†TIL/Linux

โ˜„๏ธ ๋ฌธ์ œ

Linux ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ ์ ‘์† ์‹œ ํŒจ์Šค์›Œ๋“œ๋ฅผ 5ํšŒ ์ž˜๋ชป ์ž…๋ ฅํ•˜์—ฌ ๊ณ„์ •์ด ์ž ๊น€. ์ดํ›„ ์ ‘์† ์‹œ๋„ ์‹œ Access Denied์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ ์ถœ๋ ฅ ๋ฐ ๊ณ„์ • ์ ‘์† ๋ถˆ๊ฐ€.

๐ŸŒŽ ํ™˜๊ฒฝ

  • AWS EC2
    • OS : Amazon Linux 2

 


๐Ÿ”ซ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

/etc/pam.d/system-auth ํŒŒ์ผ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์ • ์ž ๊ธˆ ์ •์ฑ…์ด ์ž‘์„ฑ๋˜์–ด ์žˆ์—ˆ๋‹ค.

์นจ์ž…์ž์— ์˜ํ•œ ํŒจ์Šค์›Œ๋“œ ๋ฌด์ž‘์œ„ ๋Œ€์ž…๊ณต๊ฒฉ(Brute Force Attack)์ด๋‚˜ ํŒจ์Šค์›Œํฌ ์ถ”์ธก ๊ณต๊ฒฉ(Password Guessing) ๋ฐœ์ƒ ์‹œ ์•”ํ˜ธ ์ž…๋ ฅ ์‹คํŒจ ํšŸ์ˆ˜๋ฅผ ์ ์ •ํ•˜๊ฒŒ ์ œํ•œํ•จ์œผ๋กœ์จ ์ž๋™ ๊ณต๊ฒฉ์„ ์ฐจ๋‹จํ•˜๊ณ  ๊ณต๊ฒฉ ์‹œ๊ฐ„์„ ์ง€์ฒด์‹œ์ผœ ํŒจ์Šค์›Œ๋“œ ์œ ์ถœ ์œ„ํ—˜์„ ์ค„์ผ ์ˆ˜ ์žˆ๋„๋ก ๊ณ„์ • ์ž ๊ธˆ ์ž„๊ณ„๊ฐ’์ด 5ํšŒ๋กœ ์„ค์ •๋˜์–ด ์žˆ์—ˆ๋‹ค.

# /etc/pam.d/system-auth
auth    required        pam_tally2.so deny=5 unlock_time=120 no_magic_root
account required        pam_tally2.so no_magic_root reset
  • deny=5 : ๊ณ„์ • ์ž ๊ธˆ ์ž„๊ณ„๊ฐ’์œผ๋กœ, 5ํšŒ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ ์‹คํŒจ ์‹œ ๊ณ„์ • ์ž ๊ธˆ
  • unlock_time : ๊ณ„์ • ์ž ๊น€ ํ›„, ๋งˆ์ง€๋ง‰ ๊ณ„์ • ์‹คํŒจ ์‹œ๊ฐ„๋ถ€ํ„ฐ ์„ค์ •๋œ ์‹œ๊ฐ„(์ดˆ)์ด ์ง€๋‚˜๋ฉด ์ž๋™ ๊ณ„์ • ์ž ๊ธˆ ํ•ด์ œ
  • no_magic_root : root์—๋Š” ํŒจ์Šค์›Œ๋“œ ์ž ๊ธˆ ์„ค์ •์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
  • reset : ์ ‘์† ์‹œ๋„ ์„ฑ๊ณต ์‹œ ์‹คํŒจํ•œ ํšŸ์ˆ˜ ์ดˆ๊ธฐํ™”

 

 

์•„๋ž˜ ๋ช…๋ น์–ด๋Š” ๋ฐ˜๋“œ์‹œ sudo ๊ถŒํ•œ์„ ํ†ตํ•ด ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

# ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์‹คํŒจ ํšŸ์ˆ˜
pam_tally2 -u {์‚ฌ์šฉ์ž ์ด๋ฆ„}

# ์‹คํŒจ ํšŸ์ˆ˜ ์ดˆ๊ธฐํ™”(๊ณ„์ • ์ž ๊ธˆ ํ•ด์ œ)
pam_tally2 -u {์‚ฌ์šฉ์ž ์ด๋ฆ„} -r

-r ์˜ต์…˜์„  ํ†ตํ•œ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ ์˜ค๋ฅ˜ ํšŸ์ˆ˜ reset ํ›„ Failures ์ถœ๋ ฅ

 

 

pam_tally2 ๋ช…๋ น์–ด์˜ -r ์˜ต์…˜์„ ์ด์šฉํ•˜์—ฌ Failures๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ 

Permission Denied, please try again๊ณผ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉฐ ๋กœ๊ทธ์ธ์— ์‹คํŒจํ•˜์˜€๋‹ค.

์–ด์ฉ” ์ˆ˜ ์—†์ด, passwd ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๊ธฐ์กด๊ณผ ๋™์ผํ•˜๊ฒŒ ์ดˆ๊ธฐํ™”ํ•˜์˜€๋‹ค.

echo '{๋ณ€๊ฒฝํ•  ๋น„๋ฐ€๋ฒˆํ˜ธ}' | passwd --stdin {์‚ฌ์šฉ์ž ์ด๋ฆ„}

 

 

์ดํ›„, ํ•ด๋‹น ๊ณ„์ •์œผ๋กœ ๊ธฐ์กด๊ณผ ๋™์ผํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ ‘์† ์„ฑ๊ณต~!

 


๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ

  1. ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ: [์„œ๋ฒ„] Linux ๊ณ„์ • ์ž ๊น€ ํ•ด์ œ
  2. ํ‹ฐ์Šคํ† ๋ฆฌ: ๋ฒ„์ „ ๋ณ„ ๊ณ„์ • ์ž ๊ธˆ ์ •์ฑ