Linux에서 SSH 포트 추가 및 변경하기

SSH 서비스 설치 상태 확인

SSH 포트를 수정하기 전에 시스템에 SSH 관련 패키지가 올바르게 설치되어 있는지 확인해야 합니다. 다음 명령어를 사용하여 설치 여부를 검사할 수 있습니다.

[root@server ~]# rpm -qa | grep ssh
libssh2-1.4.3-10.el7_2.1.x86_64
openssh-7.4p1-16.el7.x86_64
openssh-server-7.4p1-16.el7.x86_64
openssh-clients-7.4p1-16.el7.x86_64

출력 결과에 openssh-serveropenssh-clients가 포함되지 않은 경우, 아래 명령어로 설치합니다.

yum install openssh-server openssh-clients -y

SSH 구성 파일 수정

기본적으로 SSH는 22번 포트를 사용하지만, 보안을 위해 다른 포트를 추가하거나 변경할 수 있습니다. 루트 권한으로 다음 파일을 편집합니다.

vim /etc/ssh/sshd_config

해당 파일 내에서 다음 줄을 찾습니다.

#Port 22

이 주석을 해제하고 기본 포트를 유지하면서 새로운 포트를 추가합니다. 예를 들어 12345번 포트를 사용하려면 다음과 같이 설정합니다.

Port 22
Port 12345

설정 후 저장하고 종료한 다음, SSH 서비스를 재시작합니다.

systemctl restart sshd

방화벽에 새 포트 등록

새로 지정한 포트가 방화벽에 의해 차단되지 않도록 하려면, 해당 포트를 방화벽 규칙에 추가해야 합니다. 아래 명령어를 사용하여 영구적으로 포트를 등록합니다.

firewall-cmd --permanent --add-port=12345/tcp

변경 사항을 적용하기 위해 방화벽을 다시 로드합니다.

firewall-cmd --reload

포트가 정상적으로 추가되었는지 확인합니다.

[user@server ~]$ firewall-cmd --list-ports
22/tcp 12345/tcp

SELinux 정책 조정

SELinux가 활성화된 환경에서는 단순히 포트를 열어주는 것 외에도, 해당 포트가 SSH 서비스용으로 허용되는지 확인해야 합니다. 먼저 SELinux 도구인 semanage가 설치되어 있는지 확인합니다.

[root@server ~]# semanage -h

명령어가 실행되지 않으면, 필요한 패키지를 설치합니다.

yum install policycoreutils-python-utils -y

설치 후 현재 SSH 포트 정책을 조회합니다.

[root@server ~]# semanage port -l | grep ssh
ssh_port_t                     tcp      22

12345번 포트가 목록에 없으므로, 이를 SSH 허용 포트로 추가합니다.

semanage port -a -t ssh_port_t -p tcp 12345

다시 목록을 확인하면 새 포트가 반영된 것을 볼 수 있습니다.

[root@server ~]# semanage port -l | grep ssh
ssh_port_t                     tcp      12345, 22

모든 설정 완료 후 시스템 재부팅을 권장합니다. 일부 환경에서는 재부팅 없이 정책이 완전히 적용되지 않을 수 있습니다.

새 포트로 연결 테스트

외부 클라이언트에서 새 포트를 통해 SSH 접속을 시도합니다.

ssh root@192.168.128.240 -p 12345

처음 접속 시 호스트 인증 경고가 나타날 수 있으며, yes를 입력하여 계속 진행합니다. 성공적으로 로그인되면 변경이 정상적으로 완료된 것입니다.

불필요한 포트 제거 (선택 사항)

보안 강화를 위해 기존 22번 포트 사용을 중단하려면, /etc/ssh/sshd_config 파일에서 Port 22 줄을 삭제하거나 주석 처리합니다. 이후 방화벽과 SELinux 설정에서도 동일하게 제거합니다.

firewall-cmd --permanent --remove-port=22/tcp
semanage port -d -t ssh_port_t -p tcp 22

변경 후 SSH 서비스와 방화벽을 재시작하여 설정을 적용합니다.

태그: linux SSH 포트변경 방화벽 SELinux

6월 28일 18:38에 게시됨