CentOS 7 SSH Port Change


설치한 버전은 CentOS-7-x86_64-Everything-1611입니다. 이 중에서 Desktop 버전입니다.

/etc/ssh/sshd_config 파일을 수정해야 합니다.




00. SSH 설정에 앞서

먼저 SSH 서비스가 설치되어있는지 확인해야 합니다.

설치 방법은 다음과 같습니다.


$ sudo yum install openssh-server openssh-clients openssh-askpass 

SSH 서비스가 설치되어있다면 바로 "01. SSH 설정 파일 수정"으로 넘어가주시면 됩니다.

만약 설치가 되지 않으시는 분들은 네트워크 설정이 잘 되어있는지, 혹은 yum의 업데이트가 잘 돼있는지 확인해보시기 바랍니다.




01. SSH 설정 파일 수정

먼저 /etc/ssh/sshd_config 내에 있는 port번호를 변경해주어야 합니다.

명령어는 다음과 같이 해주어야 합니다.

$ vim /etc/ssh/sshd_config


. . . 포트 번호가 작성되어 있는 부분 수정 . . [그림 01] 참고 


[그림 01] SSH 포트번호 변경


[그림 01]은 원래 포트번호가 22로 설정되어 있었지만, 자신이 원하는 포트번호로 변경해줄 수 있습니다.

저는 32123 번호로 수정하였습니다.




02. SSH 다시 시작

설정을 바꿔줬다고 하여 바로 수정된 설정이 적용되는 것은 아닙니다.

따라서 SSH 서비스를 다시 시작하여 우리가 설정했던 내용이 적용되도록 해주어야 합니다.

이를 위해 다음과 같은 명령어를 입력해줍니다.

$ systemctl restart sshd.service


만약 Putty나 기타 SSH에 접속하여 해당 작업을 수행하더라도 문제가 없습니다.

세션(Session)이 유지되기 때문에 시버스를 다시시작해도 현재 접속은 끊기지 않습니다.

문제가 발생하면 곤란하니 접속을 끊지 않고 작업하는 게 좋습니다.




03. SELINUX 설정

위의 설정을 다 하시더라도 문제가 있을 수 있습니다.

제 경우는 SELINUX 설정을 해줘야 변경이 되더군요..

단순히 포트를 열어주거나 해도 문제는 그대로였습니다.

SELINUX를 설정하는 명령어는 다음과 같습니다.

$ semanage port -a -t ssh_port_t -p tcp 32123




04. 방화벽 설정

SELINUX만 설정한다고 어떤 OS라도 아이구야 하며, 우리가 설정한 포트번호를 들여보내주지 않습니다.

이런 경우는 우리가 설정한 포트번호가 정상적인 것임을 방화벽에 알려야 합니다.

따라서, 방화벽에 우리가 추가했던 포트 번호를 추가해주어야 합니다.

CentOS7에서의 방화벽 설정은 다음과 같이 할 수 있습니다.

$ firewall-cmd --permanent --zone=public --add-port=32123/tcp


위의 명령어는 방화벽에 우리가 설정한 포트번호를 tcp 프로토콜로 허용한다는 의미입니다.

해당 작업을 수행하고, 우리가 수정한 내용을 방화벽에 로드해주어야 합니다.

방화벽을 다시 로드하는 명령어는 다음과 같습니다.

$ firewall-cmd --reload

혹은

$ systemctl restart firewalld  




여기까지해서 설정이 마무리되었습니다.

이제 우리가 원하는 포트로 SSH를 연결해보도록 하면 되겠습니다.


+ Recent posts