• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
LoKaTB

Hướng dẫn Một số cách bảo vệ server Minecraft self-host đơn giản.

LoKaTB

THÀNH VIÊN
Tham gia
14/11/2019
Bài viết
62
Lưu ý

Mình thực sự không có nhiều kiến thức và biết cách này nổi tiếng và được nhiều server sử dụng nhưng nhiều bạn vẫn chưa biết cách sử dụng nên mình tạo ra cái repo nhỏ này để giúp các bạn dễ dàng hơn trong việc bảo vệ server Minecraft của bạn khi bạn tự host tại nhà. Nếu có sai sót hoặc thấy vô dụng có thể bỏ qua hoặc góp ý giúp mình nhé!.

0. Kiến thức nên có

- Cách lựa chọn server software, optimizations, cấu hình,...
1. Dịch vụ DynamicDNS
- Do đa số các bạn self-host thường sẽ dùng mạng nhà với những gói cước bình thường và không thuộc dạng doanh nghiệp nên sẽ không được trang bị IP Tĩnh mà sẽ dùng IP Động. Chính vì thế mà những dịch vụ DynamicDNS sẽ giúp bạn giải quyết một phần trong vấn đề này bằng cách cập nhật ip của bạn sau khi bị isp đổi ip lên một subdomain của dịch vụ đó.
- Có rất nhiều các dịch vụ DynamicDNS miễn phí nhưng ở đây mình sẽ sử dụng DuckDNS vì nó dễ dùng và không cần phải renew lại nhiều lần.
- Hướng dẫn tạo và setup một server Minecraft với DuckDNS (Tiếng Anh)

2. Dùng Minecraft Java Proxy Bungeecord (fork), Velocity
- Chắc hẳn có nhiều bạn nghe đến Bungeecord đúng chứ? Nó rất hữu dụng, ngoài việc nối nhiều server nhỏ lại với nhau thì nó còn có tác dụng như một đường hầm tiếp nhận packets của người chơi và truyền lại cho server con, giúp các bạn bảo vệ được địa chỉ ip của server con nằm đằng sau đó.
- Chú ý! Không nên dùng Bungeecord bình thường mà hãy sử dụng các bản forks của nó. IP server con bị leak vì default exceptions của Bungeecord thường, có thể chỉnh lại trong messages.properties. Đã được author FlameCord chỉnh lại.
- Lưu ý về config. Do sự thiếu hiểu biết hoặc lười tìm hiểu của nhiều server owners dùng Bungeecord/Velocity mà đã tự biến nó thành "cửa sau" cho các hackers dễ dàng xâm nhập vào những server con cực dễ dàng và thậm chí là tắt luôn Bungeecord, config mặc định sẽ cho phép người chơi thường dùng /server. Đa số các server sẽ không hook với các plugin Auth ở server con nên không cần login/register mà bạn cũng có thể dùng /server (tên server con) để chuyển thẳng qua server con (một số server fix bằng cách cài Authme ở mọi cụm nhưng theo mình là không nên)
- Chỉnh lại config bằng cách xoá permission
- Dùng plugin permission mananger dành cho Velocity/Bungeecord - LuckPerms. Để tắt /server trên Velocity, các bạn dùng lệnh /lp group default permission set velocity.command.server false List commands và permissions của Velocity
- Plugin hook Bungeecord với Authme & Plugin hook Velocity với Authme

3. Các bản fork của Bungeecord có built-in Antibot tốt cho self-host
- AmongCord (Free, fork của FlameCord) có patch của Vtroxi giúp hỗ trợ cho DynamicDNS
- NullCordX (Paid) - Bản bungeecord fork có Antibot theo dạng Limbo Captcha giúp chặn được những loại "slowbot" hoặc "smartbot" mà mình đã nhờ author thêm patch trên để hỗ trợ cho DynamicDNS
- Velocity - Tuy không phải là Bungeecord Fork nhưng hỗ trợ rất tốt cho DynamicDNS mà không cần phải lằng nhằng, lợi thế của Velocity là rất nhẹ, nhẹ hơn Bungeecord rất nhiều nên mình đã lựa chọn sử dụng và đến giờ vẫn rất ổn định. Plugin Antibot LimboFilter cho Velocity

4. Chống "nhảy port" hoặc join thẳng server con mà không cần thông qua bungeecord hay lobby
- Là một dạng "hack op" mà các hacker thường sử dụng và tấn công lên những server có bảo mật yếu.
- Để chống cách tấn công này thì ta có thể dùng các cách để ngăn chặn người chơi xâm nhập qua server con mà không thông qua Bungeecord/Velocity bằng những plugin như BungeeGuard. Hướng dẫn sử dụng BungeeGuard đúng cách (Tiếng Anh)
- Velocity thì đã có sẵn phần secret, việc của các bạn là chuyển player-info-forwarding-mode = "none" sang "bungeeguard" và đưa token bungeeguard vào phần "forwarding-secret"
- Hữu dụng nhất là sử dụng software firewall (chặn được các tool scan port)

5. Lựa chọn máy chủ để chống DDoS
- Đây là phần quan trọng nhất trong việc bảo vệ tấn công DDoS nên việc lựa chọn các loại vps có chống DDoS khôn ngoan là việc quan trọng.
- Nếu các bạn muốn giá rẻ và được mang danh là "Cơ sở hạ tầng chống DDoS mạnh nhất thế giới" thì có thể chọn OVH - Đã bị bypass bởi QuanThiccTech bằng method cực đơn giản
- Ở đây thì mình sẽ lựa chọn các shared hosting để chạy Bungeecord/Velocity bởi vì những hosting uy tín sẽ được thiết kế ra để dùng chung rất nhiều người và khi nhiều người sử dụng sẽ đồng nghĩa với việc sẽ có nhiều thành phần đủ kiểu đi tấn công những con server trên cùng 1 node của các hosting đó nên họ cũng sẽ có những cách để chống lại và bảo vệ người dùng, đảm bảo sự ổn định cho dịch vụ. Những hosting có node ở Asia giá ổn và chống DDoS ngon gồm: Witherhosting, Bloom.host - Có bảo vệ của Cloudflare Magic Transit (Sẽ có node Asia vào cuối tháng 6, cảm ơn Typical @SimpMC đã thông báo), Apexhosting, và còn nhiều hosting khác nhưng mình chỉ đề cập đến những hosting nổi tiếng.

6. Iptables rules giúp hạn chế/ratelimit nhiều bot cùng kết nối cùng 1 lúc trên vps (Linux)
- Việc chặn QUÁ nhiều bot trên những vps cấu hình thấp là điều không thể cho dù bạn có Antibot mạnh như thế nào
- List rule iptables đã được kiểm qua và dùng ổn định - Yêu cầu quyền root và đã cài đặt iptables

Như vậy thì bài viết của mình đến đây đã kết thúc, xin cảm ơn các bạn đã đọc. Nếu có sai xót thì mong các bạn để lại bình luận để mình có thể điều chỉnh để có thể giúp cộng đồng bảo vệ được server Minecraft hiệu quả hơn.
- mình viết bài này lúc 3h sáng nên có hơi ngáo đá tí, mong các bạn thông cảm.

Github
 
Aurora-AB tệ, như plugin AntiVPN nhưng tệ hơn
 
Tại sao lại dùng plugin chặn Log4j vào năm 2022
why OpGuard & AntiOp
 
Nhiều plugin AntiVPN nhưng lại dùng cùng 1 api của proxycheck, tôi suggest thêm KauriVPN api của author luôn
source: Github
 
Log4j thì trên 1.18 đã fix nhưng dưới thì sao
Có thể những plugin đã AntiOP, Opguard đã bypass nhưng là góp ý
Góp ý nhưng nó cũng phải hữu dụng thôi bạn chứ mà vứt vào hết thì cũng hơi dư thừa
 
Similar content Most view Xem thêm
Back
Top Bottom