文章广告位
入驻说明

文章最后更新时间:2024-03-28 14:42:05

使用VPS的GRE隧道过滤DDoS

什么是GRE隧道?

类似于代理,GRE隧道使您可以将来自VPS的流量(包括DDoS过滤)传递到另一个远程目标。GRE隧道允许所有流量通过,而不仅仅是HTTP。借助GRE隧道,您可以提供服务,并从任何类型的服务器(音频,FTP,SSH,SCP,视频等)传递任何类型的内容。

可以使用GRE隧道做什么?

当您想使用我们的DDoS过滤服务来保护太大的服务(例如游戏服务器,Java应用程序,大型数据库驱动的应用程序等)时,GRE隧道非常方便。没有对目标服务器的root访问权,或者正在运行大型Windows部署?查看我们将流量重定向牵引到您的远程服务器的替代方法。
注意:如果您正在隧道连接到OVH服务器,则您的内核很可能没有GRE支持。您将需要使用IPIP隧道。

支持的操作系统

可以使用Windows创建和转发GRE隧道

在本文档中,我们仅介绍Linux的GRE隧道配置。

本指南在KVM或者OpenVZ的服务器上都可以起作用

前提

  • BuyVM VPS上安装的iptables(大多数情况下已包括在内)
  • iproute2(几乎所有最新的Linux发行版中都包含)
  • 具有GRE支持的内核(Linux默认包含该组件-ip_gre内核模块)
  • 您需要转发到目的地的端口列表

隧道设置

首先,我们需要建立隧道。

在BuyVM VPS上,请执行以下命令:

 echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p iptunnel add gre1 mode gre local YOUR_UNFILTERED_IP remote DESTINATION_SERVER_IP ttl 255 ip addr add 192.168.168.1/30 dev gre1 ip link set gre1 up

在要保护的远程服务器上,运行以下命令:

 iptunnel add gre1 mode gre local DESTINATION_SERVER_IP remote YOUR_UNFILTERED_IP ttl 255 ip addr add 192.168.168.2/30 dev gre1 ip link set gre1 up

您将始终希望使用所有GRE隧道的未过滤 IP地址来形成GRE,以确保您不会遇到任何类型的MTU问题或触发DDOS保护。

请注意每个更改的第一行,以标记要在本地和远程使用的IP。第二行记录每个端点。在/ 30中,可以使用2个IP:.1和.2。

使用Ping测试您的新GRE隧道

在VPS上,您现在应该可以ping了192.168.168.2

为了完整起见,请192.168.168.1从目标服务器测试ping 。

设置源路由表

需要源路由条目,以确保通过GRE隧道传入的数据被发回GRE隧道。

请在目标服务器上执行以下命令。

echo '100 BUYVM' >> /etc/iproute2/rt_tables ip rule add from 192.168.168.0/30 table BUYVM ip route add default via 192.168.168.1 table BUYVM

请注意,echo命令只需要运行一次。该条目将保存到/ etc / iproute2 / rt_tables中,直到您手动将其删除。

初始NAT条目以通过GRE隧道移动数据

NAT用于通过GRE将数据传递到另一端。

虽然可以使用已购买的/ 29分配的基于KVM的VPS,但本指南不涵盖此内容。

在VPS上,运行以下命令:

 iptables -t nat -A POSTROUTING -s 192.168.168.0/30 ! -o gre+ -j SNAT --to-source 源ip

测试出站连接

在目标服务器上,您可以运行以下命令之一,以查看隧道是否正确传递了流量:

 curl http://www.cpanel.net/showip.cgi --interface 192.168.168.2
wget http://www.cpanel.net/showip.cgi --bind-address = 192.168.168.2 -q -O-

IP应该是您的防御节点的IP。

通过GRE隧道转发端口

为了使事情变得容易,我们将所有端口转发到后端服务器。

在VPS上运行以下命令:

iptables -t nat -A PREROUTING -d YOUR_FILTERED_IP -j DNAT --to-destination 192.168.168.2 
iptables -A FORWARD -d 192.168.168.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

如果您想更具体一点,可以添加:

-p tcp --dport 25565

例如,如果您只是想保护Minecraft服务器。

第一条规则设置实际的端口转发,第二条规则确保连接获得NAT,并正确匹配。

在这一点上,您应该能够YOUR_FILTERED_IP使用您的应用程序连接到目标端口,并通过GRE隧道传递而不会出现问题。

重新启动后重新启动GRE隧道

可以/etc/rc.local使用自己喜欢的编辑器进行编辑(甚至使用WINSCP),并将刚运行的所有命令exit 0放在底部。

选择发行版(如Debian)可能/etc/network/interfaces在启动时加入了GRE隧道,但这超出了本指南的范围。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
Linux教程技术教程

Linux下使用tcpdump监听DNS查询

2024-3-28 14:40:37

技术教程

Centos更换阿里YUM源

2024-3-29 20:27:20

0 条回复 A文章作者 M管理员
夸夸
夸夸
还有吗!没看够!
    暂无讨论,说说你的看法吧
个人中心
购物清单
优惠代劵
今日签到
有新私信 私信列表
快速搜索
关注我们
  • 扫码打开当前页

你已经到达了世界的尽头

  • 3350

    文章数目

  • 197

    注册用户

  • 1742

    总评论数

  • 251

    建站天数

  • 40027

    总访问量

  • 波浪
  • 波浪
  • 波浪
  • 波浪