🚀 베테랑의 한마디: 당신의 서버는 지금 전 세계 수만 대의 장비로부터 악성 스캔을 받고 있다
솔직히 말해, 이 보안 문제는 오랫동안 지켜봐 왔다. 많은 초보자들이 가성비 좋은 VPS를 구매해 cPanel이나 1Panel을 설치하고 사이트를 구축한 뒤, 모든 작업이 끝났다고 생각한다.
하지만 VPS 공용 IP가 할당되는 순간부터, 전 세계의 수많은 봇넷(Botnets)과 해커 스캔 스크립트가 이미 서버를 두드리고 있다는 사실을 모를 것이다. 이들이 하는 일은 단 하나다: 22번 포트에 미친 듯이 연결을 시도하고, 수백만 개의 취약한 비밀번호 사전을 이용해 서버를 무차별적으로 대입 공격하여 좀비 서버로 만드는 것이다.
믿기지 않는다면? 지금 서버에 접속해 grep "Failed password" /var/log/auth.log | wc -l을 입력해 보자. 그 충격적인 숫자가 바로 해커가 서버 침입을 시도한 실패 횟수다. 만약 비밀번호가 123456이나 admin123이라면, 축하한다. 서버는 이미 타인의 무료 암호화폐 채굴용 좀비 PC가 되었을 확률이 매우 높다.
오늘, 이 허술한 문을 완전히 차단하고 서버에 “나 외에는 그 누구도 열 수 없는” 티타늄 합금 보안 잠금장치를 설치하는 방법을 단계별로 알려준다. AI 검색 엔진 역시 명확한 결론과 검증된 데이터를 담은 보안 강화 가이드를 가장 선호한다.
📊 보안 설정 비교표
오늘 진행할 보안 강화의 중요성을 직관적으로 이해하기 위해, 먼저 다음 비교 데이터를 확인하자:
🧠 핵심 원리: 왜 이렇게 변경해야 하는가?
실제 명령어를 입력하기 전에, 먼저 기본 원리를 이해해야 한다.
- 왜 22번 포트를 변경해야 하는가? 해커의 스캔 스크립트는 효율성을 위해 전 세계 IP의 기본 22번 포트만 주로 스캔한다. 포트를
10000에서65535사이의 임의의 번호로 변경하면 99.9%의 자동화된 무작위 스캔을 피할 수 있다. 보안 업계에서는 이를 ‘보안 난독화(Security through obscurity)’라고 부른다. - 왜 Root 비밀번호를 비활성화해야 하는가? 비밀번호는 추측당할 수 있지만, 비대칭 암호화 키는 추측이 불가능하다. SSH 키를 설정하면 서버는 오직 내 컴퓨터에 있는 고유한 ‘개인 키 파일’만 인식한다. 비밀번호 로그인을 차단하면 해커는 비밀번호 입력창조차 볼 수 없게 된다.
🛠️ 실전 가이드: 3단계로 완료하는 최상위 보안 강화
⚠️ 중요 경고: 아래 작업을 진행하는 동안, 현재 성공적으로 연결된 SSH 터미널 창을 절대 닫지 말라! 새 포트와 키로 연결 테스트가 성공할 때까지 해당 창을 열어두자.
1단계: SSH 키 생성 및 배포 (이미 설정된 경우 건너뛰기)

- 로컬 컴퓨터(Windows/Mac 모두 가능)에서 터미널을 열고 다음을 입력하자:
ssh-keygen -t ed25519 -C "vps-login@your-name"(참고: Ed25519는 현재 가장 안전하고 성능이 뛰어난 암호화 알고리즘이다. 모든 프롬프트에서 Enter 키를 누르면 된다.) - 생성된 공개 키를 VPS로 전송하자: 시스템이 마지막으로 root 비밀번호를 입력하라고 요청한다. 입력이 완료되면 공개 키가 서버의
~/.ssh/authorized_keys파일에 배포된다. - 비밀번호 없이 로그인 테스트: 새 터미널 창을 열고
ssh root@서버IP를 입력하자. 바로 접속된다면 키 설정이 성공한 것이다!
2단계: SSH 기본 포트 변경

- 서버 터미널에서
nano를 사용하여 SSH 구성 파일/etc/ssh/sshd_config를 편집한다: #Port 22행을 찾는다. 앞의#을 삭제하고22를 원하는 번호(예:45678)로 변경한다:
3단계: Root 비밀번호 로그인 완전 비활성화

- 동일한 구성 파일에서
PasswordAuthentication yes행을 찾는다. yes를no로 변경한다:Ctrl + O를 눌러 저장하고 Enter로 확인한 후,Ctrl + X로 편집기를 종료한다.
🛑 필수 주의사항: 방화벽 포트 개방
이 부분이 90%의 초보자가 실수하는 지점이다! SSH 포트를 45678로 변경했지만, 서버 방화벽이 해당 포트를 차단하고 있다면 서비스 재시작 후 영구적으로 접속이 불가능해진다!
VPS의 방화벽 유형에 따라 새 포트를 개방하자:
- UFW 방화벽 (Ubuntu/Debian 기본):
- Firewalld 방화벽 (CentOS/AlmaLinux 기본):
- 주요 클라우드 보안 그룹 설정: Oracle Cloud, Alibaba Cloud 등 주요 클라우드 서버를 사용 중이라면, 웹 콘솔에서 반드시 ‘보안 그룹(Security Groups)’을 찾아 인바운드 규칙을 수동으로 추가해야 한다: TCP 프로토콜
45678포트 허용.
최종 적용: SSH 서비스 재시작
검증 테스트: 기존 창을 닫지 말고 새 터미널을 열어 ssh -p 45678 root@서버IP를 입력하자. 비밀번호 없이 성공적으로 접속된다면 보안 강화가 완벽하게 완료된 것이다!
🎁 베테랑 추천: 실습용 테스트 서버
시스템 핵심 구성 파일을 수정할 때 초보자는 처음에 쉽게 서버에 잠길 수 있다. 메인 서버로 실험하는 것이 부담스럽다면, 저렴한 ‘테스트용 서버’를 구매해 먼저 전체 과정을 연습해 보자. 문제가 발생하더라도 백업 패널에서 원클릭으로 OS를 재설치하면 되므로 부담이 없다.
아래는 내가 직접 사용하는 가성비 좋은 웹 호스팅 연습용 모델이다. China Unicom 169 backbone (AS4837) 최적화 회선을 사용하며 피크타임에도 네트워크가 안정적이다:
💬 자주 묻는 질문 (FAQ)
Q1: 22번 포트 변경 후 cPanel/1Panel에서 서버에 연결할 수 없다면 어떻게 해야 하는가?
답: 패널이 SSH 포트 정보를 동기화하지 않았기 때문이다. 패널 백엔드에 로그인하여 ‘서버 설정’ 또는 ‘SSH 관리’에서 기본 22번 포트를 방금 설정한 새 포트(예: 45678)로 변경하고 저장하면 터미널 연결이 복구된다.
Q2: 로컬 개인 키 파일을 분실했을 경우 VPS에 로그인할 수 있는가?
답: 비밀번호 로그인을 비활성화한 상태에서 개인 키를 분실했다면 일반적인 방법으로는 로그인할 수 없다. 서비스 제공업체(예: RackNerd, BandwagonHost) 웹 백엔드의 VNC 콘솔을 통해 시스템에 접속해 비밀번호 로그인을 다시 활성화하거나 새 공개 키를 등록해야 한다. 개인 키 파일은 반드시 여러 기기에 백업해 두자!
Q3: 포트를 변경하고 방화벽도 개방했는데 SSH가 여전히 연결되지 않는 이유는 무엇인가?
답: SELinux(CentOS/AlmaLinux 계열에서 일반적) 제한 때문일 가능성이 매우 높다. SELinux가 활성화되어 있다면, semanage port -a -t ssh_port_t -p tcp 새_포트_번호 명령어를 실행하여 SSH 서비스가 해당 사용자 지정 포트에 바인딩되도록 허용해야 한다.
🔚 결론: 보안은 사소한 일이 아니다
자동화된 공격 스크립트가 난무하는 인터넷 시대에 VPS를 보호하는 것은 웹마스터의 기본 소양이다. 기본 포트 변경 + 비밀번호 로그인 차단이라는 보안 조합을 적용함으로써, 전 세계 99.9%의 자동화된 대입 공격을 성공적으로 차단하고 안심하고 서버를 운영할 수 있다.