高阶腐竹技术教程 使用HAProxy创建节点保护母机服务器
本教程仅适合TCP(Java版服务器)用处:如果你的母鸡没有任何防御,并且正在遭受L4攻击 本教程将帮到你很多
如果你的服务器本身没有任何保护,并且可能被攻击关机,此教程会帮助你很多
适合Bungeecord 任何子版本/Velocity
节点仅适用Linux,跑Minecraft的服务器可以为Windows/Linux
1. 节点设置
2. Bungeecord/Velocity设置
3. 防火墙保护(仅节点IP可访问端口)
节点设置
1. SSH登陆进入服务器并且执行安装HAProxy
Centos
sudo yum -y install haproxyUbuntu/Debian等等
apt-get install haproxy
2. 修改HAProxy配置并开启Proxy-Protocol(用于Bungeecord/Velocity获取玩家IP)
vim /etc/haproxy/haproxy.cfg翻到最下面并注释下面一切(或者删掉)
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
#frontendmain *:5000
# acl url_static path_beg -i /static /images /javascript /stylesheets
# acl url_static path_end -i .jpg .gif .png .css .js
#
# use_backend static if url_static
# default_backend app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
# balance roundrobin
# server static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
# balance roundrobin
# serverapp1 127.0.0.1:5001 check
# serverapp2 127.0.0.1:5002 check
# serverapp3 127.0.0.1:5003 check
# serverapp4 127.0.0.1:5004 check注释完成后在最后一行加上
listen minecraft
bind *:25565
mode tcp
timeout connect 10s
timeout client 1m
timeout server 1m
balance leastconn
option tcp-check
server minecraft {服务器IP地址:端口号(不包含{})} check-send-proxy check send-proxy-v2范例:
listen minecraft
bind *:25565
mode tcp
timeout connect 10s
timeout client 1m
timeout server 1m
balance leastconn
option tcp-check
server minecraft 223.233.233.322:25565 check-send-proxy check send-proxy-v2修改完成配置文件保存并重启HAProxy
:wq
service haproxy restart检查HAProxy是否开起来
service haproxy status
3. 修改节点防火墙开启监听端口
注意:这里范例是25565端口,请按照你设置的HAProxy监听端口设置,具体在配置文件里是bind *:25565这一行
这里用firewalld做例子
#打开firewalld配置文件在最下面</zone>之前加一行
<port protocol="tcp" port="25565"/>退出文件并重启firewalld后查看firewalld是否正常运行
:wq
service firewalld restart
service firewalld status
Bungeecord/Velocity设置
注意:修改为true后Bungeecord只接受来自HAProxy的请求,通过IP直接访问服务器会出现错误
修改配置:
BC
进入Bungeecord运行文件夹并打开Config.yml
找到proxy_protocol并修改为true
Velocity
进入Velocity运行文件夹并打开velocity.toml
找到haproxy-protocol并修改为true
保护IP:
这里以Linux为例
#打开firewalld配置文件
vim /etc/firewalld/zones/trusted.xml在</zone>前面添加
<source address="你的节点IP"/>可以添加多行如果你有多个节点
添加完毕重启防火墙即可
service firewalld restart
这样就完事儿了! 你的节点就创建成功了,所有攻击流量都会打到节点机器,如果节点出问题母鸡不会断网/关机等等。
如果节点有问题直接DNS把问题节点去掉即可 并且除了节点机器,其他机器都无法访问到母鸡服务器,最大程度上的保证了母鸡的安全
页: [1]