Я хочу подключиться к VPN-серверу - на котором работает Ubuntu Server 12.04 - с использованием eth0
и направить его вывод на eth1
чтобы я мог подключить свой домашний ПК к eth1
. Как я могу достичь этого?
1 ответ
0
Предположим, что на вашем сервере есть один брандмауэр на базе Linux и две следующие карты Ethernet:
eth1 (общедоступный IP) ============== {ИНТЕРНЕТ}
eth0 (внутренняя сеть /192.168.0.0/24) ============== 192.168.0.1
Tun0 настроен как 10.8.0.1 как VPN, а вся сеть VPN настроена как 10.8.0.0/24.
В таком случае правила iptables, необходимые для этого, выглядят так:
# Allow traffic initiated from VPN to access LAN
iptables -I FORWARD -i tun0 -o eth0 \
-s 10.8.0.0/24 -d 192.168.0.0/24 \
-m conntrack --ctstate NEW -j ACCEPT
# Allow traffic initiated from VPN to access "the world"
iptables -I FORWARD -i tun0 -o eth1 \
-s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
# Allow traffic initiated from LAN to access "the world"
iptables -I FORWARD -i eth0 -o eth1 \
-s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
# Allow established traffic to pass back and forth
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
# Notice that -I is used, so when listing it (iptables -vxnL) it
# will be reversed. This is intentional in this demonstration.
# Masquerade traffic from VPN to "the world" -- done in the nat table
iptables -t nat -I POSTROUTING -o eth1 \
-s 10.8.0.0/24 -j MASQUERADE
# Masquerade traffic from LAN to "the world"
iptables -t nat -I POSTROUTING -o eth1 \
-s 192.168.0.0/24 -j MASQUERADE
Надеюсь, это может помочь.