Я пытаюсь настроить старый ПК с linux (CentOS) в качестве точки доступа к VPN у меня в другом доме. У меня есть два интерфейса Ethernet, поэтому я хочу использовать один для подключения к Интернету через маршрутизатор, подключения к VPN и затем использовать это подключение VPN по моей второй сети Ethernet. IP на втором устройстве должен быть назначен DHCP.
Я читал много уроков / постов и смог поделиться своим обычным интернет-соединением с отключенным VPN. Однако, как только я запускаю VPN, независимо от того, каковы мои правила iptables / маршрутов, я застреваю без интернета на моем втором устройстве. Я не знаю, что я делаю неправильно. Может ли кто-нибудь помочь?
Вот мои конфигурации: - enp2s0: это связано с моим основным маршрутизатором. - enp0s29f7u1: это будет связано со вторым устройством
enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether bc:ee:7b:19:89:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.26/24 brd 192.168.1.255 scope global noprefixroute enp2s0
valid_lft forever preferred_lft forever
inet6 fe80::c25c:2c9d:4777:79fc/64 scope link noprefixroute
valid_lft forever preferred_lft forever
enp0s29f7u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast stat e UP group default qlen 1000
link/ether 00:e0:4c:69:35:d0 brd ff:ff:ff:ff:ff:ff
inet 10.8.0.5/24 brd 10.8.0.255 scope global noprefixroute enp0s29f7u1
valid_lft forever preferred_lft forever
inet6 fe80::2e0:4cff:fe69:35d0/64 scope link
valid_lft forever preferred_lft forever
Как только я подключаюсь к своему VPN, появляется другой интерфейс, tun0:
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::2d75:64c0:6c21:c9d9/64 scope link flags 800
valid_lft forever preferred_lft forever
Мой /etc/dhcp/dhcpd.conf имеет следующие параметры:
subnet 10.8.0.0 netmask 255.255.255.0 {
range 10.8.0.10 10.8.0.15;
option routers 10.8.0.5;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
Второе устройство получает 10.8.0.11 в качестве ip, так что я думаю, что оно работает нормально.
Я добавил следующие правила, используя iptables:
iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE
iptables -I FORWARD 1 -i tun0 -o enp0s29f7u1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 1 -i enp0s29f7u1 -o tun0 -j ACCEPT
Дополнительная информация:
У меня действительно включена пересылка ip4:
/sbin/sysctl net.ipv4.ip_forward
возвращаетnet.ipv4.ip_forward = 1
Я могу получить доступ к Интернету с IP-адреса с моего сервера VPN в другом доме, как и ожидалось. Однако я могу сделать это только с компьютера, на котором я настраиваю эту конфигурацию, а не с устройства, подключенного через
enp0s29f7u1
.- Это маршруты до / после запуска vpn.
ДО
ip route
default via 192.168.1.1 dev enp2s0 proto static metric 101
10.8.0.0/24 dev enp0s29f7u1 proto kernel scope link src 10.8.0.5 metric 100
ПОСЛЕ
IP-маршрут
0.0.0.0/1 via 10.8.0.1 dev tun0
default via 192.168.1.1 dev enp2s0 proto static metric 101
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.2
10.8.0.0/24 dev enp0s29f7u1 proto kernel scope link src 10.8.0.5 metric 100
xx.xx.xx.xx via 192.168.1.1 dev enp2s0
128.0.0.0/1 via 10.8.0.1 dev tun0
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.26 metric 101
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.26 metric 101
Я заменил свой публичный ip VPN-сервера на xx.xx.xx.xx
Что мне здесь не хватает?
РЕДАКТИРОВАТЬ: Из отчаяния, я пытался соединить интерфейсы, даже если я знал, что это не было хорошей идеей. Это тоже не сработало.