Меню

Настройка vpn сервера centos



Установка и настройка OpenVPN на Linux CentOS 7

Для удобства настройки заходим под суперпользователем:

Подготовка системы

Обновляем установленные пакеты:

Установим правильную временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере московское время.

Устанавливаем сервис для синхронизации времени:

yum install chrony

Разрешаем автозапуск службы chrony и запускаем ее:

systemctl enable chronyd —now

Чтобы Selinux не включился после перезагрузки, откроем данный файл:

И отредактируем строчку SELINUX=enforcing на:

Создаем правило для firewalld:

firewall-cmd —permanent —add-port=443/udp

* в данной инструкции мы настроим работу OpenVPN на порту 443 по UDP. Если в вашем случае необходим другие порт и протокол, меняем значения на соответствующие.

. и применяем его:

* если используется iptables, правило создаем командой iptables -I 1 INPUT -p udp —dport 443 -j ACCEPT, где 443 — порт, который мы будем использовать для openvpn.

Установка, настройка и запуск VPN-сервера

Установка OpenVPN

Устанавливаем репозиторий epel:

yum install epel-release

Устанавливаем необходимые пакеты следующей командой:

yum install openvpn easy-rsa

Создание сертификатов

В основе идеи VPN лежит шифрование трафика, а значит для его работы необходимы сертификаты.

Переходим в каталог easy-rsa:

* в зависимости от версии easy-rsa, последний каталог может быть другим. Увидеть точное название каталога можно командой ls /usr/share/easy-rsa/.

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

export KEY_COUNTRY=»RU»
export KEY_PROVINCE=»Sankt-Petersburg»
export KEY_CITY=»Sankt-Petersburg»
export KEY_ORG=»DMOSK COMPANY»
export KEY_EMAIL=»master@dmosk.ru»
export KEY_CN=»DMOSK»
export KEY_OU=»DMOSK»
export KEY_NAME=»name-openvpn-server.dmosk.ru»
export KEY_ALTNAMES=»name-openvpn-server»

* где KEY_CN и KEY_OU: рабочие подразделения (например, можно указать название отдела); KEY_NAME: адрес, по которому будет выполняться подключение (можно указать полное наименование сервера); KEY_ALTNAMES — альтернативный адрес.
* так как мы генерируем самоподписный сертификат, значения данных полей никак не повлияют на работу OpenVPN, однако, для удобства, лучше подставить реальные данные.

Источник

Настройка сервера L2TP VPN на CentOS 8

Удобство L2TP заключается в возможности использовать встроенные средства Windows, Android, Mac OS для подключения к VPN-серверу. В данной инструкции рассмотрим процесс его установки и настройки на CentOS 8. Для реализации сервиса мы будем использовать strongswan + xl2tpd. В итоге мы получим:

  • VPN-сервер, использующий туннельный протокол L2TP.
  • Возможность подключения к серверу встроенными средствами Windows, Android, Mac OS X.
  • Защита соединения посредством общего ключа + аутентификация пользователя.
  • Доступ к локальной сети.
  • Аутентификацию через Active Directory.

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

Подготовка сервера

1. Для установки ПО потребуется репозиторий EPEL:

dnf install epel-release

2. Настраиваем брандмауэр:

firewall-cmd —permanent —add-port=1701/

firewall-cmd —permanent —add-service=ipsec

3. Отключаем SELinux:

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

Настройка VPN-сервера

Для настройки нашего сервера мы настроим следующие компоненты: IPSEC (strongswan), L2TP (xl2tpd), PPP.

IPSEC

Для управления IPSec используется пакет strongswan — установим его командой:

dnf install strongswan

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

Для config setup добавим:

config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey

  • nat_traversal — обход NAT.
  • virtual_private — определяет приватные сети. В данном примере просто перечислены сети, зарезервированные под локальные — мы можем указать и другие.
  • oe — .
  • protostack — определяет стек протоколов, который будет использоваться для подключения.

. а также вставляем ниже:

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=%any
leftprotoport=udp/1701
right=%any
rightprotoport=udp/%any
ike=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
esp=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024

  • authby — способы аутентификации двух узлов. Возможны варианты secret (по паролю) или rsasig (цифровые подписи RSA).
  • pfs — расшифровывается как Perfect Forward Secrecy. Позволяет активировать совершенную секретность в канале ключей соединения.
  • auto — операция, которая должна запуститься автоматически при старте IPsec.
  • keyingtries — число попыток, чтобы «договориться» о соединении или его замене.
  • rekey — перепроверить соединение, когда оно истекает.
  • ikelifetime — время соединения до повторного согласования ISAKMP или IKE SA.
  • keylife — как долго должен длиться конкретный экземпляр соединения.
  • type — тип соединения. Возможны варианты tunnel ( хост-хост, хост-подсеть или подсеть-подсеть); transport (хост-хост); passthrough (без обработки IPsec).
  • left — IP-адрес левого участника (сервера). %any означает, что адрес может быть любой.
  • leftprotoport — определяет протокол и порт, на котором будет работать левая сторона (сервер). В данном примере указан UDP и порт 1701.
  • right — IP-адрес правого участника (клиента). %any означает, что адрес может быть любой.
  • rightprotoport — определяет протокол и порт, на котором будет работать правая сторона (клиент). В данном примере указан UDP и любой порт.

Создаем секретный ключ — для этого открываем на редактирование файл:

%any %any : PSK «my_key_password»

* в данном примере мы устанавливаем общий пароль my_key_password для соединений с любого IP.

Разрешаем автозапуск strongswan и перезапускаем службу:

systemctl enable strongswan

systemctl restart strongswan

Устанавливаем сервер L2TP:

dnf install xl2tpd

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

Для раздела [global] добавляем:

[global]
port = 1701
access control = no
ipsec saref = yes
force userspace = yes
auth file = /etc/ppp/chap-secrets

  • port — порт UDP, на котором работает VPN. По умолчанию, 1701.
  • access control — принимать или нет запросы только от клиентов с определенными IP, перечисленными в настройках клиентов.
  • ipsec saref — указывает использовать или нет ipsec Security Association, позволяющий отслеживать несколько клиентов с одинаковыми IP-адресами.
  • force userspace — повышает производительность за счет декапсуляции пакетов L2TP.
  • auth file — путь к файлу аутентификации.

Раздел [lns default] можно полностью удалить или закомментировать (символом «;») и заменить на:

Читайте также:  Ubuntu server sftp настройка

[lns default]
ip range = 176.16.10.10-176.16.10.200
local ip = 176.16.10.1
require authentication = yes
name = l2tp
pass peer = yes
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
refuse pap = yes

  • ip range — диапазон адресов, которые назначаются подключенным клиентам.
  • local ip — IP-адрес сервера в сети VPN.
  • name — имя сервера для процесса согласования.
  • pppoptfile — путь к файлу с настройкой pppd.
  • flow bit — позволяет добавлять в пакеты порядковые номера.
  • exclusive — если поставить в yes, сервер разрешит только одно соединение с клиентом.
  • hidden bit — скрывать или нет AVP.
  • length bit — использовать ли бит длины, указывающий полезную нагрузку.
  • require authentication — требовать ли аутентификацию.
  • require chap — требовать ли аутентификацию PPP по протоколу CHAP.
  • refuse pap — отказывать ли авторизацию пирам, использующим PAP.

Разрешаем автозапуск vpn-сервера и перезапускаем его:

Источник

Настройка IPSEC L2TP VPN-сервера на CentOS 7

Один из лучших способов поднять сервер VPN — настроить OpenVPN. Однако, данный сервер не лишен недостатков — на клиенты потребуется устанавливать специальное программное обеспечение. Если мы хотим использовать стандартные средства операционных систем для подключения к серверу, настроим VPN IPSEC L2TP.

Подготовка сервера

Для установки ПО потребуется репозиторий EPEL:

yum install epel-release

firewall-cmd —permanent —add-port=1701/tcp

firewall-cmd —permanent —add-service=ipsec

IPSEC

yum install ipsec-tools

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

Добавляем в конец файла:

remote anonymous
<
exchange_mode main,aggressive,base;
doi ipsec_doi;
passive on;
proposal_check obey;
support_proxy on;
nat_traversal on;
ike_frag on;
dpd_delay 20;
proposal
<
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
>
proposal
<
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
>
>

Теперь открываем следующий файл:

Для клиентов Windows добавляем:

ip-addres1 key-password1
ip-addres2 key-password2

* где ip-addres — ip-адрес клиента, с которого будет идти подключение; key-password — пароль для подключения.

Для клиентов Android добавляем:

identifier1 key-password1
identifier2 key-password2

* где identifier — идентификатор клиента, который будет использоваться при подключении; key-password — пароль для подключения.

Создаем скрипт с настройкой ipsec политик:

spdadd 0.0.0.0/0[l2tp] 0.0.0.0/0 any -P out ipsec esp/transport//require;
spdadd 0.0.0.0/0 0.0.0.0/0[l2tp] any -P in ipsec esp/transport//require;

chmod 755 /etc/rc.d/init.d/racoon.init

Добавляем скрипт на автозапуск:

И добавляем строчку:

Разрешаем запуск сервиса racoon и стартуем его:

systemctl enable racoon

systemctl start racoon

Задаем политики ipsec:

Устанавливаем пакет xl2tpd:

yum install xl2tpd

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

В секцию [global] добавим:

[global]
ipsec saref = yes
force userspace = yes

В секции [lns default] изменяем диапазон IP-адресов:

[lns default]
ip range = 176.16.10.10-176.16.10.200
local ip = 176.16.10.1

Разрешаем автозапуск сервиса и стартуем его:

systemctl enable xl2tpd

systemctl start xl2tpd

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

Вносим небольшие изменения в DNS:

ms-dns 77.88.8.8
ms-dns 8.8.8.8

Добавляем метод mschap2

Открываем файл с пользователями:

* где dmosk — логин; первая звездочка — любой сервер; password — пароль, который должен вводить пользователь dmosk; вторая звездочка — подключение с любого IP-адреса.

Источник

Блог Сисадмина

Полезная информация об администрировании пользовательских и серверных ОС Windows.

Настройка PPTP VPN на CentOS 7

Update 2019: Вот здесь я написал как настроить vpn сервер с помощью скрипта одной командой.

Итак, задача взять недорогой виртуальный сервер на линуксе в Европе и настроить на нем vpn, чтобы пользоваться всеми благами интернета без российской цензуры. Инструкция по шагам с самого начала для тех кто так же как я с *никсом на «вы»:)

Инструкция по настройке ниже:

#Настройка vpn сервера pptpd на CentOS 7 x64
yum update && yum upgrade

#узнаем версию CentOS:
cat /etc/centos-release
uname -a

#установка mc
yum install mc

#проверяем есть ли в системе ifconfig (в CentOS 7 minimal его по умолчанию нет)
ifconfig -a

#если command not found, то ставим net-tools
yum install net-tools

#устанавливаем pptpd
yum install pptpd.x86_64 -y
chkconfig pptpd on

#если пакет pptpd.x86_64 не находится, надо подключить другой репозиторий:
yum install epel-release

или
cd /usr/src
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
rpm -Uhv epel-release-7-8.noarch.rpm

#файл /etc/sysctl.conf:

#файл /etc/pptpd.conf:
localip 10.0.0.1
remoteip 10.0.0.100-200 #диапазон адресов для клиентов

#проверяем чтобы в файле была строчка:
option /etc/ppp/options.pptpd

#файл /etc/ppp/options.pptpd:
ms-dns 8.8.8.8
ms-dns 8.8.4.4

#файл /etc/ppp/chap-secrets добавляем пользователей и пароли:
# Secrets for authentication using CHAP
# client server secret IP addresses
username pptpd password *

#обновляем параметры:
sysctl -p

# редактируем файл /etc/ppp/ip-up — перед последней строчкой вставить (без этого некоторые сайты не грузятся)
/sbin/ifconfig $1 mtu 1400

service pptpd restart

#Удаляем firewalld, вместо него ставим IPTABLES
#—
#With RHEL 7 / CentOS 7, firewalld was introduced to manage iptables. IMHO, firewalld is more suited for workstations than for server environments.
#It is possible to go back to a more classic iptables setup. First, stop and mask the firewalld service:

systemctl stop firewalld
systemctl mask firewalld

#устанавливаем iptables
yum install iptables-services

#старт iptables при загрузке сервера
systemctl enable iptables

#команда для дампа текущего состояния iptables: iptables-save >conf.txt

#название внешнего сетевого интерфейса — смотрим файл в /etc/sysconfig/network-scripts (ifcfg-enp0s6)
#enp0s6 — название интерфейса, подставляем его в файл /etc/sysconfig/iptables, файл должен быть таким:

Читайте также:  Программы для настройки файловых серверов

##Управление сервисом: systemctl [stop|start|restart] iptables

#Перезапускаем iptables:
systemctl restart iptables

#перезапускаем сервер
reboot

Настройка PPTP VPN на CentOS 7 : 10 комментариев

У вас в выражениях типа —state, —reject-with, —dport указан длинный дефис. Т.е. ваш редактор текста заменил двойные тире на длинный дефис. Исправьте в статье.

При данном конфиге средствами ОС все работает и туннель подымается и все работает. Но вот роутер Zyxel Keneetic 4g III пишет следующее:

Jul 19 01:24:12pptp[8636]Plugin pptp.so loaded.
Jul 19 01:24:12pptp[8636]PPTP plugin version 0.8.3 compiled against pppd 2.4.4-4
Jul 19 01:24:12pptp[8636]pppd 2.4.4-4 started by root, uid 0
Jul 19 01:24:12ndmNetwork::Interface::PPTP: added host route to 194.67.196.108 via UsbModem0.
Jul 19 01:24:12pptp[8640]IP: 194.67.196.108
Jul 19 01:24:13pptp[8640]control connection
Jul 19 01:24:13pptp[8640]unix_sock
Jul 19 01:24:13pptp[8641]enable echo requests (30:3)
Jul 19 01:24:13pptp[8641]Sent control packet type is 1 ‘Start-Control-Connection-Request’
Jul 19 01:24:13pptp[8641]Received Start Control Connection Reply
Jul 19 01:24:13pptp[8641]Client connection established.
Jul 19 01:24:14pptp[8641]Sent control packet type is 7 ‘Outgoing-Call-Request’
Jul 19 01:24:14pptp[8641]Received Outgoing Call Reply.
Jul 19 01:24:14ndmkernel: Fast VPN ctrl: setup for src 194.67.196.108
Jul 19 01:24:14pptp[8641]Outgoing call established (call ID 1688, peer’s call ID 1408).
Jul 19 01:24:14pptp[8636]Using interface ppp2
Jul 19 01:24:14pptp[8636]Connect: ppp2 pptp (194.67.196.108)
Jul 19 01:24:16ndmCore::ConfigurationSaver: configuration saved.
Jul 19 01:24:44pptp[8641]read returned zero, peer has closed
Jul 19 01:24:44pptp[8641]Closing connection (shutdown)
Jul 19 01:24:44pptp[8641]Sent control packet type is 12 ‘Call-Clear-Request’
Jul 19 01:24:44pptp[8641]read returned zero, peer has closed
Jul 19 01:24:44pptp[8641]Closing connection (call state)
Jul 19 01:24:44pptp[8636]Modem hangup
Jul 19 01:24:44ndmkernel: Fast VPN ctrl: release for src 194.67.196.108
Jul 19 01:24:44pptp[8636]Connection terminated.
Jul 19 01:24:44pptp[8636]Exit.
Jul 19 01:24:44ndmService: «PPTP1»: unexpectedly stopped.

Не подскажете куда смотреть?

Не знаю, попробуйте написать в суппорт zyxel, вроде они раньше помогали.
А вообще я бы рекомендовал в качестве роутера использовать Mikrotik, например RB951G, девайс на 5+ за свои деньги, очень стабильный и гибко настраиваемый.

Не выходит каменный цветок 🙁
Статья написана отлично, но в моих условиях — не работает.
Вопрос: при [пере]запуске pptpd должен ли появляться интерфей

Статья изумительна (честно).
Но в моем случае не выходит каменный цветок.
Вопрос — при [пере]старте pptpd должен ли появляться интерфейс ppp0?
А то у меня сервис pptpd говорит «всё чики, бро!», а /dev/ppp? — нема.
CentOS7 в состоянии «муха не сидела» (только-что yum update сделал).

PS. т.е. в статью больше диагностики бы.

в листинге iptables после строки безусловного реджекта:
-A INPUT -j REJECT —reject-with icmp-host-prohibited

остальные строки:
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp —dport 1723 -j ACCEPT

remoteip здесь диапазон разрешенных для подключения ip?
#файл /etc/pptpd.conf:
localip 10.0.0.1
remoteip 10.0.0.100-200 #диапазон адресов для клиентов

понял, это ip локалки vpn

Вот это надо в конец, а то vpn не подключится:
-A INPUT -j REJECT —reject-with icmp-host-prohibited

Но у меня,всё равно трафик не выходит в интернет из vpn, может, что-то ещё забыли?

Источник

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

В данном руководстве будет описан процесс установки и настройки инструмента OpenVPN на виртуальном сервере под управлением CentOS 7. OpenVPN — это открытый программный продукт для создания виртуальных частных сетей и подключения к ним по открытым интернет-каналам.

Прежде чем начать, нужно установить дополнительные пакеты из репозитория Enterprise Linux (EPEL). Это необходимо потому, что OpenVPN недоступен в CentOS по умолчанию. Репозиторий EPEL управляется сообществом Fedora Project и содержит нестандартные для CentOS, но популярные пакеты приложений.

yum install epel-release

Шаг #1: Установка пакета OpenVPN

Прежде всего, необходимо установить OpenVPN. Также мы установим инструмент Easy RSA — он будет использоваться для создания пар SSL-ключей, которые обеспечат безопасность VPN-соединений.

yum install openvpn easy-rsa –y

Шаг #2: Настройка сервиса

В директории документации OpenVPN содержатся файлы с тестовыми конфигурациями программы. Скопируем файл server.conf — на его основе мы создадим свою конфигурацию.

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Теперь откроем его для редактирования:

Здесь нужно будет внести несколько изменений. Когда в дальнейшем мы будем генерировать ключы в программе Easy RSA, их размер будет по умолчанию составлять 2048 байт, поэтому нужно убедиться, что соответствующее значение указано в файле настроек. Нужно изменить название файла dh на dh2048.pem:

Затем нужно раскомментировать (удалить символ “;”) строку, которая сообщает клиенту о необходимости редиректа трафика через OpenVPN.

push redirect-gateway def1 bypass-dhcp

Затем нужно указать DNS-серверы, поскольку клиентские приложения не смогут использовать серверы интернет-провайдера.

Для этого нужно раскомментировать строки, начинающиеся с push «dhcp-option DNS» для передачи DNS-серверов клиенту:

push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»

Нам нужно, чтобы OpenVPN запускался без привилегий, поэтому нужно указать, что он запускается от имени пользователя и группы nobody. Для этого нужно раскомментировать соответствующие строки:

user nobody
group nobody

Также нужно указать пути до сгенерированных ранее сертификатов и ключей:

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key #This file should be kept secret
tls-auth /etc/openvpn/ta.key 0 # This file is secret

Затем нужно сохранить файл и выйти из него. Для этого используйте в редакторе nano сочетание клавиш CTRL+X, затем подтвердите сохранение файла нажатием Y

Читайте также:  Настройки прокси сервера в фаерфоксе

Шаг #3: Создание ключей и сертификатов

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

Создадим директорию, в которой будут храниться ключи:

mkdir -p /etc/openvpn/easy-rsa/keys

В эту директорию нужно скопировать скрипты для генерации ключей и сертификатов:

cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Примечание: Если на данном этапе вы увидели ошибку (отсутствие директории 2.0), значит в вашем дистрибутиве OpenVPN по-умолчанию используется более поздняя версия easy-rsa. В этом случае вручную скачайте easy-rsa и скопируйте содержимое архива, последовательно выполнив команды:

Также следует предотвратить возможность сбоя загрузки конфигурации SSL из-за невозможности определения версии программы. Для скопируем нужный конфигурационный файл и удалим из названия номер версии:

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Теперь создадим ключи и сертификаты. Для этого перейдем в директорию easy-rsa и запустим команду source для новых переменных:

cd /etc/openvpn/easy-rsa
source ./vars

Затем нужно удалить все предыдущие версии ключей и сертификатов, которые могут содержаться в этой директории:

Также нужно сгенерировать файл обмена по алгоритму Диффи-Хеллмана. Процесс может занять несколько минут:

Указываем информацию об организации, выдавшей сертификат:

Система задаст несколько вопросов — можно просто нажимать Enter вместо ответа или указать информацию о вашей организации.

Теперь нужно сгенерировать ключ и сертификат сервера. И снова можно просто нажимать Enter в ответ на вопросы системы. Единственное обязательное поле: common name — укажите здесь значение server. Чтобы сохранить данные, в конце процедуры следует нажать Y (yes).

Сгенерируем дополнительный ключ ta.key.

openvpn —genkey —secret /etc/openvpn/easy-rsa/keys/ta.key

Теперь скопируем созданные сертификаты и ключи в директорию OpenVPN.

cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key ta.key /etc/openvpn

Всем клиентским приложениям для установления связи также понадобятся эти ключи и сертификаты. Лучше создавать отдельные ключи для каждого пользовательского приложения и давать ключам описательные имена. Сейчас же мы рассматриваем ситуацию с одним клиентом, поэтому назовем его просто client:

cd /etc/openvpn/easy-rsa
./build-key client

Шаг 4: Маршрутизация

Чтобы упростить настройку, проведем все манипуляции с помощью стандартного фаервола iptables, а не нового инструмента firewallcd.

Прежде всего надо убедиться в том, что сервис iptables установлен и включен.

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables —flush

Примечание: На следующем шаге вам потребуется имя основого (внешнего) сетевого интерфейса сервера (например, вида eth* или ens*). Запомните это имя, выполнив команду ниже и выбрав тот сетевой интерфейс, которому назначен основной IP-адрес сервера, отображаемый в панели 1cloud:

Затем следует добавить в iptables правило, согласно которому соединения будут направляться в создаваемую подсеть OpenVPN:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Активируем IP-форвардинг в sysctl, отредактировав файл sysctl.conf для редактирования:

В самом верху добавляем следующую строку:

Сохраним документ нажатием CTRL+X, Y, Enter.

Перезапускаем сетевой сервис для применения внесенных изменений:

systemctl restart network.service

Шаг 5: Запуск OpenVPN

Теперь все готово к запуску OpenVPN. Добавим этот сервис в systemctl:

systemctl -f enable openvpn@server.service

openvpn —config /etc/openvpn/server.conf —daemon

На этом конфигурация со стороны сервера завершена. Проверим, что в системе успешно добавился новый виртуальный сетевой адаптер:

Настроим подключение со стороны клиента.

Шаг 6: Настройка клиента

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

Необходимые сертификаты (в нашем случае для клиента «client») хранятся в директории /easy-rsa:

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

Загрузить эти файлы на клиентское устройство можно с помощью SFTP или другим способом. Можно даже просто открыть их в текстовом редакторе и скопировать содержимое в новые файлы, созданные прямо непосредственно на пользовательском компьютере (главное — сохранить под идентичными именами).

Теперь создадим файл под client.ovpn — конфигурационный файл для клиента OpenVPN. В нем содержатся параметры подключения к серверу. Ниже представлено содержимое этого файла, в котором необходимо заменить имя клиента (в нашем случае client), указать корректный ip-адрес сервера и верный путь к файлам сертификатов и ключей:

client
dev tun
proto udp
remote 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key

Теперь этот файл можно использовать для подключения к серверу.

Подключение с компьютера под управлением Windows:

Скачиваем официальную версию бинарных файлов OpenVPN Community Edition с графическим интерфейсом управления.

Перемещаем .ovpn-файл в директорию C:\Program Files\OpenVPN\config, затем нажимаем Connect в графическом интерфейсе OpenVPN.

Для соединения можно использовать open-source инструмент Tunnelblick. Перемещаем .ovpn-файл в директорию

/Library/Application Support/Tunnelblick/Configurations или просто кликнаем по этому файлу.

На Linux нужно установить OpenVPN из официальных репозиториев конкретного дистрибутива. Затем запустить его с помощью команды:

sudo openvpn —config

На этом все. Теперь у нас есть полностью функциональная частная виртуальная сеть с собственным OpenVPN-сервером на CentOS 7 VPN.

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

Источник

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

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

Adblock
detector