loading
본문 바로가기
IT(SW)

SSH 기본 포트 22번을 임의 포트로 변경하는 방법

by Dandy Brain 2021. 5. 13.
반응형

SSH (Secure Shell Protocol)는 네트워크 포트로 사용할 수 있는 0 ~ 65535번 중에서 잘 알려진 포트(Well-Known) 0 ~ 1023번 포트에 포함되며, 원격 터미널 접속 목적이나 파일 송수신을 위한 SCP 등에 사용되는 22번 포트입니다. 지금은 특수한 경우를 제외하고는 거의 사용되지 않고 있지만 원격 접속을 위한 Telnet의 바이트 스트림 형식의 보안 취약점을 대신하여 DES, RSA 등의 암호화 방식을 기본으로 하고 있는 SSH를 대부분 사용하고 있습니다.

 

하지만 워낙에 기본적으로 사용되는 포트이기 때문에 무작위 공격(Brute Force Attack) 등을 시도하여 SSH 포트에 대한 공격을 시도할 수 있기 때문에 기관 외부에서 접근이 필요할 경우에는 보안성 강화차원에서 임의의 포트로 변경하는 것이 좋습니다. 따라서 이번 포스팅에서는 보안 안전한 보안 환경 구축을 위해 가장 기본이라 할 수 있는 SSH 기본 22번 포트를 리눅스 (CentOS version 6)에서 임의의 포트로 어떻게 변경하는지 소개하고자 합니다.

 

1) 기본 터미널에 접속을 합니다. 접속을 한후 ssh 포트 변경이 가능한 /etc/ssh 폴더로 이동합니다.

명령어 : cd /etc/ssh

[그림 1. ssh 포트 변경을 위한 설정파일 경로]

 

2) SSH 포트 변경을 위한 설정파일인 sshd_config 파일을 엽니다.

명령어 : vim sshd_config

[그림 2. ssh 포트 변경을 위한 설정파일 sshd_config 열기]

 

3) #Port 22로 주석처리(#)되어 있는 부분에서 #을 제외하고 임의로 변경하고자 하는 포트번호로 바꿔줍니다. 본 포스팅에서는 기본 포트 22 대신에 3535를 예로 변경하였습니다.

[그림 3. SSH 기본 포트 변경 전 sshd_config 화면]
[그림 4. SSH 기본포트 22를 3535로 변경한 sshd_config 화면]

 

4) 변경 및 저장 후 터미널 창을 닫고 sshd 데몬을 재시작 해줍니다. 주의사항으로 공동으로 여러명이 사용하고 있는 서버의 경우에는 SSH 데몬 재시작 시 접속된 사용자의 원격 터미널 창이 모두 단절되므로 사용자 접속 여부를 확인하시기 바랍니다.

  • CentOS version 6 에서는 service sshd restart
  • CentOS version 7 에서는 systemctl restart sshd.service

[그림 5. sshd 데몬을 재시작하는 화면]

 

5) 임의의 포트로 변경이 되었다면 서버 방화벽인 iptables가 구동되고 있는지 확인합니다.

명령어 : service iptables status

[그림 6. 서버 방화벽 iptables 구동 여부 확인 화면]

 

6) /etc/sysconfig 내에 위치하고 있는 iptables 설정 파일을 엽니다.

명령어 :  vim /etc/sysconfig/iptables

[그림 7. 서버 방화벽 iptables 경로 및 설정파일 열기]

 

7) 설정파일 내에서 기본 22번 포트를 변경하고자 하는 임의의 포트로 바꿔줍니다. 본 포스팅에서는 3535 포트를 예시로 하였습니다. 단, iptables 운영 여하에 따라서 아래 그림 8과 다를 수가 있습니다. 그런 경우에는 그림 9에 적색 박스 내 명령으로 추가해줍니다.

[그림 8. iptables 설정파일 내 기본으로 설정되어 있는 화면]
[그림 9. iptables 설정파일 내 기본포트를 임의의 포트 3535로 변경한 화면]

 

8) iptables 데몬을 재실행 합니다.

  • CentOS version 6 에서는service iptables restart
  • CentOS version 7 에서는systemctl restart iptables

 

9) 터미널을 통해 정상적으로 변경된 포트로 접속이 가능한지 확인을 합니다.

 

위와 같이 조치를 했음에도 허용이 되지 않을 경우 검토해봐야 할 사안은 아래와 같습니다.

  • 보안 담당자를 통해 방화벽에서 변경한 포트가 열려 있는지 확인
  • 서버 방화벽 데몬을 iptables가 아닌 firewall-cmd 등 다른 방화벽 데몬을 사용하고 있는지 확인
  • SELINUX 활성화 여부 확인 (원인 파악을 위해 임의 변경된 포트를 넣는 게 아니라 우선은 비활성화 조치 후 확인)
반응형

댓글