Image

База знаний → Объединение локальных сетей (доступ к локальным устройствам через VDS сервер)

[Виртуальные сервера]
Дата публикации: 07.03.2024

Существуют задачи, когда нужно получить доступ к оборудованию, находящемуся в локальной сети с доступом в интернет, но при этом не имея внешнего ip адреса. При этом локальных сетей и устройств может быть несколько. Для этого существует несколько различных служб. В данном примере мы рассмотрим установку PPTP службы на VDS сервере с Debian 12.

Нашей целью является настроить серверную часть службы, к которой мы сможем подключить устройства из локальной сети и тем самым получить к ним удаленный доступ, так как VDS сервер имеет выделенный ip.

Для примера: Вы разместили у себя в офисе или на даче сервер, который подключается через мобильный интернет. Зачастую мобильные операторы не предоставляют постоянный, выделенный ip физическим лицам. Чтобы иметь возможность подлючаться к нему через интернет мы настроим на VDS Debian 12 серверную часть PPTP службы, а Ваш домашний сервер как клиентскую часть, где он будет подключатся к серверу.

1. Установка служб

apt install ppp pptpd

1.1 Настройка службы PPTP /etc/pptpd.conf

Определимся с локальной сетью и приведем конфигурацию к виду

localip 10.10.10.1
remoteip 10.10.10.2-254

Если Вы заказали сервер с несколькими внешними ip адресами, Вы можете добавить строку, где будет явно указано, на каком ip будет работать наша служба.

listen внешний_интернет_ip

1.2 Добавим опции в конец файла /etc/ppp/pptpd-options

mtu 1400
mru 1400
auth
require-mppe

При необходимости отредактируйте параметры

ms-dns 8.8.8.8
ms-dns 8.8.4.4

1.3 Раскомментируем опцию /etc/sysctl.conf

net.ipv4.ip_forward=1

Применим настройки:

sysctl -p

1.4 Настроим фаервол, в нашем случае iptables

apt install iptables

1.4.1 Добавим правила, где eth0 - имя внешнего интерфейса

iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

1.4.2 Включение локальной сети между подключенными клиентами, где eth0 - имя внешнего интерфейса

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.10.10.0/24 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

1.4.3 Отключение доступа к интернету через VDS сервер

При необходимости, когда целью является объединение локальных сетей и доступ к локальному оборудованию, чтобы устройства продолжали использовать свой интернет добавьте правило, где eth0 - интерфейс с внешним ip.

iptables -I FORWARD -s 10.10.10.0/24 -o eth0 -j DROP

Обратите внимание на клиентской части нужно будет снять галочку с опции Использовать основной шлюз в удаленной сети. Мы объединим локальные сети, но при этом доступ в интернет будет через локального провайдера, а не через VDS сервер.

1.4.4 Сохраним правила

iptables-save > /etc/iptables.conf

1.4.5 Добавим правила в автозагрузку, добавьте строку в конец файла /etc/network/interfaces

pre-up /sbin/iptables-restore < /etc/iptables.conf

1.5 Добавим пользователей в файл /etc/ppp/chap-secrets

В данном примере пользователю user1 назначается любой свободный ip адрес, в то время как пользователь user2 всегда будет получать статический ip.

user1	pptpd	password1	"*"
user2	pptpd	password2	"10.10.10.10"

1.6 Добавим в автозагрузку и применим настройки

systemctl enable pptpd
service pptpd restart

2. Просмотр активных подключений

Увидеть все активные подключения и их ip адреса можно с помощью команд.

2.1 Используя ifconfig

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1396
        inet 10.10.10.1  netmask 255.255.255.255  destination 10.10.10.2
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 323  bytes 49503 (48.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 22  bytes 626 (626.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1396
        inet 10.10.10.1  netmask 255.255.255.255  destination 10.10.10.10
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 24  bytes 896 (896.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 890 (890.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.2 Используя route

10.10.10.2      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.10.10.10     0.0.0.0         255.255.255.255 UH    0      0        0 ppp1

2.3 Используя service pptpd status

 pptpd.service - PoPToP Point to Point Tunneling Server
     Loaded: loaded (/lib/systemd/system/pptpd.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-03-07 13:42:51 MSK; 4h 5min ago
       Docs: man:pptpd(8)
             man:pptpctrl(8)
             man:pptpd.conf(5)
   Main PID: 480 (pptpd)
      Tasks: 5 (limit: 1099)
     Memory: 4.3M
        CPU: 9.462s
     CGroup: /system.slice/pptpd.service
             ├─480 /usr/sbin/pptpd --fg
             ├─605 "pptpd [123.123.123.123:97EE - 0400]"
             ├─606 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 10.10.10.1:10.10.10.3 ipparam 123.123.123.123 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 123.123.123.123>
             ├─986 "pptpd [123.123.123.123:D114 - 0580]"
             └─987 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 10.10.10.1:10.10.10.2 ipparam 123.123.123.123 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 123.123.123.123>

Сервер настроен и готов к подключениям.

Смотрите также:





Нет комментариев