📌 내용
1. 왜 지금 우분투 보안 점검을 해야 하는가
우분투 서버는 클라우드, 온프레미스, 홈서버까지 거의 표준처럼 사용됩니다.
문제는 기본 설치 상태 그대로 운영하면 취약한 상태로 외부에 노출된다는 점입니다.
특히 다음 환경에서는 리스크가 급격히 올라갑니다:
- Docker / Kubernetes 사용
- 포트 외부 노출 (80, 443, 8080 등)
- 개인 서버 + 도메인 연결 (Nginx reverse proxy)
👉 결론: “돌아간다” ≠ “안전하다”
2. SSH 보안 (가장 먼저 터지는 지점)
주요 취약점
- root 로그인 허용
- 비밀번호 로그인 허용
- 포트 22 고정 사용
대응 방법
# SSH 설정 수정
sudo vi /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
Port 2222
PasswordAuthentication no
Port 2222
👉 핵심:
- root 로그인 차단
- key 기반 인증만 허용
- 포트 변경 (봇 공격 감소)
3. 방화벽 미설정 (거의 90%가 이 상태)
문제
- 모든 포트가 외부에 열려 있음
해결
sudo ufw enable
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw status
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw status
👉 원칙:
- 필요한 포트만 허용 (화이트리스트 방식)
4. 패키지 업데이트 미적용
취약점
- 알려진 CVE 그대로 노출
대응
sudo apt update && sudo apt upgrade -y
자동화까지 가면 더 좋습니다:
sudo apt install unattended-upgrades
5. Docker 사용 시 보안 취약점
르무엘님 환경에서 핵심입니다.
문제
- root 권한으로 컨테이너 실행
- 외부 포트 무분별 노출
대응
# rootless docker 권장
dockerd-rootless-setuptool.sh install
dockerd-rootless-setuptool.sh install
또는 최소한:
docker run --user 1000:1000 ...
👉 핵심:
- 컨테이너 = 격리된 root 아님
6. 로그 모니터링 없음
문제
- 공격 들어와도 모름
대응
sudo apt install fail2ban
👉 기능:
- SSH brute force 자동 차단
로그 확인:
tail -f /var/log/auth.log
7. 파일 권한 설정 오류
문제
- 777 남발
chmod 777 -R /
👉 이건 사실상 “서버 공개 선언”
대응 원칙
권한의미
| 755 | 실행 + 읽기 |
| 644 | 일반 파일 |
| 600 | 민감 파일 |
8. 민감 정보 하드코딩
문제
- DB 비밀번호, JWT secret 코드에 박힘
대응
.env
docker secrets
vault (고급)
docker secrets
vault (고급)
👉 실무 기준:
- 절대 Git에 올리지 않는다
9. 불필요한 서비스 실행
문제
- 공격 surface 증가
확인:
sudo systemctl list-units --type=service
비활성화:
sudo systemctl disable apache2
10. TLS/HTTPS 미적용
문제
- 평문 통신 → 계정 탈취
대응
sudo apt install certbot
sudo certbot --nginx
sudo certbot --nginx
👉 요즘 기준:
- HTTP 서비스 = 거의 취약점
11. 실무에서 가장 중요한 포인트 (핵심 정리)
보안은 기능이 아니라 운영 전략입니다.
✔ 공격자는 항상 자동화되어 있음
✔ 서버는 항상 노출되어 있음
✔ “괜찮겠지”가 가장 큰 취약점
12. 결론
우분투 서버 보안은 복잡한 기술이 아니라
기본 설정 + 운영 습관입니다.
특히 개발자가 직접 서버를 운영하는 시대에서는:
👉 개발 실력 = 보안 수준
📌 한 줄 요약
“서버는 만들고 끝이 아니라, 계속 방어해야 하는 대상이다.”
LIST
'Software > Maker(Spring & Python & node)' 카테고리의 다른 글
| 멀티 프로세스와 멀티 스레드 (4) | 2026.03.26 |
|---|---|
| AI 파이프라인과 AI 오케스트레이션의 관계: 무엇이 흐름이고 무엇이 통제인가 (0) | 2026.03.26 |
| 최종적 일관성이란 무엇인가요? (0) | 2026.03.25 |
| HTTP/2의 특징에 대해 설명해주세요. (0) | 2026.03.25 |
| Redis / Kafka / OpenSearch 도입 근거 (0) | 2026.03.24 |
