리눅스는 직접 콘솔에서 사용하기 보다는 주로 ssh로 붙여서 사용한다. ssh는 디폴트로 22번을 사용하는데 아무래도 보안상 좋지는 않기 때문에 변경해서 쓰는 경우도 많다.
1. sshd_config 파일 경로로 이동
sshd 프로세스 관련 설정은 sshd_config에서 한다. 경로는 아래와 같다.
/etc/ssh
설정 전 /etc/ssh 경로에서 sshd_config 파일을 백업한다. 설정을 바꿀 땐 무조건 백업을 하는 습관을 들이는 게 좋다.
[root@newhost ssh]# cp sshd_config sshd_config_20240305
2. sshd_config 수정
sshd_config 파일을 수정한다.
vim sshd_config
#Port 22 로 주석처리되어 있는 부분을 찾는다. 여길 변경하면 된다.
10022번으로 바꿔보겠다.
변경 사항을 저장한다.
포트 입력 라인 위로 포트 변경에 대해 SELinux 관련 설정이 필요하다는 안내를 볼 수 있다. 이 작업을 해줘야 한다.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
3. SELinux 설정
10022 포트로 변경할 거면
[root@newhost ssh]# semanage port -a -t ssh_port_t -p tcp 10022
이렇게 입력하면 한다. 이 작업을 하지 않으면 sshd 서비스 재시작이 되지 않는다.
4. sshd 재시작
sshd 서비스를 재시작한다.
[root@newhost ssh]# systemctl restart sshd
정상적으로 실행되면 이제 sshd는 10022번 포트로 붙는다.
5. 방화벽 작업
주의사항이다. 방화벽 작업을 잊어선 안 된다.
변경한 포트를 OS 방화벽에서 열어준다.
[root@newhost ssh]# firewall-cmd --permanent --zone=public --add-port=10022/tcp
success
reload 해서 변경 사항을 반영한다.
[root@newhost ssh]# firewall-cmd --reload
success
6. 주의사항
원격으로 sshd 작업을 할 때 되도록 연결된 세션을 하나 이상 유지해 놓는 게 좋다.
작업 후에 ssh 연결이 안 될 가능성을 대비하기 위해서다. 세션이 없으면 콘솔에 직접 붙어서 해야하는 아주 귀찮은 상황이 펼쳐질 수 있다.
가장 흔하게 할 수 있는 실수가 바로 방화벽 작업을 건너뛰고 세션을 닫은 후 연결이 안 되는 경우다.