본문으로
Minecraft News & Culture

서버 운영 첫걸음 ③ 화이트리스트·롤백·백업, 서버를 지키는 기본기

시리즈 마지막 화는 서버를 지키는 법을 다룬다. online-mode 와 화이트리스트, op 권한 줄이기, CoreProtect 롤백, 여러 시점의 백업, fractureiser 사례로 본 플러그인 출처 관리, IP 노출 기초와 업데이트 순서를 정리했다.

MCNOW · ·조회 0 💬 0
밤의 블록 성채를 지키는 방벽과 금고, 그 옆에 쌓인 상자 더미
서버는 여는 것보다 지키는 것이 오래 걸린다. 그 일의 대부분은 미리 해 두는 습관이다

서버 운영자에게 가장 아픈 순간은 렉이 아니다. 몇 주 동안 지은 마을이 하룻밤 사이에 불타 있거나, 업데이트 한 번에 세계가 열리지 않을 때다. 그리고 이런 일은 대부분 '미리 해 둘 수 있었던 일'을 하지 않아서 생긴다.

「서버 운영 첫걸음」 마지막 3화는 서버를 지키는 기본기를 다룬다. 누가 들어올 수 있는지 정하는 법, 권한을 나누는 법, 사고가 났을 때 되돌리는 법, 백업과 업데이트 순서, 그리고 플러그인과 IP 를 둘러싼 보안 상식까지. 1화의 Paper 서버와 2화의 플러그인을 전제로 한다.

문 단속 — online-mode 와 화이트리스트

online-mode 는 켜 둔다

server.properties 의 online-mode=true 는 마인크래프트 계정 서버에서 확인된 정품 계정만 들여보낸다. 이것을 끄면 인증을 거치지 않은 계정도 들어올 수 있어, 누구든 다른 사람의 닉네임으로 접속할 수 있게 된다. 그 닉네임에 op 가 걸려 있다면 결과는 뻔하다.

예외는 하나다. 1화에서 본 Velocity 프록시를 쓰면 뒤쪽 서버는 online-mode 를 끄고 인증을 프록시에 맡긴다. 이때는 Velocity 문서의 안내대로 방화벽이나 localhost 바인딩으로 프록시 말고는 뒤쪽 서버에 접속하지 못하게 막아야 한다. Velocity 문서는 방화벽 사용을 "강력히 권장"한다.

친구끼리라면 화이트리스트

화이트리스트를 켜면 whitelist.json 에 있는 사람만 들어온다. Minecraft Wiki 에 따르면 자바 에디션 26.3 부터는 white-list 기본값이 켜짐(true)으로 바뀌었다. 그 이전 버전 서버라면 직접 켜야 한다.

  • /whitelist on — 켜기
  • /whitelist add 닉네임 — 추가
  • /whitelist remove 닉네임 — 빼기
  • 파일을 직접 고쳤다면 /whitelist reload

enforce-whitelist=true 로 두면, 목록에서 뺀 사람이 이미 접속해 있을 때 다시 불러오는 순간 내보낸다. 서버 목록에 접속자 이름을 보여 주기 싫다면 hide-online-players=true 도 있다.

권한은 작게 — op 를 아끼는 법

/op 는 편하지만 무겁다. 자바 에디션의 권한 단계는 0~4 이고, op-permission-level 기본값은 4, 곧 서버 관리 명령까지 모든 명령이다. 친구에게 "건축 좀 편하게 하라고" op 를 주면 서버를 멈추고 다른 사람을 내보낼 권한까지 같이 준 셈이다.

단계Minecraft Wiki 의 구분주요 내용
1Moderator스폰 보호 구역 무시
2Gamemaster대부분의 게임 명령, 명령 블록, 게임 모드·난이도 변경
3Admin멀티플레이 관리 명령
4Owner서버 관리 명령을 포함한 모든 명령
  • op 는 운영자 본인 한 명만. 나머지는 2화의 LuckPerms 그룹으로 필요한 권한만 준다.
  • WorldEdit, CoreProtect 롤백, 밴 같은 강한 권한은 그룹을 따로 만들어 믿는 사람에게만.
  • 사람이 빠지면 /deop 와 그룹 정리를 바로 한다. op 명단은 ops.json 에 있다.

그리핑이 났을 때 — CoreProtect 롤백

2화에서 CoreProtect 를 미리 넣어 뒀다면 당황할 필요가 없다. 순서는 이렇다.

  1. 조사. /co i 로 조사 모드를 켜고 망가진 블록을 눌러 누가 했는지 본다. 넓게 보려면 /co lookup u:닉네임 t:1d.
  2. 미리 보기. /co rollback u:닉네임 t:1h r:20 #preview — 실제로 바꾸지 않고 결과만 보여 준다.
  3. 되돌리기. 미리 보기가 맞으면 #preview 를 빼고 실행한다.
  4. 실수했다면. /co undo 로 방금 한 롤백을 거꾸로 되돌린다.

CoreProtect 문서에 따르면 롤백에서 반경(r:)을 적지 않으면 10칸이 적용된다. 서버 전체를 되돌리려면 r:#global 을 쓴다. 범위를 좁게 시작해 넓혀 가는 편이 안전하다.

CoreProtect 공식 문서의 명령어 페이지
rollback, restore, lookup 의 매개 변수는 공식 문서에 정리돼 있다

백업 — 습관이 전부다

Paper 문서는 "제대로 작동하는 백업은 크든 작든 모든 서버에 필수"라고 적는다. 무엇을, 어떻게, 얼마나 자주가 핵심이다.

무엇을

  • 세계 폴더 (world, 그리고 서버에 따라 따로 생기는 네더·엔드 폴더)
  • server.properties, whitelist.json, ops.json 등 설정 파일
  • plugins 폴더의 플러그인 .jar 와 각 플러그인의 설정 폴더

어떻게 — 서버를 켠 채로 복사할 때

  1. save-off — 세계 파일 쓰기를 잠시 멈춘다.
  2. save-all flush — 모든 청크를 즉시 저장한다. 잠깐 멈칫할 수 있다.
  3. 세계 폴더를 압축하거나 다른 곳으로 복사한다.
  4. save-on — 쓰기를 다시 켠다.

가장 확실한 방법은 서버를 끈 상태에서 통째로 복사하는 것이다. 매일 새벽 재시작 시간에 맞춰 윈도우 작업 스케줄러나 리눅스 cron 으로 복사 스크립트를 돌리면 손이 덜 간다. 호스팅 업체를 쓴다면 자체 백업 기능부터 확인하자.

얼마나, 어디에

Paper 문서는 여러 시점의 백업을 안전한 곳에 두라고 권한다. 어제 것 하나만 있으면, 그리핑을 사흘 뒤에 알아챘을 때 쓸 백업이 없다. 하루 단위 며칠치, 주 단위 몇 주치를 남기고, 서버와 다른 디스크나 클라우드에 하나 더 둔다. 그리고 가끔은 실제로 복원해 열어 본다. 열어 본 적 없는 백업은 백업이 아니다.

플러그인은 공식 배포처에서만

2화에서 Paper 문서를 빌려 말했듯, 플러그인은 서버 컴퓨터 전체에 접근할 수 있다. 이것이 실제 피해로 이어진 대표 사례가 2023년 6월의 fractureiser 다. 조사단이 GitHub 에 정리한 기록에 따르면, CurseForge 와 BukkitDev 에 올라온 여러 프로젝트에서 악성 코드가 발견됐고, 일부는 인기 모드팩에도 들어갔다.

  • 윈도우와 리눅스를 노렸다.
  • 마이크로소프트 계정 토큰, 디스코드 토큰, 브라우저 쿠키와 저장된 로그인 정보를 훔쳤다.
  • 컴퓨터 안의 다른 .jar 파일 — Bukkit·Spigot 플러그인, Forge·Fabric 모드 등 — 을 찾아 스스로 퍼뜨렸다.

조사단은 이 사건이 끝났다고 밝혔지만, 비슷한 모방 공격의 가능성은 남아 있다고 적었다. 교훈은 단순하다.

  • Hangar, Modrinth, BukkitDev, SpigotMC, 개발자의 공식 사이트·GitHub 에서만 받는다.
  • "유료 플러그인 무료 배포", 출처를 알 수 없는 카페·디스코드 첨부 파일은 받지 않는다.
  • 배포처가 체크섬을 제공하면 맞춰 본다. Paper 다운로드 페이지도 SHA-256 값을 함께 보여 준다.
  • 쓰지 않는 플러그인은 지운다. 넣어 둔 것 하나하나가 관리 대상이다.
fractureiser 조사 기록 GitHub 저장소
fractureiser 조사단이 GitHub 에 공개한 기록. 사건 경과와 기술 분석이 정리돼 있다

DDoS 와 IP 노출 기초

집 컴퓨터로 서버를 열고 주소를 그대로 알려 주면, 그 주소는 집 인터넷의 IP다. 서버를 노린 공격은 곧 집 회선 전체를 노린 공격이 된다.

  • 친구끼리라면 주소를 공개된 곳에 올리지 않는다. 화이트리스트는 접속을 막을 뿐, 트래픽 공격을 막지는 못한다.
  • 공개 서버로 키울 생각이라면 집이 아닌 호스팅으로 옮기는 것이 현실적이다. 업체를 고를 때 DDoS 방어 여부를 확인한다.
  • 포트는 필요한 것만 연다. 자바 25565(TCP), 베드락을 받는다면 19132(UDP) 정도다. 원격 접속이나 데이터베이스 포트까지 열어 두지 않는다.
  • 프록시를 쓴다면 뒤쪽 서버 포트는 외부에 열지 않는다(Velocity 문서의 권고).

업데이트 순서

새 버전이 나오면 바로 올리고 싶지만, 플러그인 서버는 순서를 지켜야 한다. Paper 문서의 안내를 바탕으로 정리하면 이렇다.

  1. 기다린다. 쓰는 플러그인들이 새 버전을 지원한다고 밝힐 때까지. 핵심 플러그인 하나라도 안 되면 미룬다.
  2. 백업한다. 세계, 설정, 플러그인 .jar 와 설정까지.
  3. 플러그인을 준비한다. plugins 안에 update 폴더를 만들고 새 .jar 를 넣어 두면 재시작 때 교체된다.
  4. 서버를 끄고 Paper 를 바꾼다. 새 .jar 를 시작 명령에 쓰는 이름으로 바꿔 덮어쓴다. 문서는 켜져 있는 서버의 .jar 를 바꾸지 말라고 못 박는다.
  5. 켜고 로그를 본다. 플러그인 오류나 충돌이 없는지 시작 로그를 꼼꼼히 확인한다.

Paper 문서는 플러그인 충돌 위험 때문에 자동 업데이트를 권하지 않는다. 업데이트는 운영자가 자리에 있을 때 한다.

3화 정리, 그리고 그다음

  • online-mode 는 켠다. 친구 서버는 화이트리스트
  • op 는 나 하나, 나머지는 LuckPerms 그룹
  • 롤백은 #preview 로 먼저 보고, 실수하면 /co undo
  • 백업은 여러 시점, 다른 장소, 가끔 복원 시험
  • 플러그인은 공식 배포처에서만. fractureiser 를 기억하자
  • 업데이트는 플러그인 지원 확인 → 백업 → 교체 → 로그 확인

세 화를 따라왔다면 친구들과 오래 놀 수 있는 서버의 기본은 갖췄다. 언젠가 더 많은 사람을 맞고 싶어진다면 MINECAP 의 서버 리스트에 서버를 올리고, 서버 홍보 게시판에 소개 글을 남겨 보자. 그때는 이번 화의 보안 수칙이 더 중요해진다.


참고 자료

이 기사에 대해 이야기하고 싶나요?

MINECAP에서 다른 마인크래프트 유저들과 의견을 나눠 보세요.

💬 MINECAP에서 이야기하기 → 아직 의견이 없어요. 첫 의견을 남겨 보세요

함께 읽으면 좋은 기사

SERVER·대한민국 마인크래프트 서버의 역사 1화 지금, 한국 서버 지도 — MINECAP 서버 리스트 데이터로 본 2026년 가을 한국 서버의 역사를 '현재 좌표'에서 시작한다. 2026년 10월 9일 기준 MINECAP 등록 서버 138곳의 에디션·장르·버전과 48시간 접속자 기록으로 지금의 서버판을 숫자로 그렸다. 2026.10.10 SERVER·서버 운영 첫걸음 2화 서버 운영 첫걸음 ② LuckPerms부터 Geyser까지, 처음 넣는 필수 플러그인 여덟 가지 Paper 서버에 처음 넣을 만한 플러그인 여덟 가지를 정리했다. 권한, 기본 명령, 기록과 롤백, 건축과 지역 보호, 베드락 접속, 렉 진단까지 각 플러그인이 하는 일과 공식 배포처, 설치할 때의 주의점을 담았다. 2026.10.05 SERVER·서버 운영 첫걸음 1화 서버 운영 첫걸음 ① 바닐라·Paper·Purpur·Fabric, 서버 구동기 고르고 처음 켜기 자바 에디션 서버를 처음 여는 사람을 위한 시리즈 1화. 바닐라, Spigot, Paper, Purpur, Fabric·NeoForge, Velocity 의 차이와 상황별 추천, 자바 버전과 메모리 기준, eula.… 2026.10.02 FEATURE·처음 만나는 레드스톤 5화 처음 만나는 레드스톤 ⑤ — 관측기와 피스톤으로 짓는 첫 자동 농장 관측기와 피스톤으로 사탕수수 자동 농장을 층별로 짓고, 같은 틀로 대나무를 기른다. 호박·수박은 버튼식 반자동으로 시작하는 이유를 설명하고, 진흙과 호퍼를 이용한 수집법과 효율 팁을 정리했다. 2026.10.09
읽었다면, 이제 이야기할 차례

마인크래프트 이야기는 MINECAP에서 계속됩니다

MCNOW 기사마다 MINECAP 토론이 열려 있어요. 가입하면 출석만 해도 다이아가 쌓이고, 모은 다이아는 기프티콘으로 바꿀 수 있어요.