Server

서버 접속 제한하여 내 서버 지키자 (fail2ban)

HoodieJun 2021. 4. 5. 08:29

안녕하세요 서버 보안에 대해서 얘기해보겠습니다.
저는 지금 집에서 조그마한 홈서버 몇 개를 돌리고 있는데요. 항상 걱정되는 게 해킹 문제입니다. 별로 가져갈 것도 없는 보잘것없는 서버라서 해킹당하더라도 포맷해버리면 되지만 후에도 불안하고 기분이 안 좋을 것 같습니다.
그래서 기본적인 보안 방법 한가지를 해놓으려고 합니다. 보통 서버에 접속할 때 SSH로 접속하는데요. 서버로 접속 시도를 할 때 비밀번호를 틀린다던가 하여 접속 실패를 하면 그 해당 아이피를 차단해버리도록 하겠습니다.
왜냐하면 해킹의 기본이 무작위 대입법이거든요. 비밀번호를 무작위로 경우의 수를 조합하여 맞는 비밀번호가 나올 때 까지 다 넣어보는 방법입니다. 그럼 언젠가 맞겠죠? 그런 식으로 비밀번호를 알아냅니다. 제한이 없다면 컴퓨터로 돌리니 설정한 비밀번호에 따라 다르겠지만 짧으면 하루 안에 다 해킹당할 것입니다. 그럼 시작하겠습니다.

1. fail2ban 설치
fail2ban이라는 프로그램을 설치하겠습니다.

" 데비안/우분투 계열 사용자
sudo apt install fail2ban

" 페도라 사용자
sudo dnf install fail2ban

" RedHat/Centos 계열 사용자
sudo yum install fail2ban

" Arch 계열 사용자
sudo pacman -S fail2ban

2. fail2ban 설정

sudo cat > /etc/fail2ban/jail.local << EOF
[DEFAULT]

# 차단하지 않을 IP
ignoreip = 127.0.0.1/8

# 접속을 차단할 시간. 초단위
bantime  = 10800

# 최대 허용 횟수
maxretry = 5

# 최대 허용 횟수 만큼 실패시 차단
findtime  = 86400

[ssh]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
EOF

3. 설정 파일 적용

sudo systemctl restart fail2ban

4. 차단한 ip 확인

sudo fail2ban-client status ssh

5. 차단한 ip 풀기

sudo fail2ban-client set ssh unbanip 129.168.219.100

ip가 눈에 보이니까 좀 더 안심이 되네요. 완벽하진 않지만 방화벽과 같이 쓴다면 괜찮을 것 같습니다. 더 좋은 보안 방법이 있다면 알려주세요 감사합니다!