SSH 이해와 보안 업그레이드: 기본 포트 변경 가이드

SSH(Secure Shell)는 컴퓨터 네트워크에서 안전하게 원격으로 데이터 통신을 수행하거나 명령을 실행할 수 있게 해주는 암호화된 프로토콜입니다.

SSH는 원격으로 시스템에 접근하고, 명령을 실행하며, 파일을 전송하는 데 사용되며, 통신 중 공격자에게 정보가 노출되지 않도록 보안을 강화합니다.

SSH는 주로 다음의 상황에서 사용됩니다:

  • 원격 서버에 접속하여 명령 실행
  • 원격 시스템에 파일을 안전하게 복사하기 위한 SCP(Secure Copy) 또는 SFTP(Secure File Transfer Protocol) 기능 사용
  • 서버와 네트워크 기기의 관리 및 구성 작업
  • SSH 터널링을 사용한 안전한 포트 포워딩 및 프록시 작업

SSH Default Port 변경하기

SSH의 기본 포트는 22번입니다.

SSH 설정 파일 열기: /etc/ssh/sshd_config 파일을 연 후 편집

$ sudo nano /etc/ssh/sshd_config

기존의 22번 설정라인에 주석(#)처리를 하고 아래 새로 Port 2222 포트를 지정합니다

ssh의 기본포트 설정변경하기

SELinux 포트 변경 : SELinux가 활성화된 경우, 열려진 포트에도 SELinux 정책을 적용해야 합니다.

아래 명령어로 SELinux의 상태를 확인합니다.

$ sestatus
SELinux 상태확인하는 명령어

SELinux가 enable 상태일 경우 아래 명령어를 입력하여 SELinux 정책을 등록합니다.

$ sudo semanage port -a -t ssh_port_t -p tcp 2222

semanage : SELinux 관리 도구로, 종류별로 SELinux 정책을 관리합니다.

port -a : 포트를 추가하는 옵션입니다.

-t ssh_port_t : 적용할 SELinux 유형을 지정합니다. SSH 포트 변경에 해당하는 유형을 지정합니다.

-p tcp : 프로토콜을 지정합니다. 여기서는 TCP를 사용합니다.

2222 : 새로운 포트 번호입니다.

SELinux에서 ssh 변경한 포트를 등록하는 절차

방화벽에서 포트 열기 : 변경된 포트를 방화벽에서 열어주어야 원격 접속이 가능합니다.

firewalld를 사용하는 경우, 다음 명령어를 사용하여 변경된 포트를 방화벽 오픈

$ sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
$ sudo firewall-cmd --reload
변경한 포트를 시스템 방화벽에 등록 및 재기동

SSH 서비스 재시작 : 변경된 설정을 적용하려면 SSH 서비스를 재시작해야 합니다

$sudo systemctl restart sshd
ssh 서비스를 재시작하여 재구동하기

위의 설정까지 끝이나면 아래와 같이 기존 접속하던 22포트로 접근하던 방식이 차단되며

아래 명령어와 같이 포트 번호를 지정하여야 ssh 접속이 가능합니다.

$ ssh -p 2222 [your-username]@[your-server-ip]

이후 접속 테스트를 하시면 “Connection refused” 문구와 함께 접속이 차단됩니다.


SSH 포트 변경 시 문제 사항

$ sudo semanage port -a -t ssh_port_t -p tcp 2222

해당 명령어가 작동하지 않을경우 패키지를 설치 해주셔야 합니다.

$ sudo dnf install policycoreutils-python-utils -y



SELinux가 꺼져있는 상태

위의 경우 SELinux 정책 등록 과정을 스킵하시고 설정하시면 됩니다.

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다