Помогите решить проблему с Iptables для доступа к VPN!Конфигурация моей сети такая: wlan0 и eth1 объединены в мост br0 (раздают интернет), eth0 - смотрит во внешнюю сеть.
Все вроде работало отлично, трафик пропускался отлично.
Но вчера нужно было с клиента соединиться с удаленным сервером по VPN.
Те правила, что написаны в первом посте этой темы:
/sbin/iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmt
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
не пропустили меня c клиента по VPN.
Взял скрипт из Wiki:#! /bin/sh
#
#######################
# Настройка интерфейсов
#######################
# Internet (Поменяйте на ваш интернет-интерфейс)
Inet_Interface="eth0"
# Lan (поменяйте на ваш интерфейс сетевого моста)
Lan_Interface="br0"
# Lo (локальный интефейс - петля)
Lo_Interface="lo"
# Описываем путь до iptables
IPT="/sbin/iptables"
# Очищаем текущие правила (если вдруг есть какие-то правила)
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Задаем политики по умолчанию
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
# Создаем цепочку для обработки неправильных пакетов.
# bad_packets
$IPT -N bad_packets
$IPT -A bad_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPT -A bad_packets -p tcp ! --syn -m state --state NEW \
-j LOG --log-prefix "New not syn:"
$IPT -A bad_packets -p tcp ! --syn -m state --state NEW -j DROP
# Создаем цепочку для обработки входящих (из интернета) tcp соединений.
# tcp_p
$IPT -N tcp_p
# Чтобы, например, разрешить подключаться к нашему шлюзу из интернета по ssh:
##ssh="22"
##ssh_ip_allowed="0/0"
##$IPT -A tcp_p -p tcp -s $ssh_ip_allowed --dport $ssh -j ACCEPT
$IPT -A tcp_p -p tcp -s 0/0 -j DROP
# Создаем цепочку для обработки входящих (из интернета) udp соединений.
# udp_p
$IPT -N udp_p
$IPT -A udp_p -p udp -s 0/0 -j DROP
# Создаем цепочку для обработки входящих (из интернета) icmp соединений.
# icmp_p
$IPT -N icmp_p
# Разрешаем "пинговать" наш шлюз из интернета:
$IPT -A icmp_p -p icmp -s 0/0 --icmp-type 8 -j ACCEPT
$IPT -A icmp_p -p icmp -s 0/0 --icmp-type 11 -j ACCEPT
$IPT -A icmp_p -p icmp -s 0/0 -j DROP
# Цепочка INPUT
$IPT -A INPUT -p tcp -j bad_packets
$IPT -A INPUT -p all -i $Lan_Interface -j ACCEPT
$IPT -A INPUT -p all -i $Lo_Interface -j ACCEPT
$IPT -A INPUT -p all -i $Inet_Interface -m state --state \
ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp -i $Inet_Interface -j tcp_p
$IPT -A INPUT -p udp -i $Inet_Interface -j udp_p
$IPT -A INPUT -p icmp -i $Inet_Interface -j icmp_p
# Цепочка FORWARD
$IPT -A FORWARD -p tcp -j bad_packets
$IPT -A FORWARD -p all -i $Lan_Interface -j ACCEPT
$IPT -A FORWARD -p all -i $Lo_Interface -j ACCEPT
$IPT -A FORWARD -p all -i $Inet_Interface -m state \
--state ESTABLISHED,RELATED -j ACCEPT
# Цепочка OUTPUT
$IPT -A OUTPUT -p tcp -j bad_packets
$IPT -A OUTPUT -p all -o $Inet_Interface -j ACCEPT
$IPT -A OUTPUT -p all -o $Lan_Interface -j ACCEPT
$IPT -A OUTPUT -p all -o $Lo_Interface -j ACCEPT
# Цепочка POSTROUTING (таблица nat)
$IPT -t nat -A POSTROUTING -o $Inet_Interface -j MASQUERADE
# Включаем перенаправление ipv4.
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Firewall started"
exit 0
Эти правила позволили трафик по VPN, но только если клиент на Linux и присоединен по кабелю к раздающей машине.
Хотелось бы возможеность пропуска клиента при подключении по wlan и не понятно почему если клиент с Виндой по тому же
кабелю не может войти в VPN.