보안 고려 사항
호스트와 우분투 가상머신 사이가 자유롭게 소통되는 환경은 편리한 만큼 보안 관리가 중요합니다. 특히 SSH, 파일 공유, 네트워크 포워딩을 활성화한 VM은 내부 개발 시스템이라도 외부 유출 위험이 존재합니다. 실제 운영 서버와 유사한 환경을 다루고 있기 때문에, 초기에 적절한 보안 기준을 세워두는 것이 장기적으로 안전하고 안정적인 개발 시스템을 유지하는 핵심입니다.
● 계정 및 암호 관리
강력한 사용자 비밀번호 설정
VM 초기 설정에서 단순한 비밀번호 사용은 피해야 합니다.
권장 기준
- 12자 이상
- 대문자, 소문자, 숫자, 특수문자 포함
불필요한 사용자 계정 제거
테스트용 계정이나 기본 guest 계정이 있다면 삭제합니다.
sudo deluser 계정명
● SSH 접근 보안
SSH 키 인증 사용
비밀번호 로그인보다 안전합니다.
ssh-keygen -t rsa -b 4096
ssh-copy-id ubuntu@VM_IP
Root 로그인 차단
sudo nano /etc/ssh/sshd_config
설정 항목
PermitRootLogin no
PasswordAuthentication no # 키 인증 사용 시
SSH 재시작
sudo systemctl restart ssh
● 네트워크 및 방화벽
UFW 방화벽 활성화
sudo ufw enable
특정 포트만 허용
sudo ufw allow 22 # SSH
sudo ufw allow 8000 # Django 테스트 등

브리지 네트워크 사용 시 주의
브리지는 LAN에 그대로 노출되므로, 공유 네트워크 환경에서는 NAT 방식이 더 안전합니다.
● 포트 포워딩 최소화
개발용 포트만 열고, 사용이 끝나면 비활성화합니다.
데이터베이스 포트를 무조건 외부로 열어두는 것은 매우 위험합니다.
예
MySQL 외부접속 불필요 → 포트 포워딩 비활성화
● 파일 공유 보안
- 공유 폴더에 민감 파일(.pem, DB 백업 등)을 방치하지 않습니다.
- Drag & Drop으로 불필요 파일 이동을 지양합니다.
- Git 저장소에 비밀정보 업로드 금지(.env, key 등)
.gitignore 예시
*.pem
.env
db.sqlite3
● 업데이트 및 패키지 관리
정기적 업데이트 권장
sudo apt update && sudo apt upgrade -y
오래된 패키지는 보안 취약점이 발생할 수 있습니다.
● VM 스냅샷 활용
중요 설정 변경 전 스냅샷 생성
문제가 생기면 즉시 복구 가능합니다.
VMware > Snapshot > Take Snapshot
학습 환경에서는 실험 전 스냅샷을 활용하는 것이 매우 유리합니다.
● 내부망과 외부망 구분 습관
개발용 VM은 사설 개발·테스트 목적입니다.
실제 운영용 계정, API 키, 인증서 등을 혼용하지 않습니다.
예
- 운영 DB 비밀번호를 개발 VM에서 사용 X
- 인증 키는 별도 보안 장치에 보관
● 결론
보안적인 관점에서 VM은 학습용이면서도 실제 서버 환경에 가장 가까운 구조입니다.
따라서 초기에 아래 원칙만 지켜도 안정성이 크게 향상됩니다.
- SSH 키 로그인
- 방화벽 설정
- 포트 최소 노출
- 코드와 키 파일 분리 관리
- 주기적 업데이트 및 스냅샷
이러한 보안 습관은 로컬 VM뿐 아니라
AWS, GCP, Naver Cloud 등 클라우드 서버 운영 시 그대로 적용됩니다.
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
| 데이터·문서 공유 대안(Samba, 클라우드 등) (1) | 2025.11.17 |
|---|---|
| 로컬 웹 브라우저 연동 (2) | 2025.11.15 |
| Git을 활용한 코드 동기화 (1) | 2025.11.14 |
| SCP 및 SFTP 파일 전송 (0) | 2025.11.12 |
| 클립보드 공유 및 Drag & Drop (3) | 2025.11.10 |