Debian 13
서버 구축기
안정적인 기반을 먼저 세우고 필요한 서비스만 차근차근 얹습니다. 설치 매체 준비부터 업데이트, 원격 관리, 웹 스택과 백업까지 Debian 13 Trixie 서버를 시작할 때 확인할 흐름을 정리했습니다.
최소 구성으로 설치
공식 설치 안내를 확인하고 서버에서 사용할 패키지만 선택합니다.
접속과 업데이트 정리
관리자 계정, SSH 키, 방화벽 정책을 점검한 다음 보안 업데이트를 적용합니다.
서비스와 백업 구성
필요한 웹 서비스를 올리고 인증서, 로그, 데이터 백업을 검수합니다.
설치 전 준비
Debian 13의 코드명은 Trixie입니다. 설치 전에 장비의 CPU 아키텍처, 메모리와 저장장치, 유선·무선 네트워크 장치를 확인하고 그에 맞는 공식 설치 이미지를 선택합니다. 서버에 직접 연결할 수 있는 콘솔이나 복구 경로도 미리 준비해 둡니다.
- 중요한 기존 데이터는 별도 저장소에 백업하고 설치 대상 디스크를 다시 확인합니다.
- 고정 주소를 쓸 계획이면 주소, 게이트웨이, DNS, 공유기 예약 설정을 함께 기록합니다.
- 설치 과정에서는 불필요한 데스크톱 환경과 서비스 선택을 줄여 관리 범위를 단순하게 둡니다.
- 설치가 끝나면 관리자 권한을 일상 계정과 분리하고 시간 동기화 상태를 점검합니다.
첫 부팅 후 기본 정리
저장소 정보를 갱신하고 설치된 패키지를 현재 Debian 13 업데이트 수준으로 맞춥니다. 명령은 관리자 권한이 있는 계정에서 실행하며, 주요 업그레이드는 변경 내용을 읽고 진행합니다.
SYSTEM UPDATEsudo apt update
sudo apt full-upgrade
sudo apt install --yes ca-certificates curl vim
서버의 이름은 용도와 위치를 식별할 수 있게 정하고, 네트워크가 재시작된 뒤에도 원격 접속이 가능한지 확인합니다. 재부팅이 필요한 업데이트를 적용한 경우 서비스 상태도 다시 검사합니다.
HOST AND SERVICE CHECKhostnamectl
timedatectl status
systemctl --failed
ip address
원격 관리와 기본 보안
SSH를 사용하는 경우 먼저 키 기반 로그인이 실제로 동작하는지 확인하고, 콘솔 접근이나 복구 수단을 확보한 뒤 인증 정책을 조정합니다. 방화벽은 서버가 제공할 서비스에 필요한 포트만 허용하고, 관리 포트는 신뢰할 수 있는 관리망으로 제한합니다.
SSH KEY ACCESS CHECKsudo apt install --yes openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh --no-pager
- 공개키 로그인을 새 세션에서 확인하기 전에는 비밀번호 인증을 끄지 않습니다.
- SSH 설정 변경 후에는
sshd -t로 구문을 확인하고 기존 세션을 유지한 채 재접속을 시험합니다. - 관리 포트를 인터넷 전체에 열어두지 말고, 방화벽과 공유기 포트 전달 규칙을 함께 점검합니다.
- 사용하지 않는 서비스와 포트를 확인하고, 외부에서 보이는 서비스 목록을 주기적으로 검토합니다.
Nginx·PHP·MariaDB 웹 스택
PHP 기반 사이트를 운영하는 예시 구성입니다. 사이트 요구사항에 따라 PHP 확장 모듈을 추가하고, 사용하지 않는 구성 요소는 설치하지 않습니다. Debian 13 저장소에서 제공하는 패키지 버전과 서비스 이름을 확인해 적용하세요.
PACKAGE INSTALL EXAMPLEsudo apt install --yes nginx mariadb-server php-fpm php-mysql
sudo systemctl enable --now nginx mariadb
- Nginx 서버 블록을 사이트별로 분리하고 문서 루트와 로그 위치를 명시합니다.
- PHP-FPM은 해당 호스트에서 설치된 버전의 소켓 경로를 확인해 Nginx와 연결합니다.
- MariaDB는 애플리케이션별 계정과 최소 권한 데이터베이스를 사용하고 관리 계정을 외부에 노출하지 않습니다.
- 설정 파일을 활성화하기 전 문법 검사와 로컬 응답 테스트를 수행합니다.
sudo nginx -t
sudo systemctl status nginx mariadb --no-pager
php --version
sudo ss -lntup
도메인, TLS와 운영 점검
DNS가 서버 또는 리버스 프록시의 올바른 공개 주소를 가리키는지 확인하고, TLS 인증서 발급 전에 HTTP 경로와 웹 서버 가상 호스트를 검증합니다. 프록시를 사용하는 경우 원본 서버의 접근 범위와 전달 헤더도 명시적으로 제한합니다.
- 도메인별 Nginx 설정과 인증서 갱신 절차를 기록하고 갱신 후 웹 서버 reload를 검증합니다.
- 애플리케이션과 DB는 필요하지 않다면 외부 네트워크 인터페이스에 바인딩하지 않습니다.
- 로그 용량, 디스크 사용량, 메모리, 재부팅 후 서비스 자동 시작 여부를 확인합니다.
- 변경은 한 번에 하나씩 적용하고, 응답 코드와 서비스 로그를 확인해 원인을 추적할 수 있게 합니다.
백업과 복구 검수
서버 구축은 백업이 복구되는지 확인해야 마무리됩니다. 웹 루트, 업로드 파일, 애플리케이션 설정, 데이터베이스 덤프, TLS 갱신 관련 설정을 서로 다른 복구 단위로 기록합니다.
- 정기 백업 위치가 원본 서버와 분리되어 있는지 확인합니다.
- 백업 작업의 성공·실패 로그와 보관 기간을 점검합니다.
- 별도 테스트 위치에서 파일과 데이터베이스 복구를 실제로 실행합니다.
- 복구 후 사이트 응답, 업로드 파일, 사용자 데이터, 예약 작업을 확인합니다.
- 복구 절차와 관리 계정 접근 방법을 안전한 별도 장소에 보관합니다.