AWS로 DDOS 공격으로부터 Home Minecraft 서버 보호

0
534

마인 크래프트 로고.

IP 주소를 공개하지 않고 집에서 Minecraft 서버를 실행하고 싶으십니까? 당신은 할 수 있습니다! Amazon Web Services로 무료 프록시를 설정하기 만하면 서비스 거부 공격으로부터 서버를 보호 할 수 있습니다. 우리는 당신에게 방법을 보여줄 것입니다.

이 가이드는 Minecraft뿐만 아니라 모든 게임 서버에서 작동합니다. 특정 포트의 프록시 트래픽 만 있으면됩니다. Minecraft의 포트 25565를 게임 서버가 실행되는 포트로 변경하면됩니다.

이것은 어떻게 작동합니까?

Minecraft 서버를 호스팅하고 인터넷에 연결하려고한다고 가정하겠습니다. 그렇게하기가 어렵지 않습니다. 설치가 쉽고, 하나의 처리 스레드 만 사용하며, 엄청나게 개조 된 서버조차도 몇 명의 플레이어가 온라인 상태에서 2-3GB 이상의 RAM을 사용하지 않습니다. 다른 사람에게 비용을 지불하지 않고 오래된 랩톱이나 데스크탑 컴퓨터의 백그라운드에서 서버를 쉽게 실행할 수 있습니다.

그러나 사람들이 연결하려면 IP 주소를 제공해야합니다. 몇 가지 문제가 있습니다. 특히 라우터에 여전히 기본 관리자 비밀번호가있는 경우 심각한 보안 위험이 있습니다. 또한 분산 된 서비스 거부 (DDOS) 공격에 노출 될 수 있습니다.이 공격은 Minecraft 서버를 중지시킬뿐만 아니라 공격이 진정 될 때까지 인터넷을 차단할 수도 있습니다.

사람들이 라우터에 직접 연결할 수 있도록 할 필요는 없습니다. 대신 Amazon Web Services, Google Cloud Platform 또는 Microsoft Azure에서 소규모 Linux 박스를 임대 할 수 있습니다. 모두 무료 계층이 있습니다. 이 서버는 Minecraft 서버를 호스팅 할만큼 강력하지 않아도됩니다. 연결 만 전달하면됩니다. 이를 통해 자신 대신 프록시 서버의 IP 주소를 제공 할 수 있습니다.

누군가 서버에 연결하고 싶다고 말하면 AWS 프록시의 IP 주소를 Minecraft 클라이언트에 입력합니다. 패킷은 포트 25565 (Minecraft의 기본 포트)에서 프록시로 전송됩니다. 프록시는 포트 25565 트래픽을 일치시키고 홈 라우터로 전달하도록 구성되어 있습니다. 이러한 상황은 무대 뒤에서 발생합니다. 연결하는 사람조차 알 수 없습니다.

그런 다음 연결을 실제 PC로 더 전달하려면 홈 라우터를 포트 포워딩해야합니다. PC는 서버를 실행하고 클라이언트의 패킷에 응답합니다. 프록시로 다시 전달한 다음 프록시가 응답하는 프록시처럼 보이도록 패킷을 다시 씁니다. 클라이언트는 이것이 일어나고 있다는 것을 전혀 모르고 프록시가 서버를 실행하는 시스템이라고 생각합니다.

가정용 라우터가 컴퓨터를 보호하는 것과 같은 방식으로 서버 앞에 다른 라우터를 추가하는 것과 같습니다. 그러나이 새로운 라우터는 Amazon Web Services에서 실행되며 모든 AWS 서비스 (AWS Shield)에서 무료로 제공되는 전체 전송 계층 DDOS 완화 기능을 제공합니다. 공격이 탐지되면 서버를 방해하지 않고 자동으로 완화됩니다. 그 경우 그렇지 않다 어떤 이유로 든 중지하면 언제든지 인스턴스를 끄고 집과의 연결을 끊을 수 있습니다.

프록 싱을 처리하려면 sslh. 프로토콜 멀티플렉싱을위한 것입니다. 동일한 포트에서 SSH (일반적으로 포트 22)와 HTTPS (포트 443)를 실행하려면 문제가 발생합니다. sslh 이 문제를 해결하기 위해 앞에 앉아 포트를 원하는 응용 프로그램으로 리디렉션합니다. 그러나 라우터처럼 전송 계층 수준에서이를 수행합니다. 즉, Minecraft 트래픽을 일치시켜 홈 서버로 전달할 수 있습니다. sslh 기본적으로 투명하지 않으므로 홈 IP 주소를 숨기기 위해 패킷을 다시 씁니다. 이것은 누군가가 Wireshark와 같은 것을 스니핑하는 것을 불가능하게 만듭니다.

새 VPS 생성 및 연결

시작하려면 프록시 서버를 설정했습니다. Linux 경험이있는 경우이 방법을 사용하는 것이 훨씬 쉽지만 필요하지는 않습니다.

Amazon Web Services로 이동하여 계정을 만듭니다. 직불 카드 또는 신용 카드 정보를 제공해야하지만 이는 사람들이 중복 계정을 만들지 못하도록하기위한 것입니다. 생성중인 인스턴스에 대해서는 요금이 청구되지 않습니다. 프리 티어는 1 년 후에 만료되므로 완료 한 후에는 해제해야합니다. Google Cloud Platform에는 f1-micro 사용하려는 경우 항상 무료로 사용할 수 있습니다. 또한 Google은 1 년에 300 달러의 크레딧을 제공하며, 실제로 적절한 클라우드 서버를 운영하는 데 사용할 수 있습니다.

AWS는 대역폭을 약간 청구합니다. 1GB는 무료이지만 GB 당 0.09 달러의 세금이 부과됩니다. 실제로는이 문제를 해결하지는 않겠지 만 청구서에 20 %의 청구가 표시되는 경우이를 주시하십시오.

계정을 만든 후 “EC2″를 검색하십시오. 이것이 AWS의 가상 서버 플랫폼입니다. 새 계정에 EC2를 활성화하려면 AWS를 약간 기다려야 할 수도 있습니다.

AWS 가상 서버 플랫폼의 검색 창에

“인스턴스”탭에서“인스턴스 시작”을 선택하여 시작 마법사를 불러옵니다.

"인스턴스"를 클릭 한 다음 "인스턴스 시작"을 선택하십시오.

기본 “Amazon Linux 2 AMI”또는 “Ubuntu Server 18.04 LTS”를 OS로 선택할 수 있습니다. 다음을 클릭하면 인스턴스 유형을 선택하라는 메시지가 표시됩니다. 고르다 t2.micro프리 티어 인스턴스입니다. AWS의 프리 티어에서이 인스턴스를 연중 무휴로 실행할 수 있습니다.

"t2.micro"를 선택하십시오.

“검토 및 시작”을 선택하십시오. 다음 페이지에서“Launch”를 선택하면 아래 대화 상자가 나타납니다. “새 키 페어 만들기”를 클릭 한 다음 “키 페어 다운로드”를 클릭하십시오. 이것이 인스턴스에 대한 액세스 키이므로 잃어 버리지 않도록 보관하십시오. 문서 폴더에 보관하십시오. 다운로드 후 “인스턴스 시작”을 클릭하십시오.

  "새 키 페어 만들기"를 클릭 한 다음 "키 페어 다운로드"를 클릭하십시오. 다운로드 후 "인스턴스 시작"을 클릭하십시오.

인스턴스 페이지로 돌아갑니다. 서버의 주소 인 인스턴스의 IPv4 퍼블릭 IP를 찾으십시오. 원하는 경우 AWS Elastic IP (다시 부팅해도 변경되지 않음) 또는 dot.tk를 사용하여 무료 도메인 이름을 설정할 수 있습니다.이 페이지를 계속 방문하여 찾지 않으려면 주소.

인스턴스의 IPv4 퍼블릭 IP를 찾으십시오.

나중에 주소를 저장하십시오. 먼저 인스턴스 방화벽을 편집하여 포트 25565를 엽니 다. 보안 그룹 탭에서 인스턴스가 사용중인 그룹 (아마도 launch-wizard-1)을 선택한 다음 “편집”을 클릭하십시오.

"보안 그룹"탭을 클릭 한 다음 인스턴스에서 사용중인 그룹 (아마 "Launch-Wizard-1")을 선택하십시오.

새 사용자 지정 TCP 규칙을 추가하고 포트 범위를 25565로 설정하십시오. 소스는 “Anywhere”또는 0.0.0.0/0.

새 사용자 지정 TCP 규칙을 추가하고 포트 범위를 25565로 설정하십시오. 소스는 0.0.0.0/0 (또는 "Anywhere")으로 설정해야합니다.

변경 사항 및 방화벽 업데이트를 저장하십시오.

이제 프록시를 설정하기 위해 서버에 SSH로 연결할 것입니다. macOS / Linux를 사용하는 경우 터미널을 열 수 있습니다. Windows를 사용하는 경우 PuTTY와 같은 SSH 클라이언트를 사용하거나 Linux 용 Windows 하위 시스템을 설치해야합니다. 더 일관성이 있기 때문에 후자를 권장합니다.

가장 먼저해야 할 일은 cd 키 파일이있는 문서 폴더에 :

cd ~/Documents/

Linux 용 Windows 하위 시스템을 사용하는 경우 C 드라이브는 /mnt/c/, 문서 폴더로 내려 가야합니다.

cd /mnt/c/Users/username/Documents/

사용 -i 키 파일을 사용하여 연결하려는 SSH를 알리는 플래그입니다. 파일은 .pem 확장 프로그램을 포함 시키려면 다음을 포함해야합니다.

ssh -i keyfile.pem ec2-user@0.0.0.0

0.0.0.0”를 IP 주소와 함께 사용하십시오. AWS Linux가 아닌 Ubuntu 서버를 만든 경우 “ubuntu”사용자로 연결하십시오.

액세스 권한이 부여되어야하며 명령 프롬프트가 서버 프롬프트로 변경되는 것을 확인하십시오.

SSLH 구성

설치하고 싶다 sslh 패키지 관리자에서. AWS Linux의 경우 yum우분투의 경우 apt-get. AWS Linux에서 EPEL 리포지토리를 추가해야 할 수도 있습니다.

sudo yum install epel-release
sudo yum install sslh

설치가 완료되면 구성 파일을 엽니 다. nano:

nano /etc/default/sslh

변경 RUN= “yes”로 매개 변수 :

터미널 창에서 "RUN = yes"명령

결승 아래 DAEMON 줄에 다음을 입력하십시오.

DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid

your_ip_address”를 집 IP 주소와 함께 사용하십시오. IP를 모르면 “내 IP 주소는 무엇입니까?”를 검색하십시오. Google에서 — 그렇습니다.

이 구성은 sslh 프록시는 포트 25565의 모든 네트워크 장치에서 수신 대기합니다. Minecraft 클라이언트가 다른 것을 사용하거나 다른 게임을하는 경우이 포트를 다른 포트 번호로 바꾸십시오. 일반적으로 sslh서로 다른 프로토콜을 일치시키고 다른 위치로 라우팅합니다. 하지만 목적에 따라 가능한 모든 트래픽을 일치시키고 전달하기를 원합니다. your_ip_address:25565.

Control + X를 누른 다음 Y를 눌러 파일을 저장하십시오. 활성화하려면 다음을 입력하십시오 sslh:

sudo systemctl enable sslh
sudo systemctl start sslh

만약 systemctl 시스템에서 사용할 수없는 경우 service 대신 명령.

sslh 지금 실행 중이어야합니다. 가정용 라우터가 포트를 포워딩하고 25565 트래픽을 컴퓨터로 보내는 지 확인하십시오. 컴퓨터에 고정 IP 주소를 지정하면 변경되지 않습니다.

사람들이 서버에 액세스 할 수 있는지 확인하려면 온라인 상태 검사기에 프록시의 IP 주소를 입력하십시오. 프록시의 IP를 Minecraft 클라이언트에 입력하고 가입을 시도 할 수도 있습니다. 작동하지 않으면 인스턴스의 보안 그룹에서 포트가 열려 있는지 확인하십시오.