프로덕션용 Ubuntu Linux 서버 보안 설정 방법

발행: (2026년 5월 9일 AM 06:43 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

프로덕션 Linux 서버를 보안하는 것은 시스템 관리자의 가장 중요한 책임 중 하나입니다. 설정이 잘못된 서버는 무차별 대입 공격, 악성코드, 무단 접근 및 서비스 중단의 쉬운 표적이 될 수 있습니다.

이 가이드에서는 Ubuntu 서버를 프로덕션 환경에 맞게 강화하고 보안하는 필수 단계를 제시합니다.

1. 서버를 정기적으로 업데이트하기

시스템 패키지를 항상 최신 상태로 유지하여 보안 취약점을 패치하십시오.

sudo apt update && sudo apt upgrade -y

사용하지 않는 패키지를 제거합니다:

sudo apt autoremove -y

2. 비루트 사용자 만들기

일상적인 관리 작업에 루트 사용자를 직접 사용하는 것을 피하십시오.

새 사용자를 생성합니다:

sudo adduser adminuser

사용자를 sudo 그룹에 추가합니다:

sudo usermod -aG sudo adminuser

3. 루트 SSH 로그인 비활성화

SSH를 통한 루트 로그인은 큰 보안 위험입니다.

SSH 설정 파일을 편집합니다:

sudo nano /etc/ssh/sshd_config

다음 줄을 찾습니다:

PermitRootLogin yes

다음과 같이 변경합니다:

PermitRootLogin no

SSH를 재시작합니다:

sudo systemctl restart ssh

4. 기본 SSH 포트 변경

기본 SSH 포트를 변경하면 자동화된 무차별 대입 공격을 줄이는 데 도움이 됩니다.

/etc/ssh/sshd_config 내부에 새로운 포트를 설정합니다(예시):

Port 2222

SSH를 재시작합니다:

sudo systemctl restart ssh

새 포트를 방화벽에서 허용하는 것을 잊지 마세요.

5. UFW 방화벽 구성

Ubuntu에는 UFW(간편 방화벽)가 기본으로 제공됩니다.

필요한 서비스 허용:

sudo ufw allow 2222/tcp   # SSH (사용자 지정 포트)
sudo ufw allow 80/tcp     # HTTP
sudo ufw allow 443/tcp    # HTTPS

방화벽을 활성화합니다:

sudo ufw enable

상태를 확인합니다:

sudo ufw status

6. Fail2Ban 설치

Fail2Ban은 반복된 로그인 실패 시도를 자동으로 차단합니다.

설치합니다:

sudo apt install fail2ban -y

서비스를 활성화하고 시작합니다:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

상태를 확인합니다:

sudo fail2ban-client status

7. SSH 키 인증 사용

SSH 키는 비밀번호보다 훨씬 안전합니다.

로컬 머신에서 SSH 키를 생성합니다:

ssh-keygen

공개 키를 서버에 복사합니다:

ssh-copy-id user@server-ip

그런 다음 /etc/ssh/sshd_config에서 비밀번호 인증을 비활성화합니다:

PasswordAuthentication no

SSH를 다시 재시작합니다:

sudo systemctl restart ssh

8. Docker 컨테이너 보안 (프로덕션에서 Docker를 사용하는 경우)

  • 컨테이너를 루트로 실행하지 않기
  • 이미지 최신 상태 유지
  • 신뢰할 수 있는 이미지만 사용
  • 노출되는 포트 제한
  • 이미지 취약점 스캔

Docker를 정기적으로 업데이트합니다:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

9. 자동 보안 업데이트 활성화

unattended-upgrades를 설치합니다:

sudo apt install unattended-upgrades -y

자동 보안 업데이트를 활성화합니다:

sudo dpkg-reconfigure unattended-upgrades

10. 로그 및 시스템 활동 모니터링

정기적인 모니터링은 의심스러운 활동을 조기에 감지하는 데 도움이 됩니다.

유용한 명령어:

sudo journalctl -xe
sudo tail -f /var/log/auth.log

고려해볼 수 있는 추가 모니터링 도구:

  • Prometheus
  • Grafana
  • Netdata
  • Uptime Kuma

11. 서버 백업

다음과 같은 모범 사례를 적용하여 안전한 백업을 유지하십시오:

  • 일일 자동 백업
  • 오프사이트 저장소
  • 데이터베이스 덤프
  • 백업 검증

일반적인 백업 도구:

  • rsync
  • BorgBackup
  • Restic
  • Rclone

최종 생각

서버 보안은 일회성 설정이 아닙니다. 지속적인 모니터링, 업데이트 및 최적화가 필요한 지속적인 프로세스입니다. 제대로 보안된 Ubuntu 서버는 위험을 줄이고 신뢰성을 향상시키며 안정적인 프로덕션 환경을 유지하는 데 도움이 됩니다.

Tags: #ubuntu #security #devops

0 조회
Back to Blog

관련 글

더 보기 »