๐ [ubuntu, fail2ban] ๋ก๊ทธ์ธ ์คํจ ํ์์ ๋ฐ๋ผ IP ์ฐจ๋จํ๊ธฐ
ํ ๋ฒ์ฉ ๊ฐ์ธ ์๋ฒ์ ๋ค์ด๊ฐ ๋ก๊ทธ์ธ ์๋ ์ ๋ณด๋ฅผ ํ์ธํ๋ฉด ์ ๋ง ํ๋ฃจ์ข ์ผ ๋ฌด์์ ๊ณต๊ฒฉ์ ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๊ดํ ์ ๊ธฐ์๊ธ ๋ ๋์ฌ ๊ฒ ๊ฐ์ ๋ฐฉ์ดํ๋ ค๊ณ ์ฐพ์๋ณด๋ ์ค fail2ban
์ด๋ ํด์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๐ fail2ban
fail2ban์ SSH ๋ก๊ทธ์ธ ์คํจ ํ์์ ๋ฐ๋ผ IP๋ฅผ ์ฐจ๋จ์์ผ ์ฃผ๋ ํด์ ๋๋ค.
๋ฌด์์ ๊ณต๊ฒฉ ํน์ฑ์ IP๋ฅผ ์ฐจ๋จํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ด๋ ์ ๋ ์๋ฐฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ ์ค์น
$ sudo apt update
$ sudo apt install fail2ban -y
๐ ์ค์ ํ์ผ ์์
- ๊ธฐ๋ณธ ์ค์ ํ์ผ์ ๋ณต์ฌํด ์ค๋๋ค.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- ํธ์ง๊ธฐ๋ฅผ ์ด์ฉํด ๋ณต์ฌํ ํ์ผ์ ์ด์ด์ค๋๋ค.
$ sudo nano /etc/fail2ban/jail.local
- ์๋ง์ ์ฃผ์์ ์ง๋ [sshd] ์น์ ์ ์ฐพ์ ํ ์๋ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
์ฃผ์ ์ต์ ๋ค์ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
maxretry
: ํ์ฉํ ์ต๋ ๋ก๊ทธ์ธ ์คํจ ํ์ (์ฌ๊ธฐ์๋ 3ํ๋ก ์ค์ )
bantime
: ์ฐจ๋จ ์๊ฐ (์ด ๋จ์, ์ฌ๊ธฐ์๋ 1์๊ฐ)
findtime
: ์คํจ ์๋ ํ์๋ฅผ ๊ณ์ฐํ ๊ธฐ๊ฐ (์ด ๋จ์, ์ฌ๊ธฐ์๋ 10๋ถ)
๐ ์ฌ์์ํ์ฌ ์ค์ ์ ์ฉ
$ sudo systemctl restart fail2ban
๐ ๋์ ์ํ์ ์ฐจ๋จ ๋ชฉ๋ก ํ์ธ
$ sudo fail2ban-client status sshd
์ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ๋ฐ๋ชฌ์ ์ํ์ ์ฐจ๋จ๋นํ IP ๋ฆฌ์คํธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๐ IP ์ฐจ๋จ ๋ฐ ํด์ ๋ช ๋ น์ด
- ํน์ IP ์๋์ผ๋ก ์ฐจ๋จ
$ sudo fail2ban-client set sshd banip <IP์ฃผ์>
- ํน์ IP ์๋์ผ๋ก ์ฐจ๋จ ํด์
$ sudo fail2ban-client set sshd unbanip <IP์ฃผ์>
๋๊ธ