리눅스(Linux) 기반 서버나 홈랩(Home Lab) 가상머신을 구축한 후 외부 네트워크와 연결하면, 그 즉시 전 세계의 무작위 해킹 시도와 악성 자동화 스크립트의 공격 대상이 됩니다. 특히 기본 설정 상태의 서버는 보안에 취약하여 원격 무단 접속이나 악의적인 트래픽 공격에 노출되기 쉽습니다.
서버 보안을 확보하기 위해 가장 먼저 시행해야 하는 기초 작업은 필요 없는 포트의 접근을 차단하는 방화벽(UFW) 설정과, 원격 관리 관문인 SSH(Secure Shell) 기본 포트 변경입니다. 이 두 가지 필수 설정만 정확히 적용해도 대부분의 무차별 대입 공격(Brute Force Attack)과 자동화 스캔을 성공적으로 방어할 수 있습니다.
본 글에서는 리눅스 서버 운영 시 반드시 적용해야 하는 UFW 방화벽의 기본 사용법부터, SSH 기본 포트 변경 절차, 그리고 설정 실수로 인한 접속 차단 방지 팁까지 상세히 알아보겠습니다.
1. UFW(Uncomplicated Firewall) 방화벽 기본 개념과 포트 규칙 설정
UFW(Uncomplicated Firewall)는 우분투 등 리눅스 환경에서 복잡한 iptables 방화벽 설정을 누구나 쉽게 다룰 수 있도록 제공되는 사용자 친화적 방화벽 관리 도구입니다.
[이미지: 리눅스 터미널 화면에서 ufw status 명령어로 현재 방화벽 규칙과 포트 개방 상태를 확인하는 모습]
UFW 방화벽 설정의 기본적인 접근 규칙과 핵심 명령어는 다음과 같습니다.
- 기본 정책 설정 (Default Policy)
- 모든 인바운드 차단: 외부에서 들어오는 모든 접속 시도를 기본적으로 차단합니다.
- 명령어: sudo ufw default deny incoming
- 모든 아웃바운드 허용: 서버 내부에서 외부로 나가는 통신은 정상 허용합니다.
- 명령어: sudo ufw default allow outgoing
- 모든 인바운드 차단: 외부에서 들어오는 모든 접속 시도를 기본적으로 차단합니다.
- 필요한 전용 포트만 허용 (ufw allow)
- 웹 서버 운영에 필요한 HTTP(80) 및 HTTPS(443) 포트를 선택적으로 개방합니다.
- 80번 포트 허용: sudo ufw allow 80/tcp
- 443번 포트 허용: sudo ufw allow 443/tcp
- 방화벽 활성화 및 상태 조회
- 방화벽 활성화: sudo ufw enable (활성화 전 SSH 포트 허용 여부를 반드시 확인해야 합니다.)
- 현재 규칙 및 상태 조회: sudo ufw status verbose
2. SSH 기본 포트(22번) 변경을 통한 보안 강화 가이드
SSH 서비스는 기본적으로 22번 포트를 사용합니다. 해커들의 자동화 스캐너는 전 세계 IP 주소의 22번 포트를 집중적으로 탐색하여 무차별 대입 공격을 시도하므로, 이 포트 번호를 임의의 고유 포트로 변경해 주는 것이 매우 효과적입니다.
SSH 포트 변경 실전 단계
3. 방화벽 적용 시 접속 차단 방지 및 점검 체크리스트
방화벽 설정을 적용할 때 가장 자주 발생하는 실수는 현재 연결된 SSH 포트를 UFW에서 허용하지 않은 상태로 방화벽을 활성화하는 것입니다. 이 경우 기존 관리자 세션이 닫히는 순간 서버로의 원격 접속이 완전히 차단되는 위협에 직면합니다.
[이미지: 새로 지정한 SSH 포트 번호를 포함하여 ssh -p 명령어로 원격 접속을 성공적으로 테스트하는 터미널 화면]
안전한 설정을 위한 필수 검증 체크리스트는 다음과 같습니다.
- 새로운 SSH 터미널 세션 테스트
- 현재 작업 중인 SSH 터미널 창을 절대로 닫지 않은 상태에서, 새로운 터미널 창을 추가로 열어 새 포트로 접속 테스트를 진행합니다.
- 접속 명령어: ssh -p 22222 사용자계정@서버IP
- 구 22번 포트 규칙 차단 및 삭제
- 새 포트로 정상 로그인되는 것을 완전히 확인한 후, 기존의 22번 포트 허용 규칙을 UFW에서 제거합니다.
- 명령어: sudo ufw delete allow 22/tcp
- 특정 IP 주소만 SSH 접근 허용 (보안 극대화)
- 지정된 고정 IP(예: 집이나 사무실 IP)에서만 SSH 접속을 허용하도록 설정하면 보안 수준을 최고 단계로 끌어올릴 수 있습니다.
- 명령어: sudo ufw allow from 192.168.0.50 to any port 22222 proto tcp
자주 묻는 질문 (FAQ)
Q1. UFW 방화벽을 활성화한 후 원격 접속이 끊어지고 서버에 접속할 수 없습니다.
A1. 새 SSH 포트를 방화벽에 등록하기 전에 UFW를 켜버렸을 때 발생하는 전형적인 lockout 현상입니다. 만약 가상화 환경(Proxmox, VirtualBox 등)이나 호스트 관리 콘솔 웹 화면을 사용할 수 있다면, 가상화 웹 콘솔 인터페이스로 직접 접속하여 sudo ufw disable 명령어를 입력해 방화벽을 일시 비활성화한 후 포트 설정을 바로잡아야 합니다.
Q2. SSH 포트 번호는 어떤 숫자로 변경하는 것이 가장 좋은가요?
A2. 시스템이 사용하는 잘 알려진 포트(0~1023)와 충돌을 피하기 위해 1024번부터 65535번 사이의 임의의 숫자를 선택하는 것이 좋습니다. 일반적으로 기억하기 쉬운 4자리~5자리 숫자(예: 10022, 22222 등)가 자주 활용됩니다.
Q3. UFW 방화벽을 삭제하거나 초기화하고 싶을 때는 어떻게 하나요?
A3. 지금까지 설정한 모든 방화벽 규칙을 지우고 초기 상태로 되돌리고 싶다면 sudo ufw reset 명령어를 사용합니다. 해당 명령어를 실행하면 모든 맞춤 설정 규칙이 지워지며 UFW는 비활성화 상태로 전환됩니다.
결론
리눅스 서버 운영 시 외부의 무단 침입을 차단하는 기본 방어선은 바로 올바른 UFW 방화벽 규칙 적용과 SSH 포트 변경입니다.
기본 22번 포트를 임의의 고유 포트로 변경하고 UFW 방화벽을 통해 필수 포트만 엄격하게 개방해 두면, 자동화 스크립트에 의한 무차별 대입 공격 트래픽을 차단할 수 있습니다.
본 가이드의 체크리스트를 순서대로 차근차근 적용하셔서 더욱 안전하고 쾌적한 나만의 리눅스 서버 보안 환경을 구축해 보시기 바랍니다.
'가상화 및 서브 PC 활용' 카테고리의 다른 글
| 도커 컨테이너 삭제 후 데이터 유지 방법: Persistent Storage 설정 기초 (0) | 2026.10.30 |
|---|---|
| PC 원격 제어 세팅: 가상화 서버 무모니터(Headless) 환경 구성하기 (0) | 2026.10.30 |
| 가상머신 스냅샷(Snapshot) 기능 활용법: 시스템 복원 지점 안전하게 만들기 (0) | 2026.10.29 |
| 안 쓰는 서브 PC로 홈 미디어 서버(Plex/Jellyfin) 구축하는 방법 (0) | 2026.10.29 |
| 초보자를 위한 Dockerfile 작성법: 나만의 맞춤형 도커 이미지 만들기 (0) | 2026.10.29 |