Вопрос: Поделитесь своим VPN-подключением с другими пользователями локальной сети


У меня есть ПК с одним физическим адаптером LAN, подключающимся к VPN-серверу. Есть ли способ, которым я могу настроить (виртуальный) интерфейс шлюза на том же адаптере локальной сети таким образом, чтобы другие устройства в моей сети могли использовать это в качестве шлюза и запускать свой трафик через это и VPN-соединение?

Большая часть моего ifconfig:

enp0s21f5 Link encap:Ethernet  HWaddr 4c:cc:6a:d5:94:96  
      inet addr:192.168.1.120  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::76e3:9399:187d:fdad/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.11.0.2  P-t-P:10.11.0.2  Mask:255.255.0.0
      inet6 addr: fdda:d0d0:cafe:1197::1000/64 Scope:Global
      inet6 addr: fe80::c9b:2e1b:882:1637/64 Scope:Link
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
      inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1

И здесь информация о маршрутизации:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.11.0.1       0.0.0.0         UG    50     0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 enp0s21f5
10.11.0.0       0.0.0.0         255.255.0.0     U     50     0        0 tun0
89.238.176.34   192.168.1.1     255.255.255.255 UGH   100    0        0 enp0s21f5
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp0s21f5
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s21f5
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

3
2018-06-16 14:55


Источник


используйте команду добавления маршрута на других клиентских машинах, чтобы включить ваш компьютер в качестве шлюза. на вашем ПК с помощью vpn вам нужно будет принять соединения и перенаправить входящие соединения на интерфейс vpn. - kukulo
Спасибо @kukulo, Это те два этапа сервера, что я действительно не знаю, как и как лучше всего это сделать. Не уверен, что мне нужно использовать iptables что-то вроде: {iptables -A INPUT -m state -state NEW -m tcp -p tcp -dport 80 -j ACCEPT}? И затем переделайте что-то вроде: {iptables -t nat -A PREROUTING -s 192.168.1.0 -j DNAT - to 10.11.0.1 iptables -t nat -A POSTROUTING -s 192.168.1.0 -d 10.11.0.1 -j MASQUERADE}? Также я добавил таблицу маршрутизации выше. - UbuNoob
Как клиент будет подключаться к вам? Для меня, похоже, вы пытаетесь сделать свой компьютер как маршрутизатор, поэтому вам нужно включить ip forwarding, но ваша цель не ясна. - fugitive
Вы можете использовать что-то вроде hostapd, получить адаптер wifi и сделать его точкой доступа, но все же не очень надежным решением. - fugitive
Спасибо @fugitive. И да, я хочу, чтобы он выступал в роли маршрутизатора и передавал трафик с других компьютеров (устройств) в той же (V) LAN через его VPN-соединение. С добавлением адаптера wifi (или дополнительного штекера rj45) я уверен, что смогу заставить его работать, поскольку я столкнулся с несколькими практическими задачами для этого, пытаясь решить эту проблему, но я бы хотел сделать это, не добавляя дополнительное оборудование, если это возможно. Мне удалось получить маршрутизатор linksys / dd-wrt, чтобы сделать это один раз, используя только один порт, но у меня его больше нет, поэтому хотелось бы, чтобы он теперь работал на моем компьютере ubuntu. - UbuNoob


Ответы:


Решение с wifi adapter а также hostapd программного обеспечения:

sudo apt-get install hostapd -y

конфигурировать hostapd

interface=wlan0
ssid=Your_WLAN
hw_mode=g # can be b/g/n
wpa=2
wpa_passphrase=PASS
wpa_key_mgmt=WPA-PSK WPA-EAP WPA-PSK-SHA256 WPA-EAP-SHA256

редактировать /etc/network/interfaces

auto wlan0
iface wlan0 inet static
hostapd /etc/hostapd/hostapd.conf
address 192.168.0.1
netmask 255.255.255.0

Поскольку ваш компьютер является маршрутизатором, вам необходимо включить пересылку интерфейсов

  • 1-й путь echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p # постоянный режим
  • 2 - echo 1 > /proc/sys/net/ip/ipv4/ip_forward

Чтобы включить его при загрузке и запустить его:     systemctl включить hostapd && systemctl запустить hostapd

устанавливать dnsmasq так как это будут как ваши DNS, так и сервер dhcp.

sudo apt install dnsmasq

отредактируйте файл conf: vi /etc/dnsmasq.conf

interface=lo,wlan0
no-dhcp-interface=lo
dhcp-range=192.168.0.2,192.168.0.254,255.255.255.0,12h

Iptables:

iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE

iptables -A FORWARD -i wlan+ -o tun+ -j ACCEPT
iptables -A FORWARD -o tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -m conntrack --ctstate ESTABLISHED,RELATED   -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT

Дайте мне знать, если это сработает для вас.


1
2018-06-17 21:19



Я использую что-то подобное в своем доме, но на raspi, который используется как брандмауэр, и старый маршрутизатор, который используется для Wi-Fi. Маршрутизаторы более надежны для адаптера wifi - fugitive