Для тех кто использует SoftEther вместе с другими сервисами на сервере, скорее всего стал вопрос, как же ограничить доступ к тому или иному порту, оставив только нужные. В итоге получим открытыми только нужные порты, указав виртуальный интерфейс SoftEther — tap_soft в разрешающих правилах, не нужно угадывать порты с которыми работает этот сервис + немного защиты от syn food атак.
Купить виртуалку под VPN можно тут
Для начала необходимо очистить все правила фаервола и придать ему стандартный вид. Ну и чтобы не забанить себя во время очистки, сделаем небольшой скриптик с командами ниже:
nano /home/iptablses_0.sh
Содержимое:
#!/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"
Даём скрипту права и выполняем его
chmod 755 /home/iptablses_0.sh /home/iptablses_0.sh
После чего добавляем правила
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
И сохраняем правила:
service iptables save
Смотрим что мы натворили
iptables -n -L -v --line-numbers