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]
기존의 22포트로 접속이 안되는것을 확인가능

SSH 포트 변경 시 문제 사항

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

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

$ sudo dnf install policycoreutils-python-utils -y



SELinux가 꺼져있는 상태

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

By Low ahn

답글 남기기

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