Назад | Перейти на главную страницу

Использование iptables для создания VPN-роутера

Я пытаюсь установить VPN-соединение со сторонним VPN-сайтом, а затем перенаправить трафик с моих внутренних компьютеров (на данный момент ssh и ping) на VPN-сайт с помощью IPTables.

Стороннее <-> (tun0 / eth0) Linux VPN Box (eth1) <-> Windows7TestBox

Я работаю на CentOS 6.3 Linux и имею два сетевых подключения: eth0-> public eth1-> private. Я использую vpnc-0.5.3-4, который в настоящее время подключается к моему месту назначения.

Когда я подключаюсь, я могу пропинговать IP-адреса назначения, но это все, что я могу.

ping -I tun0 10.1.33.26 # success
ping -I eth0 10.1.33.26 # fail
ping -I eth1 10.1.33.26 # fail

У меня есть тестовый блок Windows 7 для частной сети, настроенный так, чтобы в качестве шлюза использовалась сеть eth1 (частная) моего VPN-сервера, и я могу нормально пинговать его. Мне нужны IPTables для отправки трафика Windows 7 через VPN-туннель.

В течение нескольких дней я пробовал множество различных конфигураций IPTables с этого и других сайтов, остальные примеры либо слишком просты, либо слишком сложны. Единственное, что делает этот сервер, - это подключается к VPN и перенаправляет весь трафик.

Так что здесь мы можем все «промыть» и начать с нуля. Это чистый лист.

#!/bin/bash

ipt="/sbin/iptables"

# Zero out all counters

$ipt -Z
$ipt -t nat -Z
$ipt -t mangle -Z

# Flush all active rules, delete all chains

$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -t nat -A POSTROUTING -o tun0 -j MASQUERADE
$ipt -A FORWARD -i eth1 -o eth0 -j ACCEPT
$ipt -A FORWARD -i eth0 -o eth1 -j ACCEPT
$ipt -A FORWARD -i eth0 -o tun0 -j ACCEPT
$ipt -A FORWARD -i tun0 -o eth0 -j ACCEPT

Опять же, я сделал много вариантов вышеупомянутых и многих других правил из других сообщений, но не смог продвинуться вперед. Вроде такая простая задача, и все же ....