Conan Exiles 서버를 DDoS 공격으로부터 방어하기
Conan Exiles 서버에 실제로 필요한 포트는 무엇인지, RCON과 조회 포트는 어떻게 보호하는지, PvP 서버가 왜 하필 레이드 시간에 공격받는지, 그리고 어느 공격 규모부터 서버 앞단 네트워크의 필터링만이 통하는지 정리했습니다.
하필 레이드 시간이 시작되는 순간에 접속할 수 없게 되는 Conan Exiles 서버는 하드웨어 문제인 경우가 드뭅니다. 거의 모든 경우에 공격이 진행 중이고, 그것도 피해가 가장 커지는 바로 그때 진행됩니다. 이 글은 Conan Exiles 서버에 DDoS 방어가 필요한 이유, 앞으로 십 분 안에 추가 비용 없이 직접 조치할 수 있는 것, 그 조치가 기술적으로 어디에서 끝나는지, 그리고 그다음 서버 앞단 네트워크에서 무엇이 이뤄져야 하는지를 보여 줍니다.
모든 내용은 Funcom의 전용 서버, 곧 ConanSandboxServer.exe 또는 StartServer.bat을 기준으로 합니다. 설정은 ConanSandbox\Saved\Config\WindowsServer\ 디렉터리의 파일 세 개, 곧 ServerSettings.ini, Engine.ini, Game.ini에 들어 있습니다. 서버를 Linux에서 호환 계층을 통해 운영하는 경우에도 마찬가지입니다. Funcom은 Windows 애플리케이션만 배포하므로 그런 환경에서도 경로 이름이 WindowsServer입니다.
공격이 지금 진행 중이라면: 먼저 측정값부터 확보하세요(9번 절). 공격이 끝나면 그 값은 사라집니다. 그리고 지금은 INI 파일을 편집하지 마세요. Conan Exiles는 설정을 메모리에 들고 있다가 종료할 때 다시 파일에 써 넣으므로, 서버가 돌아가는 중의 변경은 그 과정에서 사라집니다.
Conan Exiles 서버에 DDoS 방어가 필요한 이유
대부분의 게임에서 서버 장애는 짜증스러운 일입니다. Conan Exiles의 PvP 서버에서는 그것이 하나의 수입니다. 손실은 영구적이고, 기지는 정해진 시간대 안에서만 파괴할 수 있으며, 그 시간대에 방어자를 게임에서 빼내 버리면 아무도 없는 곳을 상대로 레이드하게 됩니다. 따라서 공격에는 구체적인 이득과 미리 알려진 시점이 있고, 한 번 통하면 반복됩니다.
그 시간대는 비밀이 아닙니다. 플레이어 간 전투는 ServerSettings.ini의 RestrictPVPTime에, 건물 피해는 RestrictPVPBuildingDamageTime에 적혀 있고, 운영자는 누구나 이를 서버 이름과 규칙 안내와 Discord에 스스로 써 둡니다. 그러지 않으면 플레이어가 알 수 없기 때문입니다. 그러니 공격자는 아무것도 캐낼 필요가 없습니다. 레이드 시간이 홍보되는 자리에서 그것을 읽고, 자기 공격을 같은 시각에 맞추면 됩니다.
상대 쪽이 들이는 수고는 그러면서 극히 적습니다. 이른바 booter 또는 stresser 서비스는 특정 IP 주소와 특정 포트를 향한 플러드를 분 단위로 판매합니다. 7777 UDP를 향한 포트 DDoS에는 게임 접근 권한도, 여러분의 서버에 관한 지식도 필요하지 않습니다. 주소와 포트 번호만 있으면 됩니다. 바로 그래서 작은 서버도 큰 서버와 똑같이 확실하게 맞습니다.
여기에 Conan Exiles를 대부분의 생존 게임과 구별하는 특이점이 더해집니다. ServerSettings.ini에는 LogoutCharactersRemainInTheWorld라는 스위치가 있습니다. 이것이 True이면 연결이 끊긴 뒤에도 플레이어 캐릭터가 사라지지 않고 세계에 그대로 서 있습니다. 그러면 모든 플레이어를 동시에 게임에서 쫓아내는 공격은 장비를 갖춘 움직이지 않는 캐릭터의 줄을 남깁니다. 그런 공격에서 기술적으로 무슨 일이 벌어지는지는 DDoS 공격이란 무엇인가? 글에서 설명합니다.
기술적으로는 모든 게임 트래픽이 UDP로 흐릅니다. UDP에는 요구할 수 있는 연결 수립 절차가 없고, 출발지 주소는 위조할 수 있습니다. 그래서 공격자는 부하를 만들기 위해 여러분의 서버에 들어올 필요도, 규격에 맞게 말을 걸 필요도 없습니다. 누가 접속해 있는지조차 알 필요가 없습니다.
실제로 문제가 되는 포트
Conan Exiles 서버는 외부로 정확히 세 개의 UDP 포트, 곧 7777, 7778, 27015가 필요합니다. 그 외의 모든 것은 선택 사항이거나 애초에 열린 네트워크에 둘 것이 아닙니다. Funcom이 문서로 밝힌 포트 배정은 다음과 같습니다.
| 포트 | 프로토콜 | 용도 | 설정 위치 |
|---|---|---|---|
| 7777 | UDP | 게임 트래픽(이동, 전투, 건축, 동기화) | Engine.ini의 [URL] 절, Port=7777, 시작 파라미터 -Port= |
| 7778 | UDP | 핑거, 게임 포트 더하기 1로 고정 | Engine.ini의 [URL] 절, PeerPort=7778 |
| 27015 | UDP | 서버 목록을 위한 Steam 형식 상태 조회 | Engine.ini의 [OnlineSubsystemSteam], ServerQueryPort, 시작 파라미터 -QueryPort= |
| 7777 | TCP | 클라이언트로의 모드 전송, 필요할 때만 열림 | 게임 포트와 동일 |
| 25575 | TCP | RCON 원격 제어, 출고 상태에서는 꺼져 있음 | Game.ini의 [RconPlugin] 절, RconPort=25575, 시작 파라미터 -RconPort= |
여기서 세 가지가 규칙적으로 잘못 처리됩니다. 첫째, 7778은 자유롭게 고를 수 있는 포트가 아니라 언제나 게임 포트 더하기 1입니다. 그래서 한 머신에서 두 인스턴스를 운영하려면 2씩 건너뛰어야 합니다. 첫 번째 인스턴스에 7777과 7778, 두 번째 인스턴스에 7779와 7780, 여기에 조회 포트로 27015와 27016입니다. 두 번째 인스턴스를 7778에 두면 첫 번째 인스턴스의 핑거를 빼앗는 셈입니다.
둘째, 7777의 TCP 허용은 모드 전송입니다. Funcom은 클라이언트가 요청할 때만 이를 열고, 요청하는 쪽은 Epic Games Store에서 온 클라이언트뿐입니다. Steam 클라이언트는 계속 Steam의 Workshop 인터페이스로 모드를 받습니다. 여러분의 플레이어가 Steam으로만 들어온다면 이 허용 규칙은 필요하지 않습니다.
셋째, RCON은 출고 상태에서 꺼져 있습니다. RconEnabled는 기본값이 0입니다. 그런데도 이 포트가 열려 있는 것을 발견했다면, 직접 켰거나 어떤 업체의 기성 설정 파일을 그대로 가져온 것입니다.
돈을 쓰기 전에 직접 할 수 있는 일
다음 아홉 단계는 비용이 들지 않고, 실제로 가장 자주 일어나는 것에 듣습니다. 소수의 출발지에서 오는 작고 표적화된 플러드, 악용되는 조회 포트, RCON을 향한 로그인 시도, 그리고 단 하나의 모드로 인한 과부하입니다. 앞단에 이미 네트워크 필터가 동작하고 있어도 이 단계들은 값어치가 있습니다.
1. 현황 파악: 서버에서 무엇이 대기하고 있나요?
규칙을 한 줄이라도 쓰기 전에 서버가 외부에 무엇을 내주고 있는지 확인하세요. 추측하지 말고 직접 확인합니다. Windows에서는 이렇게 합니다.
Get-NetUDPEndpoint | Where-Object LocalPort -in 7777,7778,27015
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
netstat -ano -p UDP | findstr "7777 7778 27015"
서버를 Linux의 호환 계층에서 운영한다면 대응 명령은 다음과 같습니다.
ss -lnup
ss -lntp
중요한 것은 로컬 주소 열입니다. 0.0.0.0:7777은 “인터넷 전체에서 접근할 수 있음”을 뜻하고, 127.0.0.1:25575는 “로컬에서만 접근할 수 있음”을 뜻하므로 방화벽 규칙이 필요하지 않습니다. 공격자의 시선은 외부에서 실행하는 포트 스캔이 보여 주는데, Conan Exiles에서는 TCP만 스캔해서는 거의 아무것도 찾지 못하므로 UDP도 반드시 함께 봐야 합니다.
nmap -Pn -sU -p 7777,7778,27015 YOUR.SERVER.IP.ADDRESS
nmap -Pn -p 7777,25575 YOUR.SERVER.IP.ADDRESS
2. UDP 포트 세 개만 열기
Windows에서는 내장 방화벽의 규칙 두 개로 충분합니다. 첫 번째 규칙은 게임 운영을 열고, 두 번째 규칙은 포트를 모두에게 열지 않고 RCON을 본인 주소로 제한합니다.
New-NetFirewallRule -DisplayName "Conan Exiles" -Direction Inbound -Protocol UDP -LocalPort 7777,7778,27015 -Action Allow
New-NetFirewallRule -DisplayName "Conan RCON" -Direction Inbound -Protocol TCP -LocalPort 25575 -RemoteAddress 203.0.113.10 -Action Allow
Get-NetFirewallRule -DisplayName "Conan*" | Format-Table DisplayName,Enabled,Direction,Action
Linux에서 UFW로 같은 일을 하면 다음과 같으며, 스스로 접속이 막히지 않도록 반드시 이 순서를 지키세요.
ufw allow 22/tcp comment 'SSH'
ufw allow 7777/udp comment 'Conan Exiles'
ufw allow 7778/udp comment 'Conan Exiles 핑거'
ufw allow 27015/udp comment 'Conan Exiles 쿼리'
ufw allow from 203.0.113.10 to any port 25575 proto tcp comment 'RCON'
ufw default deny incoming
ufw --force enable
ufw status verbose
203.0.113.10은 본인 주소로 바꾸세요. 복구 방법까지 포함한 전체 안내는 스스로 접속이 막히지 않게 UFW 방화벽 설정하기에 있습니다. 7777의 TCP 허용은 Epic Games Store로 들어오는 플레이어가 없는 한 빼 두세요.
3. RCON을 보호하거나 완전히 끄기
RCON은 여러분의 서버에 대한 완전한 접근 권한을 가진 원격 제어입니다. 플레이어 추방, 차단, 메시지 전송, 명령 실행이 모두 가능합니다. TCP 25575에서 동작하고 Game.ini에서 설정합니다.
[RconPlugin]
RconEnabled=0
RconPort=25575
RconPassword=
RconMaxKarma=60
RCON이 필요하지 않다면 RconEnabled=0을 그대로 두세요. 그것이 기본값이고 가장 안전한 설정입니다. 필요하다면 세 가지 원칙이 적용됩니다. 첫째, RconPassword는 길고 무작위여야 합니다. RCON 프로토콜은 비밀번호를 암호화하지 않은 채 회선으로 보내기 때문입니다. 둘째, 이 포트는 열린 인터넷에 둘 것이 아니라 본인 주소로 제한하거나 SSH 접속 뒤에 두어야 합니다. 셋째, RconMaxKarma는 로그인 플러드에 맞서는 내장 보호 장치이며 기본값은 60입니다. 이 카운터는 한 출발지가 짧은 시간에 몇 번까지 요청할 수 있는지를 거부되기 전까지로 제한합니다.
열린 RCON 포트는 게다가 여러분이 네트워크에 있다는 것을 확실하게 알려 주는 표시입니다. 25575를 넓게 스캔하는 사람은 게임 서버를 찾아내고, 앞단에 필터링이 없는 게임 서버는 노려 볼 만한 표적입니다.
4. 조회 포트를 닫지 말고 제한하기
27015 UDP는 Steam 형식의 상태 조회에 응답합니다. A2S 쿼리는 클라이언트가 게임을 실행하지 않고도 서버 이름, 맵, 플레이어 수, 플레이 시간을 가져오는 짧은 UDP 요청입니다. 서버 목록, 여러분의 상태 페이지, 그리고 플레이어 현황을 표시하는 모든 Discord 봇이 바로 이것을 필요로 합니다.
이 포트를 닫지 마세요. 그러면 여러분의 서버가 서버 목록에서 사라지고, 새 플레이어가 서버를 찾지 못합니다. 올바른 방법은 출발지 주소별 상한입니다. Linux에서는 이렇게 합니다.
iptables -I INPUT -p udp --dport 27015 -m hashlimit --hashlimit-name conan_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
iptables -L INPUT -n -v | head -20
출발지별로 초당 조회 열 번이면 실제 플레이어에게도 어떤 모니터링에도 충분하지만, 초당 수천 건을 보내는 출발지는 폐기됩니다. apt-get install -y iptables-persistent와 netfilter-persistent save로 규칙을 저장하세요. 그러지 않으면 다음 재시작에서 사라집니다. UFW에서는 이 규칙이 /etc/ufw/before.rules에 들어갑니다.
다만 여기에 단단한 한계가 있고, 그것은 Conan Exiles 운영자의 다수에게 해당합니다. Windows 방화벽에는 출발지 주소별 제한이 없습니다. 포트를 열거나 닫거나 고정된 주소로 제한할 수는 있지만, “발신자별로 초당 최대 열 개”라고 말할 수는 없습니다. Windows 서버에는 이 작업을 위한 기본 수단이 아예 없으므로, 제한은 서버 앞단 네트워크에서 이뤄져야 합니다.
두 번째 지점은 반대 방향의 악용입니다. 반사 공격은 이런 것입니다. 공격자가 출발지 주소를 위조한 조회를 수천 대의 게임 서버에 보내고, 그 응답이 모두 제3자에게 쏟아집니다. A2S 응답이 요청보다 크기 때문에 트래픽은 도중에 몇 배로 늘어납니다. 그때 여러분의 서버는 피해자가 아니라 무기이고, 송신 트래픽 요금은 여러분이 냅니다. Valve는 이를 위해 질문과 응답 절차를 도입했습니다. 서버는 A2S 쿼리에 먼저 되물을 수 있고, 주소를 위조한 발신자는 그 되물음에 답할 수 없습니다. 이것은 실제로 켜져 있는 곳에서만 효과가 있으므로, 27015의 속도 제한은 어떤 경우에도 함께 있어야 합니다.
5. 서버 비밀번호, 관리자 비밀번호, 슬롯
ServerSettings.ini에는 공격 표면을 직접 결정하는 설정이 세 개 있습니다.
[ServerSettings]
AdminPassword=
ServerPassword=
MaxPlayers=40
IsBattlEyeEnabled=True
AdminPassword는 이 파일 전체에서 가장 중요한 값입니다. 콘솔 접속 수단이 아니라, 정규로 접속한 플레이어가 게임 안에서 스스로 관리자 권한을 얻는 데 쓰는 비밀번호입니다. 짧거나 추측당한 관리자 비밀번호는 랙이 아니라 서버 자체의 상실을 뜻합니다. 길고 무작위로 설정하고, 팀원이 떠나는 즉시 교체하세요.
ServerPassword는 공개 서버를 비공개 서버로 만듭니다. 이것은 트롤, 일회용 계정, 그리고 정규 접속 경로를 쓰는 모든 대상에 듣습니다. 회선을 향한 공격에는 듣지 않습니다. 여러분의 서버를 플러딩하는 사람은 애초에 접속할 생각이 없습니다. 그 패킷은 거부되지만 그래도 이미 도착해 있고, 바로 그것이 핵심입니다.
MaxPlayers는 슬롯 수를 제한하며 시작 파라미터 -MaxPlayers=로도 설정할 수 있습니다. 현실적인 상한은 보호 조치이기도 합니다. 접속한 클라이언트마다 지속적으로 패킷을 만들어 내므로, 머신이 감당할 수 있는 것보다 슬롯이 많은 서버는 평상시 운영에서도 이미 주저앉습니다.
6. BattlEye가 해 주는 것과 해 주지 않는 것
Conan Exiles는 ServerSettings.ini의 IsBattlEyeEnabled로 안티치트 검사를 함께 제공합니다. 이것은 켜져 있어야 하지만 DDoS 방어는 아니고, 구조적인 이유가 있습니다. 안티치트는 이미 접속한 클라이언트를 검사합니다. 게임과 같은 프로세스에서 돌아가고, 서버가 이미 처리한 뒤에야 패킷을 보게 됩니다. 이 프로세스가 과부하라면 검사 로직도 함께 가라앉습니다.
추가로 설치하는 서버 쪽 도구 전부에 같은 말이 적용됩니다. 서버에서 돌아가는 모든 것은 이미 도착해 있는 것만 폐기할 수 있습니다. 안티치트는 게임 규칙을 지켜 주고, 가용성을 지켜 주지는 않습니다.
7. 모드를 깔끔하게 유지하기
개조된 Conan Exiles 서버에서 신고되는 장애의 상당 부분은 공격이 아닙니다. 모드 목록은 같은 설정 디렉터리에 modlist.txt로 놓여 있고, 모드는 모두 게임과 같은 프로세스에서 돌아갑니다. 무한 루프나 지나치게 촘촘한 틱, 또는 상한 없는 데이터베이스 조회를 가진 모드 하나가 공격과 똑같이 서버를 멈춰 세우는데, 다만 눈에 띄는 패킷 전송률은 없습니다.
구별은 간단하고 언제나 맨 앞에 와야 합니다. 머신은 거의 일하지 않는데 네트워크 카드의 패킷 전송률이 크게 오르면 공격입니다. 패킷 전송률은 평범한데도 전부 버벅인다면 소프트웨어입니다. 확실하지 않으면 모드 목록을 절반으로 줄이고 다시 시작하세요. 그러면 두 번의 시도로 원인이 좁혀집니다.
아주 실용적인 두 번째 지점이 있습니다. 게임 업데이트 뒤에는 모드와 서버 버전이 서로 맞지 않는 일이 잦습니다. 플레이어는 접속할 때 튕겨 나가고, Discord에는 “서버 다운”이라고 적히고, 모두가 존재하지 않는 공격을 찾습니다. 업데이트 뒤에는 먼저 모드 목록을 확인하세요.
8. 주소와 레이드 시간
여러분의 IP 주소는 비밀로 유지할 수 없습니다. 그러지 않으면 아무도 들어올 수 없기 때문에 서버 목록 항목에 적혀 있고, 한 번이라도 접속했던 플레이어는 모두 알고 있습니다. 주소 변경은 시간을 벌어 주지만 해결책은 아닙니다. 공격자는 새 주소를 옛 주소와 같은 출처에서, 보통 몇 분에서 몇 시간 안에 읽어 냅니다.
그래도 두 가지 습관은 도움이 됩니다. 원시 IP 주소를 어디에도 스스로 공개하지 마세요. Discord에도, 프로젝트 홈페이지에도 올리지 않는 것입니다. 그리고 플레이어를 호스트 이름으로 접속시켜, 주소 변경이 모든 참조를 깨뜨리지 않게 하세요. 여기서 고전적인 실수는 옛 주소를 가리키는 A 레코드를 잊고 방치하는 것이며, 그것은 어떤 변경도 무의미하게 만듭니다.
레이드 시간에는 숨기는 것과 정반대가 적용됩니다. 그 시간은 공개되어 있어야 하고, 그러지 않으면 여러분의 서버가 제대로 돌아가지 않습니다. 대신 그것을 진단에 쓰세요. 서버가 사흘 저녁 연달아 18시 5분에 멈추고 여러분의 레이드 시간이 18시에 시작한다면, 그것은 더 이상 추측이 아니라 티켓에 첨부할 수 있는 패턴입니다.
9. 추측하지 말고 측정하기
가장 중요하면서 거의 아무도 미리 하지 않는 단계가 있습니다. 모든 것이 정상으로 돌아가는 동안에 기준값을 만들어 두는 것입니다. 평상시 값이 없으면 사건이 끝난 뒤에 초당 40,000 패킷이 많았던 것인지 그냥 사람이 꽉 찬 금요일 저녁이었던 것인지 말할 수 없습니다. Windows에서는 기본 수단으로 충분합니다.
Get-NetAdapterStatistics
typeperf "\Network Interface(*)\Packets Received/sec" -sc 20
typeperf "\Network Interface(*)\Bytes Received/sec" -sc 20
Linux에서 대응하는 명령은 다음과 같습니다.
sar -n DEV 1 10
ip -s link show eth0
tcpdump -ni eth0 udp port 7777 or udp port 27015 -c 200 -q
tcpdump에는 한 가지 원칙이 있습니다. 항상 -c로 개수를 제한하세요. 과부하 상태에서의 캡처는 이미 과부하인 서버에 부담을 더 얹습니다. Conan Exiles의 서버 로그는 ConanSandbox\Saved\Logs\ 디렉터리에 놓이고, 시작 파라미터 -log를 주면 창에도 함께 기록됩니다. 세이브 데이터는 ConanSandbox\Saved\game.db에 단일 파일로 놓여 있습니다. 압박 속에서 무언가를 바꾸기 전에 이 파일을 먼저 백업하세요. 측정값을 해석하는 방법은 DDoS 공격 알아내기에 있습니다.
이 조치들이 한계에 이르는 지점: 대역폭과 패킷 전송률
이제 어떤 INI 파일로도 해결할 수 없는 부분입니다. 지금까지의 모든 조치는 여러분의 서버, 즉 회선의 끝에서 동작합니다. 방화벽 규칙은 이미 케이블을 지나온 패킷을 두고 판단합니다. 그 패킷을 폐기할 수는 있지만, 보내지 않은 것으로 만들 수는 없습니다.
한번 계산해 보겠습니다. 일반적인 게임 서버는 1 Gbit/s 회선에 물려 있고, 이는 초당 125 메가바이트이며, 누군가 그보다 많이 보내는 순간 회선은 꽉 찹니다. 생존 게임 서버를 향한 공격은 보통 5 Gbit/s에서 50 Gbit/s 사이, 곧 여러분 회선의 다섯 배에서 오십 배입니다. 그 뒤에 놓인 규칙이 훌륭한지는 그때부터 아무 상관이 없습니다. 플레이어의 패킷이 그 앞에서 이미 통과하지 못하기 때문입니다.
두 번째 수치는 패킷 전송률이고, 거의 항상 대역폭보다 이쪽이 먼저 터집니다. 64 바이트짜리 작은 패킷이라면 1 Gbit/s 회선에 초당 약 149만 개가 들어갑니다. 일반적인 서버는 CPU와 네트워크 카드에 따라 그중 수십만 개를 처리한 뒤 폐기를 시작합니다. 회선을 3분의 1도 채우지 못하는 공격이 그래도 여러분의 Conan Exiles 서버를 멈춰 세울 수 있는데, CPU 시간이 폐기에 들어가기 때문입니다. 운영자는 이것을 “사용률은 전혀 높지 않았는데 그래도 전부 죽었다”로 경험합니다.
Conan Exiles에서는 게임 세계 전체가 단 하나의 프로세스에서 돌아간다는 점이 사정을 더 어렵게 만듭니다. 첫 번째 프로세스가 바쁜 동안 계속 돌아가 주는 두 번째 인스턴스가 없습니다. 이 프로세스가 CPU 시간을 더 받지 못하는 순간 전투와 건축과 저장이 동시에 멈춥니다.
실제로 어떤 규모가 나오는지 가늠해 보면, KernelHost 서버에서는 음성 서버를 향한 초당 4,150만 패킷 이상과 함께 473.4 Gbit/s 이상의 공격, 그리고 게임 서버를 향한 112.2 Gbit/s 이상의 UDP 플러드가 걸러졌습니다. 이에 대한 로컬 설정은 없습니다. 볼류메트릭 공격은 서버 앞단 네트워크에서 끝나야 합니다.
KernelHost가 이에 맞서 제공하는 것
모든 서버에 포함된 상시 방어
KernelHost의 DDoS 방어는 두 단계로 구성되어 있고 상시 동작합니다. 여러분이 무엇을 켜거나 주문하거나 설정할 필요가 없습니다.
- 1단계: 글로벌 스크러빙 네트워크의 17 Tbps 방어 용량. 볼류메트릭 공격은 발생지에 가까운 곳에서 정화되어 데이터센터에 닿기 전에 걸러집니다.
- 2단계: 프랑크푸르트암마인의 3.2 Tbps Arbor 실시간 필터링. 서버 바로 앞에서 프로토콜별 패턴을 찾아내 패킷 하나하나를 폐기합니다.
두 가지 특성이 결정적입니다. 이 방어는 상시 동작하므로 공격에 반응해서 비로소 시작될 필요가 없습니다. 그래서 초반에 서버가 사라지는 몇 분이 존재하지 않습니다. 어차피 몇 시간밖에 되지 않는 레이드 시간에는 바로 이 점이 중요합니다. 그리고 null-routing을 쓰지 않습니다. 여러분의 IP 주소는 네트워크에 그대로 남고, 폐기되는 것은 악성 패킷뿐입니다. IP 주소를 네트워크에서 빼 버리면 여러분에게는 공격이 성공한 것과 같은 결과가 됩니다. 어떤 게임과 프로토콜이 포함되는지는 실시간 게임 서버 DDoS 방어에 정리되어 있습니다.
계속 공격받는 서버를 위한 Advanced DDoS Protection
어떤 서버는 어쩌다 한두 번이 아니라, 표적이 되어 몇 주에 걸쳐, 대개 늘 같은 시각에 공격받습니다. 이런 경우를 위해 Advanced DDoS Protection이 월 50.00 EUR부터, PrePaid 방식으로, 최소 이용 기간과 설치비 없이 제공됩니다. 차이는 용량이 더 커지는 데 있지 않고 통제권에 있습니다.
- 전용 방어 IP: 프랑크푸르트 코어에서 발급되며, 서버는 자체 네트워크에서 이 IP로 전환됩니다. 여러분 쪽에서 손볼 것은 없습니다.
- 포트와 프로토콜별로 직접 관리하는 방어 규칙: 고객 포털에서 7777 UDP, 7778 UDP, 27015 UDP에 각각 무엇을 허용할지 따로 설정할 수 있습니다. 서버 자체에는, 특히 Windows에서는 바로 이 분리가 없습니다.
- 변경은 실시간으로 반영: 다음 날 아침까지 기다리지 않고 공격이 진행되는 중에도 값을 조정할 수 있습니다.
- 게임에 맞춘 방어 프로필: 임의의 TCP 또는 UDP 포트에서 개조된 애플리케이션과 자체 애플리케이션도 같은 방식으로 다룹니다.
두 단계 비교
| 항목 | 포함된 DDoS 상시 방어 | Advanced DDoS Protection |
|---|---|---|
| 요금 | 모든 서버 상품에 추가 요금 없이 포함 | 월 50.00 EUR부터, PrePaid |
| 필터링 용량 | 17 Tbps 글로벌 스크러빙과 프랑크푸르트암마인의 3.2 Tbps Arbor 실시간 필터링 | 동일한 2단계 필터링 |
| IP 주소 | 서버의 IP 주소 | 추가로 받는 전용 방어 IP |
| 규칙 세트 | 자동 프로필, 설정 불필요 | 고객 포털에서 포트와 프로토콜별 자체 규칙 |
| 조회 포트 27015 | 자동으로 함께 필터링 | 게임 포트와 분리된 자체 속도 제한 |
| 변경 | 자동으로 함께 적용 | 실시간 반영, 공격 중에도 가능 |
| null-routing | 없음 | 없음 |
| 이용 기간 | 서버 상품에 연동 | PrePaid, 최소 이용 기간 없음, 해지 통보 기간 없음, 설치비 없음 |
대부분의 Conan Exiles 서버에는 깔끔한 설정과 함께 포함된 상시 방어면 충분합니다. Advanced DDoS Protection은 누군가 이 일을 개인적으로 받아들였을 때의 답입니다. 서버를 현재 다른 곳에서 운영하면서 거기서 정기적으로 네트워크에서 빠진다면, 가장 확실한 해결은 이전입니다. 필터링은 서버가 놓여 있는 네트워크에 있어야 합니다.
자주 나오는 실수와 해결 방법
“ServerSettings.ini에 넣은 변경이 재시작 뒤에 사라졌습니다”: 편집할 때 서버가 아직 돌아가고 있었습니다. Conan Exiles는 설정을 메모리에 들고 있다가 종료할 때 파일에 다시 써 넣으므로 여러분의 변경이 덮어써집니다. 서버 종료, 대기, 편집, 시작 순서로 하세요. 그리고 Saved\Config\WindowsServer\ 아래의 파일을 편집하고 그 옆의 원본 템플릿은 건드리지 마세요. 그러지 않으면 다음 게임 업데이트가 전부 덮어씁니다.
“포트를 바꿨는데 이제 서버가 목록에 나오지 않습니다”: 조회 포트가 함께 옮겨지지 않았습니다. 게임 포트와 조회 포트는 서로 다른 두 값이고, 게임 포트 더하기 1의 핑거도 비어 있고 허용되어 있어야 합니다. Engine.ini의 [URL] Port와 PeerPort를 ServerQueryPort와, 그리고 여러분의 방화벽 규칙과 맞춰 확인하세요.
“IP 주소를 바꿨는데 두 시간 뒤에 다시 오프라인이 되었습니다”: 공격자는 새 주소를 옛 주소와 같은 출처에서 얻었습니다. 보통 서버 목록 항목, 상태를 표시하는 Discord 봇, 또는 오래된 DNS 항목입니다. 주소 변경은 시간을 벌어 주는 것이고 해결책이 아닙니다.
“RCON 로그에 실패한 로그인이 수백 건 쌓여 있습니다”: 25575 TCP를 향한 로그인 플러드이고, 회선이 아니라 게임 로직을 때립니다. RconMaxKarma가 이를 제동하지만, 실제로 끝내는 방법은 포트를 본인 주소로 제한하거나 RconEnabled=0으로 RCON을 끄는 것입니다.
“몇 분마다 랙 스파이크가 생기는데 서버가 완전히 오프라인이 된 적은 없습니다”: 맥동하는 플러드의 전형적인 모습입니다. 몇 초짜리 파동만으로도 패킷을 폐기하게 만들지만, 경보를 울릴 어떤 임계값에도 미치지 않습니다. 그러므로 5분 평균값이 아니라 초 단위로 측정하세요. 그러지 않으면 여러분의 분석에는 평범한 평균만 나오는데 플레이어는 몇 분마다 전투에서 튕겨 나갑니다.
“플레이어 전부가 버벅이는데 네트워크 카운터는 평범합니다”: 그것은 DDoS 공격이 아닙니다. Get-NetAdapterStatistics 또는 sar -n DEV 1 10이 정상 범위에 있다면 원인은 소프트웨어에 있습니다. 먼저 모드 목록을 확인하고, 그다음 서버 버전을 모드 버전과 맞춰 보세요.
“기존 업체가 제 IP 주소를 차단했습니다”: 그것이 null-routing입니다. 업체는 그렇게 자기 네트워크를 지키지만, 여러분에게 남는 결과는 공격이 성공한 것과 똑같고, 보통 그 뒤로 몇 시간 더 이어집니다. 확실하지 않으면 필터링을 하는지 null-routing을 하는지 물어보세요. 그 답이 어떤 하드웨어 사양보다 여러분의 가용성을 더 크게 좌우합니다.
“캡처에 이상한 것이 보이지 않습니다”: 트래픽이 이미 앞단 네트워크에서 걸러지고 있으면 서버에는 아무것도 도착하지 않는 것이 당연합니다. 필터링이 작동하고 있을 때의 정상적인 모습입니다. 반대로 회선이 포화되면 측정에 쓰려던 원격 관리 연결조차 닿지 않을 수 있습니다. 그럴 때는 게스트 시스템의 네트워크와 무관하게 동작하는 고객 포털의 VNC 콘솔을 이용하세요.
핵심 요약
- Conan Exiles 서버는 외부로 정확히 세 개의 UDP 포트가 필요합니다. 게임 트래픽용 7777, 핑거용 7778, 상태 조회용 27015입니다. TCP 7777은 Epic 클라이언트로의 모드 전송에만, TCP 25575는 RCON이 켜져 있을 때만 필요합니다.
- 핑거는 게임 포트 더하기 1로 고정됩니다. 그래서 한 머신의 여러 인스턴스에는 2씩 건너뛰어 포트를 배정합니다.
- RCON은
RconEnabled=0으로 출고 상태에서 꺼져 있고, 필요하지 않은 한 꺼진 채로 두어야 합니다. 비밀번호는 암호화되지 않은 채 회선으로 흐릅니다. - 포트 27015는 닫지 말고 제한합니다. 닫으면 서버가 서버 목록에서 사라지고, 제한이 없으면 표적이면서 동시에 반사체가 됩니다.
- Windows 방화벽은 포트를 열고 닫고 주소로 제한할 수 있지만, 출발지 주소별 속도는 제한할 수 없습니다. 이 작업은 서버 앞단 네트워크에 속합니다.
- 1 Gbit/s에서는 초당 125 메가바이트에 회선이 꽉 차고, 패킷 크기가 64 바이트라면 초당 약 149만 개에 해당합니다. 그 위로는 어떤 로컬 규칙도 도움이 되지 않습니다.
- KernelHost에서는 글로벌 스크러빙 네트워크의 17 Tbps 방어 용량과 프랑크푸르트암마인의 3.2 Tbps Arbor 실시간 필터링이 추가 요금 없이, null-routing 없이 상시 함께 걸러 냅니다.
서버가 이미 KernelHost에 있다면 필터링은 여러분이 아무것도 하지 않아도 동작하고 있습니다. 그래도 이상한 점이 보이면 날짜와 시각, 그리고 측정값을 담아 지원 티켓을 열어 주세요. 해당 IP 주소의 필터 규칙을 다시 맞춰 드립니다. 공격이 진행 중일 때는 WhatsApp 긴급 채팅 +43 650 8209883으로도 연락하실 수 있습니다.
자주 묻는 질문
Conan Exiles 서버가 레이드 시간 도중에 오프라인이 되었습니다. 무엇을 먼저 확인해야 하나요?
Conan Exiles 서버에 실제로 필요한 포트는 무엇인가요?
Conan Exiles의 포트 7778은 무엇에 쓰이나요?
조회 포트 27015를 그냥 닫아도 되나요?
포트 25575의 RCON은 어떻게 보호하나요?
Conan Exiles의 PvP 서버가 특히 자주 공격받는 이유는 무엇인가요?
서버의 방화벽이 DDoS 공격에 도움이 되나요?
어느 규모부터 Conan Exiles 서버가 혼자 버티지 못하나요?
KernelHost의 Conan Exiles 서버는 공격 중에 오프라인이 되나요?
KernelHost의 DDoS 방어에 추가 요금이 드나요?
Advanced DDoS Protection이 추가로 필요한 때는 언제인가요?
2026 KernelHost GmbH. 모든 권리를 보유합니다. 본 가이드는 저작권법의 보호를 받습니다. 전체든 일부든, 또는 수정된 형태이든 저희의 서면 동의 없이 다른 웹사이트에 게시할 수 없습니다. 출처를 밝히고 링크를 덧붙인 인용은 언제든지 환영합니다.

