Graceful Light

SSHD 보안 - fail2ban, port 변경

2017-09-22


실패한 로그인 IP 확인

1
2
3
4
5
6
$ cat /var/log/secure | grep 'sshd.*Failed' | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" | sort | uniq -c
# 실패 카운트와 IP
6 100.34.214.24
6 101.109.152.219
6 101.164.141.36

기본 포트를 사용 중이라면 어마어마한 IP 목록이 나올 것이다.

SSH 포트 변경

SSH 설정 변경

/etc/ssh/sshd_config에 포트 설정을 변경한다.

/etc/ssh/sshd_config
1
Port 2020

SElinux 포트 추가

1
$ semanage port -a -t ssh_port_t -p tcp 2020

방화벽 포트 추가

1
2
$ firewall-cmd --permanent --zone=public --add-port=2020/tcp
$ firewall-cmd --reload

SSH 재시작

1
$ systemctl restart sshd

Fail2ban

일정 시도 이상을 실패하면 해당 IP를 차단시키는 Fail2ban을 설치하자

설치

1
2
3
4
# repo가 없다면
# $ yum install -y epel-release
$ yum install -y fail2ban

SSH 설정 추가

/etc/fail2ban/jail.local 또는 jail.conf를 열어 [sshd] 의 enabled 속성을 true로 변경한다.

서비스 시작

1
2
$ systemctl enable fail2ban
$ systemctl start fail2ban

더 쉬운 방법

쉘스크립트로 포트변경, 방화벽 룰 추가, Fail2ban까지 한 방에 끝내버리자.

1
$ wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log

명령문에 따라 입력만 해주면 된다. 자세한 설명은 FunctionClub/Fail2ban 참고하자.

🍺

Buy me a beer 🍗

공유하려면 QR코드를 스캔해주세요