Настройка доступа к локальной сети клиентам OpenVPN в CentOS 7

Обновлено Обновлено: Опубликовано Опубликовано:

Доступ к локальной сети через OpenVPN настраивается в несколько этапов:

  1. Настроить в OpenVPN маршрут для клиента.
  2. Настроить ядро Linux — включить перенаправление.
  3. Настроить брандмауэр.

1. OpenVPN

Открываем на редактирование конфигурационный файл OpenVPN:

# vi /etc/openvpn/server.conf

И добавляем в него следующие строки:

push "route 172.16.10.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"

* где 172.16.10.0 — VPN сеть; 192.168.2.0 — локальная сеть, в которую необходимо «попасть» пользователям openvpn.

Перезагружаем сервис для применения настроек:

# systemctl restart openvpn@server

2. Ядро (Sysctl)

Открываем на редактирование следующий файл:

# vi /etc/sysctl.conf

и добавляем в него следующую строчку:

net.ipv4.ip_forward=1

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

# sysctl -p /etc/sysctl.conf

3. Брандмауэр

Firewalld

Включаем маскарадинг для зоны:

firewall-cmd --permanent --zone=public --add-masquerade

* где public — зона, где находится сетевой интерфейс, который принимает запросы на подключение к OpenVPN.

Если на сервере используется один сетевой интерфейс, можно применять правила:

firewall-cmd --complete-reload

Иначе, добавим еще правила на FORWARD:

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens34 -o ens32 -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens32 -o ens34 -m state --state RELATED,ESTABLISHED -j ACCEPT

firewall-cmd --complete-reload

* в данном примере, ens32 — интерфейс для внешнего подключения (на него идут подключения к VPN-серверу); ens34 — внутреннего (интерфейс, который смотрит в локальную сеть).

Iptables

В CentOS, по умолчанию, нет средств для управления netfilter с помощью iptables, поэтому мы их устанавливаем

# yum install iptables-services

Разрешаем iptables:

# systemctl enable iptables

и включаем его:

# systemctl start iptables

Удаляем правила по умолчанию из iptables:

# iptables -F

и создаем разрешение на перенаправление запросов:

# iptables -t nat -A POSTROUTING -s 172.16.10.0/24 -j MASQUERADE

* где 172.16.10.0/24 — VPN сеть, которая назначается клиентам при подключении.

Сохраняем настройки iptables:

# /usr/libexec/iptables/iptables.init save

4. Проверка

Переподключаемся OpenVPN-клиентом. Проверяем, что необходимый маршрут появился в системе командой route print.

Если маршрут в нужную сеть есть, пробуем попинговать любой узел из внутренней сети, к которой мы должны были получить доступ.

# Базы данных # Сервера # MySQL
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет