Большая просьба помочь разобраться и настроить Линух шлюзы.
Интересует конкретно настройки iptables при использовании openVPN. К сожалению не до конца понимаю сам принцип - как пакеты проходят через виртуальный интерфейс.
Да и в остальных iptables настройках я вовсе не уверен.Необходимо соеденить две сети в разных частях города. Здесь как бы минимальные настройки - лишь бы все корректно работало - остальное я уже на рабочей системе буду блочить/проверять.
Имеется:
Debian+Squid+OpenVPN
eth0 (сетевой интерфейс) 190.40.20.160 (/24)
eth1 (локальная сеть) 20.0.0.1 (/24)
tun0 (тунель для OpenVPN) 192.168.0.1
-----------------------------------------------------------------
192.168.0.2 -конец VPN на другом конце
190.40.20.161 сетевой вход на другом шлюзе
20.0.1.0/24 локальная сеть на другом конце
Мои предпологаемые настройки.
Сброс:
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
Вспомогательные цепочки:
iptables -N eth0-eth1
iptables -N eth0-tun0
iptables -N eth1-eth0
iptables -N eth1-tun0
iptables -N tun0-eth0
iptables -N tun0-eth1iptables -N eth0-in
iptables -N eth1-in
iptables -N tun0-in
iptables -N eth0-out
iptables -N eth1-out
iptables -N tun0-out
Перенаправление в соотвествующие цепочки:
iptables -A INPUT -i eth0 -j eth0-in
iptalbes -A INPUT -i eth1 -j eth1-in
iptalbes -A INPUT -i tun0 -j tun0-iniptalbes -A OUTPUT -o eth0 -j eth0-out
iptables -A OUTPUT -o eth1 -j eht1-out
iptables -A OUTPUT -o tun0 -j tun0-out
iptables -A FORWARD -i eth0 -o eth1 -j eth0-eth1
iptables -A FORWARD -i eth1 -o eth0 -j eth1-eth0
iptables -A FORWARD -i eth0 -o tun0 -j eth0-tun0
iptables -A FORWARD -i eht1 -o tun0 -j eth1-tun0
iptables -A FORWARD -i tun0 -o eth0 -j tun0-eth0
iptables -A FORWARD -i tun0 -o eth1 -j tun0-eth1
lo интерфейс:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT
Правила для интерент интерфейса eth0:
iptables -A eth0-in -m state RELATED,ESTABLISHED -j ACCEPT
iptables -A eth0-in -j DROPiptables -A eth0-out –j ACCEPT
iptables -A eth0-out -j DROP
iptables -A eth0-eth1 -m --state RELATED,ESTABLISHED -j ACCEPT
iptables -A eth0-eth1 -j DROP
iptables -A eth0-tun0 -j DROP
Правила для локального интерфейса eth1:
iptables -A eth1-in -p tcp –m multiport --dport 22,67,68,3128 -j ACCEPT
iptables -A eth1-in -j DROPiptables -A eth1-out -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A eth1-out -j DROP
iptables -A eth1-eth0 -j ACCEPT
iptables -A eth1-tun0 -j ACCEPT
Правила для VPN интерфейса tun0:
iptables -A tun0-in -j ACCEPT
iptables -A tun0-out -j ACCEPTiptables -A tun0-eth0 -j DROP
iptables -A tun0-eth1 -j ACCEPT
Правила Postrouting (совершенно не уверен в правильности):
iptables -t nat -A POSTROUTING -s 20.0.0.0/24 -o tun0 -j SNAT -d 20.0.1.0/24 --to-source 192.168.0.2
iptables -t nat -A POSTROUTING -s 20.0.0.0/24 -o eth0 -j SNAT --to-source 190.40.20.160
Правила Prerouting для Squid:
iptables -t nat -A PREROUTING -s 10.0.0.0/24 -i eth0 -p -m muliport 80,8080 -j REDIRECT --to-ports 3128
Правильно ли я понимаю, что из тунеля пакеты НЕ надо перенаправлять на внешний интернет интерфес (eth0)?
Пожалуйста укажите на явные ошибки! Более всего интересуют команды с tun0.