В течение прошлой недели я пытался защитить сервер от DoS-атак путем использования туннеля GRE с VPS на выделенную машину без большого успеха.
Визуальный:
User --> VPS --> Dedicated Server
Я следовал нескольким руководствам BUYVM и Minecraft Защита DDOS и изменил его по мере необходимости.
ip_gre
ip_nat_pptp
ip_conntrack_pptp
Дополнительно перенаправление портов ipv4 включено на обеих машинах.
ip tunnel add veridian mode gre remote VPS_EXTERN_IP local DEDICATED_EXTERN_IP ttl 255
ip link set veridian up
ip addr add 10.10.10.1/24 dev veridian
Это производит интерфейс:
veridian Link encap:UNSPEC HWaddr 3F-8D-F2-FA-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.10.10.1 P-t-P:10.10.10.1 Mask:255.255.255.0
inet6 addr: fe80::200:5efe:3f8d:f2fa/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:4016 errors:0 dropped:0 overruns:0 frame:0
TX packets:3970 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:338404 (338.4 KB) TX bytes:359357 (359.3 KB)
ip tunnel add gre1 mode gre remote DEDICATED_EXTERN_IP local VPS_EXTERN_IP ttl 255
ip link set gre1 up
ip addr add 10.10.10.2/24 dev gre1
Это производит интерфейс:
gre1 Link encap:UNSPEC HWaddr 68-83-98-C8-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.10.10.2 P-t-P:10.10.10.2 Mask:255.255.255.0
inet6 addr: fe80::200:5efe:6883:98c8/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:3743 errors:0 dropped:0 overruns:0 frame:0
TX packets:3811 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:314188 (314.1 KB) TX bytes:335587 (335.5 KB)
echo '100 VERIDIAN' >> /etc/iproute2/rt_tables
ip rule add from 10.10.10.0/24 table VERIDIAN
ip route add default via 10.10.10.2 table VERIDIAN
Отсюда я могу проверить с помощью ping-запросов Выделенный сервер от VPS успешно
ping 10.10.10.1
и наоборот
ping 10.10.10.2
Дополнительно, когда я устанавливаю запись NAT на VPS
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source VPS_EXTERN_IP
Я могу успешно получить внешний IP VPS от Выделенного сервера путем выполнения:
curl http://www.cpanel.net/showip.cgi --interface 10.10.10.1
На VPS я теперь работаю:
iptables -t nat -A PREROUTING -p tcp -d VPS_EXTERN_IP --dport 25565 -j DNAT --to-destination 10.10.10.1:25565
iptables -A FORWARD -p tcp -d 10.10.10.1 --dport 25565 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Я теперь пытаюсь соединиться с играющим сервером через внешний IP-адрес VPS без любого успеха.
Я боролся с этим больше недели, любая справка очень ценилась бы.
Все выше корректно.
Немного больше отладки и я нашли, что демон обертки (Мультиремесло) для игровых блоков сервера localhost соединения, когда внешний IP установлен для игрового экземпляра.
Решение состоит в том, чтобы установить IP на 0.0.0.0, и перенаправление портов работает отлично.
Поскольку я не вижу этого в показанной вами документации, я предполагаю, что вы забыли включить переадресацию IP.
Выполните следующую команду, чтобы убедиться, что это действительно так. :
sysctl net.ipv4.ip_forward
Если переадресация IP действительно отключена, вы должны увидеть:
net.ipv4.ip_forward = 0
Если это ваша проблема, запустите:
sysctl -w net.ipv4.ip_forward=1
Возможно, ваша проблема связана с тем, что порты не открыты / брандмауэры блокируют порты.
Вы можете легко проверить это с вашего VPS на выделенную машину с помощью nmap:
nmap -A 10.10.10.2/24 -p 25565
И с вашей клиентской машины на вашу внешне доступную машину таким же образом, но замените 10.10.10.2
на внешний адрес вашего VPS.