Для тех кто использует SoftEther вместе с другими сервисами на сервере, скорее всего стал вопрос, как же ограничить доступ к тому или иному порту, оставив только нужные. В итоге получим открытыми только нужные порты, указав виртуальный интерфейс SoftEther — tap_soft в разрешающих правилах, не нужно угадывать порты с которыми работает этот сервис + немного защиты от syn food атак.
Купить виртуалку под VPN можно тут
Для начала необходимо очистить все правила фаервола и придать ему стандартный вид. Ну и чтобы не забанить себя во время очистки, сделаем небольшой скриптик с командами ниже:
[bash title=»код»]nano /home/iptablses_0.sh
[/bash]
Содержимое:
[bash title=»код»]#!/bin/sh
echo "Stopping firewall and allowing everyone…"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo "ok"[/bash]
Даём скрипту права и выполняем его
[bash title=»код»]chmod 755 /home/iptablses_0.sh
/home/iptablses_0.sh[/bash]
После чего добавляем правила
[bash title=»код»]iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state —state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT
iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 80 -j ACCEPT
iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 873 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT —to-source ip_сервера
iptables -A INPUT -p udp —dport 500 -j ACCEPT
iptables -A INPUT -p udp —dport 4500 -j ACCEPT
iptables -A INPUT -i tap_soft -j ACCEPT
iptables -A FORWARD -i tap_soft -j ACCEPT
iptables -N syn_flood
iptables -A INPUT -p tcp —syn -j syn_flood
iptables -A syn_flood -m limit —limit 500/s —limit-burst 2000 -j RETURN
iptables -A syn_flood -j DROP
iptables -A INPUT -p tcp —tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp —tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp —tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp —tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp —tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp —tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp —tcp-flags ACK,URG URG -j DROP
iptables -I INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP[/bash]
И сохраняем правила:
[bash title=»код»]service iptables save[/bash]
Смотрим что мы натворили
[bash title=»код»]iptables -n -L -v —line-numbers[/bash]