우분투에서 SSH 포트 변경하는 방법
소개
Secure Shell(SSH)은 암호화된 네트워크 프로토콜로, 사용자가 보안이 취약한 네트워크를 통해 원격 시스템에 안전하게 접속하고 관리할 수 있도록 합니다. 기본적으로 SSH는 포트 22에서 작동합니다. 하지만 우분투 시스템에서 기본 포트를 변경해야 하는 여러 가지 중요한 이유가 있습니다:
-
보안 강화: 기본 SSH 포트를 변경하면 자동화된 봇과 스크립트가 포트 22를 스캔하는 공격으로부터 시스템을 보호할 수 있습니다.
-
로그 소음 감소: 비표준 포트로 이동하면 자동 로그인 시도 기록이 크게 줄어들어 실제 위협을 모니터링하기가 더 쉬워집니다.
-
규정 준수 요구사항: 일부 보안 정책이나 규정 준수 기준에서는 원격 접속 프로토콜에 비표준 포트 사용을 요구할 수 있습니다.
-
ISP 제한: 일부 인터넷 서비스 제공업체(ISP)는 주거용 연결에서 서버 호스팅을 방지하기 위해 포트 22와 같은 일반 포트의 트래픽을 차단하거나 제한할 수 있습니다.
SSH 포트 변경은 단독으로 완벽한 보안 대책은 아니지만, 흔히 "보안의 은폐(security through obscurity)"라고 불리는 더 넓은 보안 전략의 효과적인 일부가 될 수 있습니다. 이 튜토리얼에서는 우분투 시스템에서 SSH 포트를 변경하는 과정을 안내하여 보다 안전한 서버 환경으로 나아가는 첫걸음을 도와드립니다.
사전 준비 사항
SSH 포트 변경을 시작하기 전에 다음 사항을 확인하세요:
-
우분투 시스템: 이 가이드는 우분투를 대상으로 하지만, 다른 리눅스 배포판에서도 유사한 절차일 수 있습니다.
-
루트 또는 sudo 권한: 시스템 설정을 변경하려면 관리자 권한이 필요합니다.
-
기본 터미널 지식: 기본적인 리눅스 명령어 사용법에 익숙해야 합니다.
-
SSH 접속 가능 상태: 현재 SSH 접속이 가능한 상태여야 합니다.
-
백업 접속 방법: 변경 과정에서 문제가 발생할 경우를 대비해 콘솔 접속 등 대체 접속 방법을 준비하는 것이 중요합니다.
SSH 포트 변경 단계
1. SSH 설정 파일 백업하기
시스템 설정 파일을 수정하기 전에 백업을 만드는 것이 좋습니다. SSH 설정 파일을 백업하려면 다음 명령어를 사용하세요:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
이 명령어는 원본 설정 파일을 .bak
확장자를 붙여 복사합니다. 문제가 생기면 이 백업 파일로 쉽게 복구할 수 있습니다.
2. SSH 설정 파일 편집하기
이제 SSH 설정 파일을 편집할 차례입니다. 편한 텍스트 편집기를 사용하세요. 여기서는 nano
를 예로 들겠습니다:
sudo nano /etc/ssh/sshd_config
이 명령어는 루트 권한으로 sshd_config
파일을 nano 편집기에서 엽니다.
3. 포트 번호 변경하기
sshd_config
파일을 열면 #Port 22
라는 줄을 찾으세요. 이 줄은 보통 주석 처리되어 있습니다(#
기호로 시작).
SSH 포트를 변경하려면:
#
를 제거하여 주석을 해제합니다.22
를 원하는 포트 번호로 변경합니다.
예를 들어, 포트를 2222로 변경하려면 다음과 같이 작성합니다:
Port 2222
포트 번호는 1024에서 65535 사이에서 선택하여 잘 알려진 서비스와 충돌하지 않도록 하세요. 또한, 선택한 포트가 시스템 내 다른 서비스에서 이미 사용 중이지 않은지 확인해야 합니다.
4. 설정 파일 저장 및 종료
변경 후:
- nano를 사용 중이라면
Ctrl + X
를 누르고,Y
를 입력한 뒤Enter
를 눌러 저장하고 종료합니다. - vim을 사용 중이라면
Esc
를 누르고:wq
를 입력한 후Enter
를 누릅니다.
5. 방화벽 설정 조정
우분투에서 흔히 사용하는 UFW(Uncomplicated Firewall)를 사용 중이라면, 새 SSH 포트에 대한 연결을 허용해야 합니다. 다음 명령어를 실행하세요:
sudo ufw allow 2222/tcp
sudo ufw reload
2222
를 새로 설정한 포트 번호로 바꾸세요.
다른 방화벽을 사용 중이라면 해당 방화벽 문서를 참고하여 새 포트를 열어주세요.
6. SSH 서비스 재시작
변경 사항을 적용하려면 SSH 서비스를 재시작해야 합니다. 다음 명령어를 사용하세요:
sudo systemctl restart sshd
이 명령어는 SSH 데몬을 새 설정으로 재시작합니다.
7. 새 SSH 포트 테스트
현재 SSH 세션을 종료하기 전에 새 포트로 접속이 가능한지 반드시 테스트하세요. 새 터미널 창을 열고 다음 명령어로 접속을 시도합니다:
ssh -p 2222 username@your_server_ip
2222
를 새 포트 번호로, username
을 실제 사용자 이름으로, your_server_ip
를 서버 IP 주소로 바꾸세요.
접속이 성공하면 기존 SSH 세션을 종료하고 앞으로는 새 포트로 접속하면 됩니다.
문제 해결
SSH 포트 변경 후 문제가 발생하면 다음 사항을 확인하세요:
-
연결 거부됨: 새 포트가 방화벽에서 열려 있는지 확인하세요.
-
포트가 이미 사용 중: 포트가 이미 사용 중이라는 오류가 나오면 다른 포트 번호를 선택하세요.
-
SSH 서비스가 시작되지 않음:
sudo systemctl status sshd
명령어로 SSH 서비스 상태를 확인하고 오류 메시지를 찾아보세요. -
변경 사항 되돌리기: 접속이 전혀 안 될 경우, 백업 접속 방법(예: 콘솔 접속)을 사용해 백업 파일을 복원하세요:
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config sudo systemctl restart sshd
자주 묻는 질문 (FAQ)
1. SSH 포트를 꼭 변경해야 하나요?
절대적으로 필수는 아니지만, SSH 포트를 변경하면 자동화된 공격과 로그 소음을 크게 줄일 수 있습니다. 다만, 이것만으로는 충분하지 않으며 더 넓은 보안 전략의 일부로 활용해야 합니다.
2. 어떤 포트 번호를 선택해야 하나요?
1024에서 65535 사이의 포트 번호를 선택하세요. 2222나 22222 같은 흔히 쓰이는 대체 SSH 포트는 고급 스캔 대상이 되므로 피하는 것이 좋습니다.
3. SSH 포트 변경이 현재 연결에 영향을 주나요?
현재 SSH 세션에는 영향을 주지 않습니다. 다만, 새 연결부터는 변경된 포트를 사용해야 합니다.
4. 포트 변경 후 SSH에 어떻게 접속하나요?
접속 시 -p
옵션 뒤에 새 포트 번호를 지정하세요. 예를 들어:
ssh -p 2345 username@your_server_ip
5. 필요하면 SSH 포트를 다시 22로 변경할 수 있나요?
네, 이 가이드의 절차를 따라 다시 22번 포트나 원하는 다른 포트로 변경할 수 있습니다.
6. SSH 포트 변경이 SFTP나 SCP에 영향을 주나요?
SFTP와 SCP도 SSH와 동일한 포트를 사용하므로, 이들 서비스 이용 시에도 새 포트를 지정해야 합니다.
7. 2222 같은 잘 알려진 대체 포트를 써도 안전한가요?
2222 같은 포트는 기본 22보다는 낫지만, 여전히 공격자들이 자주 스캔하는 대상입니다. 더 독특한 포트 번호를 선택하는 것이 좋습니다.
8. 새 SSH 포트를 잊어버리면 어떻게 하나요?
새 포트 번호를 안전한 곳에 반드시 기록해 두세요. 잊어버리면 콘솔 접속 같은 대체 방법으로 포트 번호를 확인하거나 재설정해야 할 수 있습니다.
9. SSH 포트 변경이 서버 성능에 영향을 주나요?
포트 변경은 서버 성능에 거의 영향을 미치지 않습니다. 자동화된 공격 감소로 인한 보안 이점이 미미한 성능 영향보다 훨씬 큽니다.
10. SSH 포트 변경 사실을 팀원이나 다른 사용자에게 알려야 하나요?
네, 모든 권한 있는 사용자에게 변경된 포트 정보를 반드시 공유하여 접속에 문제가 없도록 해야 합니다.