Как пустить в интернет VPN клиентов на Debian сервере

9 марта 2020  /  GNU Linux - CentOS / Debian
Просмотры: 41 / Комментарии: 0

Недавно я написал инструкцию как настроить самый простой VPN сервер PPTP на сервере с Debian — https://moonback.ru/page/debian-pptp-server-setup. В этой статье расскажу как пустить пользователей из VPN туннеля в интернет.

Статья справедлива для всех случаев когда у Debian сервера есть белый IP адрес смотрящий в интернет и серый IP к которому подключены другие компьютеры. Это может быть как локальная сеть, так и VPN туннель.

Данная инструкция написана для Debian 9 и была опробирована на виртуальном сервере от Adman.COM

Пересылка пакетов между сетевыми интерфейсами

Первым делом настроим систему так, чтобы она «умела» работать шлюзом. Для этого в файле /etc/sysctl.conf найдите и раскоментируйте строку (уберите знак # в начале строки):

net.ipv4.ip_forward=1

Возможно, что в вашей системе этот параметр уже присутствует, но со значением 0 (ноль). В таком случае исправьте его на 1 (единицу).

Чтобы необходимое нам значение заработало нужно применить новую конфигурацию, для этого выполните в консоли сервера следующую команду:

# sysctl -p

О параметре net.ipv4.ip_forward

Если этот параметр выключен (закоментирован или значение равно 0), то компьютер (операционная система) считает себя узлом IP сети и дропает (DROP) все пакеты, предназначенные не ему (т.е. отбрасывает пакеты адрес получателя которых отличен от IP-адресов, назначенных на интерфейс, на котором получен пакет).

Если параметр включен, то ОС считает себя маршрутизатором и действует в соответствии с RFC1812, в том числе пытается переслать адресованные не ей пакеты в соответствии с таблицей маршрутизации.

Перенаправление трафика

Теперь самое время сказать серверу куда направлять трафик, который прилетает на наш сервер, как на шлюз (вместо ens32 укажите тот интерфейс, которым ваш сервер смотрит в интернет). Для этого выполните следующую команду в консоли сервера:

# iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE

Эта команда будет работать до перезагрузки сервера.

А для того, чтобы все работало и после старта операционной системы необходимо в файл /etc/rc.local добавить следующую строку перед строкой в конце файла exit 0.

iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE

У меня на сервере файл /etc/rc.local после внесенных изменений выглядит так:

#!/bin/sh

for f in /sys/block/sd?/device/timeout; do
  echo 86400 >"$f"
done

iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE

exit 0

Для чего нужен файл rc.local в Debian

Файл rc.local в Debian используется для того чтобы добавлять собственные скрипты, которые будут выполняться после старта системы.

Как узнать имя сетевого интерфейса в Debian

Один из способов это посмотреть настройки в файле /etc/network/interfaces. Либо выполните следующую команду в консоли:

# ip link show

Как пустить в интернет VPN клиентов на Debian сервере

Благодарности

При написании статьи были использованы следующие источники:

  1. https://debian.pro/249
  2. https://www.linux.org.ru/forum/admin/6435264

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Мой лучший VDS/VPS хостинг

 
2020 © Технический блог
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 39 | 0,096 сек. | 8.42 МБ