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

OpenVPN маршрутизирует удаленный трафик в зависимости от подсети

Мне удалось настроить OpenVPN для маршрутизации всего трафика через удаленный сервер openvpn.

Сервер OpenVPN имеет два интерфейса: eth0 -> доступ в Интернет eth1 -> частная сеть: 192.168.1.0/24

Теперь весь трафик связан с Eth0.

server.conf

# SERVER UDP/9494
mode server
proto udp
port 9494
dev tun
tcp-queue-limit 128
tun-mtu 1500
mssfix 1300
tun-mtu-extra 32
txqueuelen 15000
# KEYS
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
# NETWORK
server 192.168.2.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 4.4.4.4"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
# SECURITY
user nobody
group nogroup
chroot /etc/openvpn/jail
persist-key
persist-tun
comp-lzo
# LOGS
verb 3
mute 20
status openvpn-status.log
; log-append /var/log/openvpn.log

Iptables:

iptables -A INPUT -p udp --dport 9494 -d $SERVER_IP --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT 
iptables -I FORWARD -o tun0 -j ACCEPT 
iptables -I OUTPUT -o tun0 -j ACCEPT 
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE  

Я хочу сделать то же самое, за исключением диапазона 192.168.1.0/24, который должен быть привязан к Eth1

Как я могу это сделать с помощью iptables?

Спасибо за советы

Я думаю, вам следует добавить правила для частной сети в POSTROUTING и FORWARD, но следует их определить. перед остальные правила POSTROUTING.

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

Итак, я думаю, что ваши правила iptables должны выглядеть так:

iptables -A INPUT -p udp --dport 9494 -d $SERVER_IP --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 192.168.1.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

Может быть, вам стоит ввести некоторый журнал, чтобы увидеть, нужна ли вам реконфигурация или что-то пропустили.

После приведенных выше правил добавить:

iptables -A FORWARD -j LOG --log-prefix 'iptables-forward: '
iptables -t nat -A POSTROUTING -j LOG --log-prefix 'iptables-postrouting: '

Если вы просто хотите добавить маршруты, чтобы ваши клиенты OpenVPN могли общаться с остальной частью сети, просто сделайте следующее:

нажмите "маршрут 192.168.1.0 255.255.255.0"

нажмите "маршрут 192.168.2.0 255.255.255.0"