Поиск по сайту:

Как установить и настроить OpenVPN на OpenSUSE Leap 42.1


На этой странице

  1. Шаг 1. Проверка включения TUN/TAP
  2. Шаг 2. Установите OpenVPN
  3. Шаг 3. Настройка Easy-RSA
  4. Шаг 4. Настройка OpenVPN
  5. Шаг 5. Настройка SuSEfirewall2
  6. Шаг 5. Настройка клиента
  7. Справочник

VPN или виртуальная частная сеть — это безопасная частная сеть в общедоступной сети, такой как Интернет. VPN — это безопасный туннель через Интернет, который защищает ваш трафик данных и повышает конфиденциальность и безопасность в Интернете. Доступ к VPN ограничен безопасными методами аутентификации.

OpenVPN — это программное обеспечение с открытым исходным кодом для создания виртуальных частных сетей, оно использует библиотеку OpenSSL для шифрования туннелируемых данных и поддерживает транспорты UDP или TCP. OpenVPN может использовать общие ключи, механизмы аутентификации на основе сертификатов и имени пользователя/пароля.

В этом руководстве я покажу вам, как реализовать виртуальную частную сеть с помощью OpenVPNvpn под операционной системой Linux OpenSUSE Leap 42.1.

Предпосылки

  • OpenSUSE Leap 42.1 — 64-разрядная версия
  • Привилегии root
  • TUN/TAP включен

Шаг 1. Проверка, включен ли TUN/TAP

Если вы хотите создать VPN на своем сервере, убедитесь, что TUN/TAP установлен и включен. Вы можете проверить это с помощью команды ниже:

cat /dev/net/tun

Результат должен быть:

cat: /dev/net/tun: File descriptor in bad state

Шаг 2 — Установите OpenVPN

OpenVPN доступен в репозитории OpenSUSE. Вы можете установить его с помощью команды zypper:

zypper in openvpn

Шаг 3 - Настройка Easy-RSA

Затем загрузите easy-rsa для создания файла сертификата. easy-rsa — это утилита для управления сертификатами. С ее помощью вы можете создать корневой центр сертификации, а также запрашивать и подписывать сертификаты.

Перейдите в каталог OpenVPN и загрузите easy-rsa с помощью команды wget:

cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip

Распакуйте архив и переместите каталог easy-rsa:

unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/

Настроить ключ

Перейдите в каталог easy-rsa и отредактируйте файл vars, чтобы настроить ключ и сертификат:

cd easy-rsa/2.0/
vim vars

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

export KEY_SIZE=2048

Строки 56 и 59 - Через сколько дней истечет срок действия ключа и сертификата.

export CA_EXPIRE=3650
export KEY_EXPIRE=3650

Строка 64 - 72 - Измените значение по умолчанию для ключа и информации о сертификате.

export KEY_COUNTRY="US"
export KEY_PROVINCE="California"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL=""
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"

Сохраните файл и выйдите.

Инициализировать PKI

Затем инициализируйте PKI (инфраструктуру открытых ключей):

source ./vars && ./clean-all && ./build-ca

Мы оставим значение по умолчанию, просто нажмите «Enter».

Сгенерируйте параметры Диффи Хеллмана

Запустите команду ниже:

./build-dh

Вы увидите вывод:

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..................................

Сгенерируйте закрытый ключ сервера

Сгенерируйте закрытый ключ с именем \сервер\:

./build-key-server server

Нажмите Enter и введите \y\ для подтверждения создания ключа.

Генерация ключа и сертификата для клиента

Сгенерируйте клиентский ключ и сертификат с именем «client1»:

./build-key client1

Нажмите Enter и введите \y\, чтобы подтвердить генерацию ключа.

Ключ и сертификат были сгенерированы в директории \keys\. Теперь сделайте копию каталога ключей и поместите его в каталог openvpn.

cp -r keys/ /etc/openvpn/

Шаг 4 — Настройте OpenVPN

На этом этапе мы настроим OpenVPN для работы по протоколу UDP, используя порт 2034 для клиентского подключения. Создайте новый файл конфигурации server.conf в каталоге OpenVPN.

cd /etc/openvpn/
vim server.conf

Вставьте конфигурацию ниже:

#change with your port
port 2034

#You can use udp or tcp
proto udp

# "dev tun" will create a routed IP tunnel.
dev tun

#Certificate Configuration

#ca certificate
ca /etc/openvpn/keys/ca.crt

#Server Certificate
cert /etc/openvpn/keys/server.crt

#Server Key and keep this is secret
key /etc/openvpn/keys/server.key

#See the size a dh key in /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem

#Internal IP will get when already connect
server 10.10.2.0 255.255.255.0

#this line will redirect all traffic through our OpenVPN
push "redirect-gateway def1"

#Provide DNS servers to the client, you can use goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

#Enable multiple client to connect with same key
duplicate-cn

keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon

#openvpn status log
status /var/log/openvpn/openvpn-status.log

#enable log
log-append /var/log/openvpn/openvpn.log

#Log Level
verb 3

Сохраните файл и выйдите из редактора.

Затем создайте новый каталог и файл для журнала openvpn:

mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log

Шаг 5 — Настройте SuSEfirewall2

SuSEfirewall2 — это скрипт для создания правил iptables на основе файла \/etc/sysconfig/SuSEfirewall2\. Мы установим SuSEfirewall2, а затем настроим порт для доступа к OpenVPN, затем включим NAT с помощью сценария iptables для OpenVPN.

Установите SuSEfirewall2 с помощью команды zypper:

zypper in SuSEfirewall2

Теперь перейдите в каталог sysconfig и отредактируйте файл конфигурации SuSEfirewall2:

cd /etc/sysconfig/
vim SuSEfirewall2

Строка 134 - включить маршрут.

FW_ROUTE="yes"

Строка 253 — включить TCP-порт 22 для доступа по SSH из-за пределов сети.

FW_SERVICES_EXT_UDP="22"

Строка 267 — включить порт udp для доступа клиента openvpn — порт 2034.

FW_SERVICES_EXT_UDP="2034"

Строка 877 - Включить пользовательские правила SuSEfirewall2.

FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

Сохранить и выйти.

Затем отредактируйте пользовательские правила SuSEfirewall2 в каталоге сценариев.

cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom

Внутри директивы «fw_custom_after_chain_creation» вставьте новые правила iptables для OpenVPN:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE

Сохранить и выйти.

Примечание:

IP 10.10.2.0/24 — это сеть из конфигурационного файла server.conf OpenVPN.

Теперь мы можем включить переадресацию, добавив эту новую строку конфигурации в файл sysctl.conf.

vim /etc/sysctl.conf

Вставьте конфигурацию ниже:

net.ipv4.ip_forward = 1

Сохранить и выйти.

Примечание:

Если у вас уже есть строка в файле, измените значение с \0\ на \1\ вместо добавления новой строки.

Теперь выполните приведенную ниже команду, чтобы применить изменение конфигурации.

sysctl -p

Запустите SuSEfirewall2 и сервер OpenVPN:

systemctl start SuSEfirewall2
systemctl start

Если у вас есть ошибка, вы можете увидеть подробное сообщение об ошибке в журнале OpenVPN.

Добавляем все службы в автозагрузку системы:

systemctl enable SuSEfirewall2
systemctl enable

Шаг 5 — Настройте клиент

Загрузите ключ клиента и сертификат из каталога ключей на локальный компьютер. Вы можете использовать команду scp или sftp, здесь я использую scp:

Команда, которая должна быть запущена на локальном компьютере.

scp :~/etc/openvpn/keys/client1.key ~/myvpn/

В каталоге myvpn создайте новый файл конфигурации для клиента \client1.ovpn\.

cd ~/myvpn/
vim client1.ovpn

Вставьте конфигурацию ниже:

client
dev tun
proto udp

#Server IP and Port
remote SERVERIP 2034

resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo

Сохранить и выйти.

Чтобы подключиться к нашей VPN, вы можете установить VPN-клиент или, если вы используете Linux, вы можете использовать \Network-Manager\. Если вы хотите протестировать VPN с терминалом, вы можете использовать следующую команду:

cd ~/myvpn/
sudo openvpn --config client1.ovpn

Ссылка