오늘은 Cloud VM을 접속할 때 자주 사용하는 ssh 접속 방식 중 평문 인증 방식과 root 직접 접근을 제한하고 ssh pub key로만 접속할 수 있게 변경해보았다. 또한 brute-force 공격을 fail2ban으로 자동 차단하도록 패키지를 설치했고, 웹 배포용 디렉토리만 ubuntu 계정으로 권한을 위임했다.
먼저 etc/ssh/sshd_config 파일의 다음 내용들을 변경해준다.
# root 로그인 완전 차단
PermitRootLogin no
# 비밀번호 인증 비활성화
PasswordAuthentication no
# 키 기반 인증만 허용
PubkeyAuthentication yes
# Challenge-response (keyboard-interactive) 인증 비활성화
ChallengeResponseAuthentication no
# PAM 인증 사용 (Ubuntu 기본값)
UsePAM yes
만약 sshd_config파일 상단에 다음 문구(Include /etc/ssh/sshd_config.d/*.conf)가 있다면 sshd_config.d/*.conf 파일을 찾아내어 그 부분도 수정해줘야 한다.
이때 변경한 부분의 주석은 떼어낸다.
추가적으로 권한 설정이 되어있는지 확인하고 다음 권한으로 설정한다.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
그리고 설정 문법을 검사해주고, ssh 서비스를 재시작한다.
sudo sshd -t
sudo systemctl restart ssh