Как установить OpenVPN на AlmaLinux 8, Centos 8 или Rocky Linux 8
VPN «Виртуальная частная сеть» — это частная сеть, которая скрывает личность пользователя, происхождение и данные с помощью шифрования. Его основное использование — конфиденциальность данных пользователя и безопасное подключение к Интернету. Поскольку он скрывает данные, он позволяет вам получить доступ к данным, которые обычно блокируются географическими ограничениями.
OpenVPN — это программное обеспечение VPN с открытым исходным кодом, которое само по себе является и программным обеспечением, и протоколом. Он очень высоко ценится, поскольку продолжает обходить брандмауэры.
В этом руководстве шаг за шагом показано, как установить и настроить сервер OpenVPN и подключить его к клиенту OpenVPN. Мы будем использовать сервер CentOS 8 для установки, та же процедура будет работать и на Rocky Linux 8 и AlmaLinux 8.
Предпосылки
Терминальный доступ
Учетная запись пользователя с привилегиями sudo.
Примечание . Команды в этом руководстве выполняются в CentOS 8. Все методы в руководстве также подходят для CentOS 7.
Система обновлений и обновлений
Убедитесь, что ваша система обновлена, обновив и обновив вашу систему, выполнив следующую команду.
sudo dnf update && sudo dnf upgrade
Отключить SELinux
Затем вам нужно отключить SELinux, поскольку он конфликтует с OpenVPN и препятствует его запуску.
Чтобы отключить SELinux, откройте файл конфигурации SELinux с помощью следующей команды.
sudo nano /etc/selinux/config
После открытия файла в редакторе nano. Найдите SELinux и измените его значение на disabled или просто замените его следующей строкой кода.
SELINUX=disabled
Нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.
Включить IP-переадресацию
Теперь вам нужно включить переадресацию IP, чтобы входящие пакеты можно было пересылать в разные сети.
Чтобы включить переадресацию IP, откройте файл конфигурации sysctl с помощью редактора nano.
sudo nano /etc/sysctl.conf
Добавьте в файл следующий код.
net.ipv4.ip_forward = 1
Нажмите Ctrl+O, а затем Ctrl+X.
Установить OpenVPN-сервер
Обязательно установите пакет epel-release.
sudo dnf install epel-release -y
Теперь вы можете установить OpenVPN, используя следующую команду.
sudo dnf install openvpn -y
Теперь, когда OpenVPN установлен. Перейдите в папку его установки и загрузите easy-rsa. Easy-RSA создает центры сертификации (ЦС) и управляет ими.
cd /etc/openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
Извлеките загруженный zip-файл.
sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz
И переместите файл EasyRSA в его папку.
sudo mv EasyRSA-v3.0.6 easy-rsa
Настройка Easy-RSA
Далее нам нужно добавить и создать SSL-сертификат. Для этого сначала перейдите в каталог easy-rsa.
cd /etc/openvpn/easy-rsa
Чтобы открыть файл vars в редакторе nano, выполните следующую команду.
sudo nano vars
Теперь скопируйте и вставьте следующие строки кода в файл vars.
set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "USA" set_var EASYRSA_REQ_PROVINCE "Newyork" set_var EASYRSA_REQ_CITY "Newyork" set_var EASYRSA_REQ_ORG "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "" set_var EASYRSA_REQ_OU "osradar EASY CA" set_var EASYRSA_KEY_SIZE 2048 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 365 set_var EASYRSA_NS_SUPPORT "no" set_var EASYRSA_NS_COMMENT "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf" set_var EASYRSA_DIGEST "sha256"
Вы можете изменить значение страны, города, провинции и адреса электронной почты в соответствии с вашими требованиями.
Нажмите Ctrl+O, а затем Ctrl+X.
Теперь запустите каталог PKI с помощью следующей команды.
./easyrsa init-pki
Наконец, вы можете создать свой сертификат CA.
sudo ./easyrsa build-ca
Создание файлов сертификатов сервера
Используйте следующую команду, чтобы получить пару ключей и запрос сертификата.
sudo ./easyrsa gen-req infoit-server nopass
Подпишите ключ сервера с помощью CA
Чтобы подписать ключ сервера с помощью ЦС, выполните следующую команду.
sudo ./easyrsa sign-req server infoit-server
Нам нужен ключ Диффи-Хеллмана для обмена ключами. Сгенерируйте ключ, выполнив следующую команду.
sudo ./easyrsa gen-dh
Затем скопируйте все эти файлы в каталог /etc/openvpn/server/ .
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/infoit-server.key /etc/openvpn/server/ cp pki/issued/infoit-server.crt /etc/openvpn/server/
Сгенерировать клиентский ключ и сертификат
Вы можете получить ключ клиента, выполнив следующую команду.
sudo ./easyrsa gen-req client nopass
Затем подпишите свой клиентский ключ сгенерированным сертификатом CA.
sudo ./easyrsa sign-req client client
Скопируйте эти файлы в каталог /etc/openvpn/client/
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/client.crt /etc/openvpn/client/ cp pki/private/client.key /etc/openvpn/client/
Настроить OpenVPN-сервер
Создайте и откройте новый файл конфигурации в каталоге клиента с помощью следующей команды.
sudo nano /etc/openvpn/server/server.conf
Затем добавьте следующие строки кода в файл.
port 1194 proto udp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/infoit-server.crt key /etc/openvpn/server/infoit-server.key dh /etc/openvpn/server/dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" duplicate-cn cipher AES-256-CBC tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 auth SHA512 auth-nocache keepalive 20 60 persist-key persist-tun compress lz4 daemon user nobody group nobody log-append /var/log/openvpn.log verb 3
Нажмите Ctrl+O и Ctrl+X.
Запустите и включите службу OpenVPN
Ваш OpenVPN готов к запуску. Запустите и включите сервер с помощью следующих команд.
sudo systemctl start openvpn-server@server sudo systemctl enable openvpn-server@server
Вы можете увидеть и проверить активное состояние с помощью следующей команды.
systemctl status openvpn-server@server
Новый сетевой интерфейс будет создан при успешном запуске сервера OpenVPN. Выполните следующую команду, чтобы увидеть подробности.
ifconfig
Создайте файл конфигурации клиента
Следующим шагом является подключение клиента к серверу OpenVPN. Для этого нам нужен файл конфигурации клиента. Чтобы сгенерировать файл конфигурации клиента, выполните следующую команду.
sudo nano /etc/openvpn/client/client.ovpn
Теперь скопируйте и вставьте следующий код в файл.
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert client.crt key client.key cipher AES-256-CBC auth SHA512 auth-nocache tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 resolv-retry infinite compress lz4 nobind persist-key persist-tun mute-replay-warnings verb 3
Нажмите Ctrl+O, чтобы сохранить изменения, и нажмите Ctrl+X, чтобы выйти из редактора.
Настроить маршрутизацию
Установите настройки службы OpenVPN с помощью следующих команд, чтобы разрешить ее через брандмауэр.
firewall-cmd --permanent --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-interface=tun0
firewall-cmd --add-masquerade firewall-cmd --permanent --add-masquerade
Настройте маршрутизацию для перенаправления входящего трафика из VPN в локальную сеть.
routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}') firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE
Перезагрузите, чтобы изменения вступили в силу.
firewall-cmd --reload
Установите и используйте OpenVPN на клиентской машине
Вы должны установить epel-release и OpenVPN так же, как и на стороне сервера.
dnf install epel-release -y dnf install openvpn -y
Теперь скопируйте файлы конфигурации клиента с сервера, используя приведенную ниже команду.
sudo scp -r root@vpn-server-ip:/etc/openvpn/client .
Перейдите в каталог клиента и подключитесь к серверу OpenVPN, используя следующие команды.
cd client openvpn --config client.ovpn
Запустите ifconfig, чтобы увидеть назначенный IP-адрес.
ifconfig tun0