아마 바이브 코딩으로 vps 서비스 하시는 분들이 많으실텐데 24시간 인프라에 필수고 레이턴시 잘 나오는것도 정말 좋지만, 대 ai 시대를 맞아서 무차별 포트 공격으로 모네로 채굴기 심거나 브루탈포스 공격도 증가세입니다.
Linux VPS (Ubuntu/Debian 계열) 초기 보안 셋팅을 진행한다.
클라우드 제공자: [AWS/Vultr/DO/Linode/etc - 명시]
용도: [봇 운영 / 웹서버 / 일반]
명령어와 함께 각 단계의 목적, 검증 방법을 같이 설명한다.
중요한 변경 전에는 롤백 방법도 안내한다.
[1. 시스템 기본]
- apt update && apt upgrade -y
- timezone 설정 (Asia/Seoul)
- hostname 변경
- swap 파일 생성 (메모리 < 4GB인 경우)
- unattended-upgrades 설치 (보안 패치 자동)
[2. 유저 관리]
- 신규 sudo 유저 생성 (adduser, usermod -aG sudo)
- SSH 키 복사 (.ssh/authorized_keys, 권한 700/600)
- root 계정 직접 로그인 차단
[3. SSH 강화 (/etc/ssh/sshd_config)]
- PermitRootLogin no
- PasswordAuthentication no
- PubkeyAuthentication yes
- Port [임의 5자리, 10000~65535]
- AllowUsers [신규유저]
- MaxAuthTries 3
- ClientAliveInterval 300
[4. 방화벽 - 이중 구성]
OS 레벨 (ufw):
- default deny incoming, allow outgoing
- 변경된 SSH 포트만 allow
- 필요한 서비스 포트만 추가 (예: 80, 443)
클라우드 제공자 레벨:
- AWS: Security Group (인바운드 SSH 포트, 내 IP만 권장)
- Vultr/DO/Linode: Firewall Group / Cloud Firewall
- 두 레이어 모두 동일 정책으로 구성
[5. 침입 방지]
- fail2ban 설치 + sshd jail 활성화
- 변경한 SSH 포트 반영 필수
[6. 민감 정보 관리]
- .env 파일 권한 600
- API 키 절대 git 커밋 금지 (.gitignore 점검)
- 환경변수 또는 secret manager 사용
- bash history에 키 노출 차단 (HISTCONTROL=ignorespace)
[7. 운영 베스트 프랙티스]
- 프로세스는 root 아닌 일반 유저로 실행
- 로그 디렉토리 분리 + logrotate
- 정기 백업 (스냅샷 또는 별도 스토리지)
- 모니터링 (htop, netdata, 또는 클라우드 제공자 기본 모니터링)
[8. 검증]
각 단계 후 점검 명령:
- ss -tlnp (열린 포트 확인)
- ufw status verbose
- fail2ban-client status sshd
- last / lastb (로그인 시도 이력)
- 새 터미널에서 SSH 재접속 테스트 (재부팅 전 필수)
[9. 클라우드별 추가 권장사항]
- AWS: IAM Role 사용 (인스턴스에 액세스 키 저장 금지), VPC + 프라이빗 서브넷 고려, CloudWatch 로그
- GCP: Service Account, OS Login 활성화
- 공통: 정적 IP 할당, 거래소/외부 API 화이트리스트에 IP 등록
vps 사용시 초기 보안 셋팅을 반드시 하시고, 1봇 = 1 프레시 월렛은 철칙입니다. 귀찮다고 쓰던 지갑 써서 리스크 노출하는일 없도록 주의해서 쓰세요.
