CentOS 7 / SSH / 포트 변경하는 방법

리눅스 서버에 SSH 접속을 하는 공격이 있습니다. SSH Brute Force라고 하는데, 여러 아이디와 비밀번호로 로그인을 시도하는 공격입니다.

이 공격을 방어하는 방법은 여러가지가 있습니다.

  • root 계정으로 로그인 못하게 하기
  • 암호를 복잡하게 만들기
  • 접속 가능 IP를 정하기
  • SSH 포트 번호 바꾸기

이 중에서 SSH 포트 번호 바꾸는 방법을 정리해보겠습니다. CentOS 7 기준이며, 포트 번호를 1980으로 바꾼다고 가정하겠습니다.

SSH 설정 파일 수정

/etc/ssh/sshd_config에 다음의 코드를 추가합니다.

Port 1980

SSH 다시 시작

다음과 같이 명령하여 SSH를 다시 시작합니다.

systemctl restart sshd.service

다시 시작해도 현재 접속은 끊기지 않습니다. 문제가 발생하면 곤란하니 접속을 끊지 않고 작업하는 게 좋습니다.

SELINUX 설정

SELINUX를 사용하고 있다면 다음과 같이 명령하여 1980 포트를 사용할 수 있게 만듭니다.

semanage port -a -t ssh_port_t -p tcp 1980

방화벽 설정

방화벽에 1980 포트를 추가합니다.

firewall-cmd --permanent --zone=public --add-port=1980/tcp

방화벽을 다시 로드합니다.

firewall-cmd --reload

테스트

현재 접속은 그대로 두고, SSH 클라이언트 프로그램을 새로 열여 변경한 포트로 접속해봅니다.

Log

참고로, SSH 접속과 관련된 로그는

/var/log/secure

에 있습니다.