Как установить и настроить OpenVPN на OpenSUSE Leap 42.1
На этой странице
- Шаг 1. Проверка включения TUN/TAP
- Шаг 2. Установите OpenVPN
- Шаг 3. Настройка Easy-RSA
- Шаг 4. Настройка OpenVPN
- Шаг 5. Настройка SuSEfirewall2
- Шаг 5. Настройка клиента
- Справочник
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