Установка и настройка VPN сервера OpenVPN — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Установка и настройка VPN сервера (OpenVPN) = == 1. Подготовка системы == * Войдите в систему под…»)
 
 
Строка 6: Строка 6:
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
 
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
  
== 2. Установка OpenVPN ===
+
== 2. Установка OpenVPN ==
  
 
=== Обновление системы ===
 
=== Обновление системы ===
  
 
1. Обновите систему:
 
1. Обновите систему:
<code>sudo apt update</code>
+
<pre>sudo apt update</pre>
  
 
2. Установите необходимые пакеты:
 
2. Установите необходимые пакеты:
<code>sudo apt install -y openvpn easy-rsa</code>
+
<pre>sudo apt install -y openvpn easy-rsa</pre>
  
 
3. Проверьте версию OpenVPN:
 
3. Проверьте версию OpenVPN:
<code>openvpn --version</code>
+
<pre>openvpn --version</pre>
  
 
=== Создание директорий ===
 
=== Создание директорий ===
  
 
1. Создайте директорию для OpenVPN:
 
1. Создайте директорию для OpenVPN:
<code>sudo mkdir -p /etc/openvpn</code>
+
<pre>sudo mkdir -p /etc/openvpn</pre>
  
 
2. Создайте директорию для сертификатов:
 
2. Создайте директорию для сертификатов:
<code>sudo mkdir -p /etc/openvpn/easy-rsa</code>
+
<pre>sudo mkdir -p /etc/openvpn/easy-rsa</pre>
  
 
3. Скопируйте easy-rsa:
 
3. Скопируйте easy-rsa:
<code>sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/</code>
+
<pre>sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/</pre>
  
 
4. Установите права доступа:
 
4. Установите права доступа:
<code>sudo chown -R root:root /etc/openvpn/easy-rsa</code>
+
<pre>sudo chown -R root:root /etc/openvpn/easy-rsa</pre>
<code>sudo chmod -R 755 /etc/openvpn/easy-rsa</code>
+
<pre>sudo chmod -R 755 /etc/openvpn/easy-rsa</pre>
  
== 3. Настройка PKI (Public Key Infrastructure) ===
+
== 3. Настройка PKI (Public Key Infrastructure) ==
  
 
=== Инициализация PKI ===
 
=== Инициализация PKI ===
  
 
1. Перейдите в директорию easy-rsa:
 
1. Перейдите в директорию easy-rsa:
<code>cd /etc/openvpn/easy-rsa</code>
+
<pre>cd /etc/openvpn/easy-rsa</pre>
  
 
2. Инициализируйте PKI:
 
2. Инициализируйте PKI:
<code>sudo ./easyrsa init-pki</code>
+
<pre>sudo ./easyrsa init-pki</pre>
  
 
3. Создайте CA (Certificate Authority):
 
3. Создайте CA (Certificate Authority):
<code>sudo ./easyrsa build-ca nopass</code>
+
<pre>sudo ./easyrsa build-ca nopass</pre>
  
 
4. Создайте серверный сертификат:
 
4. Создайте серверный сертификат:
<code>sudo ./easyrsa gen-req server nopass</code>
+
<pre>sudo ./easyrsa gen-req server nopass</pre>
<code>sudo ./easyrsa sign-req server server</code>
+
<pre>sudo ./easyrsa sign-req server server</pre>
  
 
5. Создайте клиентский сертификат:
 
5. Создайте клиентский сертификат:
<code>sudo ./easyrsa gen-req client1 nopass</code>
+
<pre>sudo ./easyrsa gen-req client1 nopass</pre>
<code>sudo ./easyrsa sign-req client client1</code>
+
<pre>sudo ./easyrsa sign-req client client1</pre>
  
 
6. Создайте Diffie-Hellman параметры:
 
6. Создайте Diffie-Hellman параметры:
<code>sudo ./easyrsa gen-dh</code>
+
<pre>sudo ./easyrsa gen-dh</pre>
  
 
7. Создайте TLS ключ:
 
7. Создайте TLS ключ:
<code>sudo openvpn --genkey --secret ta.key</code>
+
<pre>sudo openvpn --genkey --secret ta.key</pre>
  
 
=== Копирование сертификатов ===
 
=== Копирование сертификатов ===
  
 
1. Скопируйте сертификаты в директорию OpenVPN:
 
1. Скопируйте сертификаты в директорию OpenVPN:
<code>sudo cp pki/ca.crt /etc/openvpn/</code>
+
<pre>sudo cp pki/ca.crt /etc/openvpn/</pre>
<code>sudo cp pki/issued/server.crt /etc/openvpn/</code>
+
<pre>sudo cp pki/issued/server.crt /etc/openvpn/</pre>
<code>sudo cp pki/private/server.key /etc/openvpn/</code>
+
<pre>sudo cp pki/private/server.key /etc/openvpn/</pre>
<code>sudo cp pki/dh.pem /etc/openvpn/</code>
+
<pre>sudo cp pki/dh.pem /etc/openvpn/</pre>
<code>sudo cp ta.key /etc/openvpn/</code>
+
<pre>sudo cp ta.key /etc/openvpn/</pre>
  
 
2. Установите права доступа:
 
2. Установите права доступа:
<code>sudo chmod 600 /etc/openvpn/server.key</code>
+
<pre>sudo chmod 600 /etc/openvpn/server.key</pre>
<code>sudo chmod 600 /etc/openvpn/ta.key</code>
+
<pre>sudo chmod 600 /etc/openvpn/ta.key</pre>
<code>sudo chmod 644 /etc/openvpn/ca.crt</code>
+
<pre>sudo chmod 644 /etc/openvpn/ca.crt</pre>
<code>sudo chmod 644 /etc/openvpn/server.crt</code>
+
<pre>sudo chmod 644 /etc/openvpn/server.crt</pre>
<code>sudo chmod 644 /etc/openvpn/dh.pem</code>
+
<pre>sudo chmod 644 /etc/openvpn/dh.pem</pre>
  
== 4. Создание конфигурации сервера ===
+
== 4. Создание конфигурации сервера ==
  
 
=== Основная конфигурация ===
 
=== Основная конфигурация ===
  
 
1. Создайте конфигурационный файл сервера:
 
1. Создайте конфигурационный файл сервера:
<code>sudo nano /etc/openvpn/server.conf</code>
+
<pre>sudo nano /etc/openvpn/server.conf</pre>
  
 
2. Добавьте базовую конфигурацию:
 
2. Добавьте базовую конфигурацию:
<code># Порт и протокол
+
<pre>\# Порт и протокол
 
port 1194
 
port 1194
 
proto udp
 
proto udp
  
# Директории сертификатов
+
\# Директории сертификатов
 
ca ca.crt
 
ca ca.crt
 
cert server.crt
 
cert server.crt
Строка 95: Строка 95:
 
dh dh.pem
 
dh dh.pem
  
# Сеть для VPN клиентов
+
\# Сеть для VPN клиентов
 
server 10.8.0.0 255.255.255.0
 
server 10.8.0.0 255.255.255.0
  
# Маршруты для клиентов
+
\# Маршруты для клиентов
 
push "redirect-gateway def1 bypass-dhcp"
 
push "redirect-gateway def1 bypass-dhcp"
 
push "dhcp-option DNS 8.8.8.8"
 
push "dhcp-option DNS 8.8.8.8"
 
push "dhcp-option DNS 8.8.4.4"
 
push "dhcp-option DNS 8.8.4.4"
  
# Настройки безопасности
+
\# Настройки безопасности
 
tls-auth ta.key 0
 
tls-auth ta.key 0
 
cipher AES-256-GCM
 
cipher AES-256-GCM
 
auth SHA256
 
auth SHA256
  
# Настройки клиентов
+
\# Настройки клиентов
 
client-to-client
 
client-to-client
 
keepalive 10 120
 
keepalive 10 120
 
comp-lzo
 
comp-lzo
  
# Логирование
+
\# Логирование
 
log-append /var/log/openvpn.log
 
log-append /var/log/openvpn.log
 
verb 3
 
verb 3
  
# Управление клиентами
+
\# Управление клиентами
 
client-config-dir /etc/openvpn/ccd
 
client-config-dir /etc/openvpn/ccd
 
status /var/log/openvpn-status.log
 
status /var/log/openvpn-status.log
</code>
+
</pre>
  
 
=== Расширенная конфигурация ===
 
=== Расширенная конфигурация ===
  
 
1. Для более продвинутой настройки добавьте:
 
1. Для более продвинутой настройки добавьте:
<code># Дополнительные настройки безопасности
+
<pre>\# Дополнительные настройки безопасности
 
tls-version-min 1.2
 
tls-version-min 1.2
 
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
 
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
  
# Настройки производительности
+
\# Настройки производительности
 
sndbuf 393216
 
sndbuf 393216
 
rcvbuf 393216
 
rcvbuf 393216
  
# Настройки сжатия
+
\# Настройки сжатия
 
comp-lzo adaptive
 
comp-lzo adaptive
  
# Настройки подключения
+
\# Настройки подключения
 
max-clients 100
 
max-clients 100
 
duplicate-cn
 
duplicate-cn
  
# Настройки логирования
+
\# Настройки логирования
 
mute 20
 
mute 20
</code>
+
</pre>
  
== 5. Настройка маршрутизации ===
+
== 5. Настройка маршрутизации ==
  
 
=== Включение IP forwarding ===
 
=== Включение IP forwarding ===
  
 
1. Включите IP forwarding:
 
1. Включите IP forwarding:
<code>echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf</code>
+
<pre>echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf</pre>
  
 
2. Примените изменения:
 
2. Примените изменения:
<code>sudo sysctl -p</code>
+
<pre>sudo sysctl -p</pre>
  
 
3. Проверьте настройку:
 
3. Проверьте настройку:
<code>cat /proc/sys/net/ipv4/ip_forward</code>
+
<pre>cat /proc/sys/net/ipv4/ip_forward</pre>
  
 
=== Настройка iptables ===
 
=== Настройка iptables ===
  
 
1. Создайте скрипт для настройки iptables:
 
1. Создайте скрипт для настройки iptables:
<code>sudo nano /etc/openvpn/iptables-rules.sh</code>
+
<pre>sudo nano /etc/openvpn/iptables-rules.sh</pre>
  
 
2. Добавьте правила:
 
2. Добавьте правила:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Очистка существующих правил
+
\# Очистка существующих правил
 
iptables -F
 
iptables -F
 
iptables -t nat -F
 
iptables -t nat -F
  
# Базовые правила
+
\# Базовые правила
 
iptables -P INPUT ACCEPT
 
iptables -P INPUT ACCEPT
 
iptables -P FORWARD ACCEPT
 
iptables -P FORWARD ACCEPT
 
iptables -P OUTPUT ACCEPT
 
iptables -P OUTPUT ACCEPT
  
# Разрешение трафика через VPN
+
\# Разрешение трафика через VPN
 
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
 
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
 
iptables -A FORWARD -i tun+ -j ACCEPT
 
iptables -A FORWARD -i tun+ -j ACCEPT
Строка 180: Строка 180:
 
iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
 
iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
  
# Разрешение OpenVPN порта
+
\# Разрешение OpenVPN порта
 
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
 
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
  
# Сохранение правил
+
\# Сохранение правил
 
iptables-save > /etc/iptables/rules.v4
 
iptables-save > /etc/iptables/rules.v4
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /etc/openvpn/iptables-rules.sh</code>
+
<pre>sudo chmod +x /etc/openvpn/iptables-rules.sh</pre>
  
 
4. Запустите скрипт:
 
4. Запустите скрипт:
<code>sudo /etc/openvpn/iptables-rules.sh</code>
+
<pre>sudo /etc/openvpn/iptables-rules.sh</pre>
  
== 6. Настройка клиентских конфигураций ===
+
== 6. Настройка клиентских конфигураций ==
  
 
=== Создание клиентских конфигураций ===
 
=== Создание клиентских конфигураций ===
  
 
1. Создайте директорию для клиентских конфигураций:
 
1. Создайте директорию для клиентских конфигураций:
<code>sudo mkdir -p /etc/openvpn/clients</code>
+
<pre>sudo mkdir -p /etc/openvpn/clients</pre>
  
 
2. Создайте базовую клиентскую конфигурацию:
 
2. Создайте базовую клиентскую конфигурацию:
<code>sudo nano /etc/openvpn/clients/client1.ovpn</code>
+
<pre>sudo nano /etc/openvpn/clients/client1.ovpn</pre>
  
 
3. Добавьте содержимое:
 
3. Добавьте содержимое:
<code>client
+
<pre>client
 
dev tun
 
dev tun
 
proto udp
 
proto udp
Строка 239: Строка 239:
 
-----END OpenVPN Static key V1-----
 
-----END OpenVPN Static key V1-----
 
</tls-auth>
 
</tls-auth>
</code>
+
</pre>
  
 
=== Создание скрипта для генерации клиентов ===
 
=== Создание скрипта для генерации клиентов ===
  
 
1. Создайте скрипт для автоматического создания клиентов:
 
1. Создайте скрипт для автоматического создания клиентов:
<code>sudo nano /etc/openvpn/create-client.sh</code>
+
<pre>sudo nano /etc/openvpn/create-client.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
 
if [ -z "$1" ]; then
 
if [ -z "$1" ]; then
Строка 257: Строка 257:
 
cd /etc/openvpn/easy-rsa
 
cd /etc/openvpn/easy-rsa
  
# Создание клиентского сертификата
+
\# Создание клиентского сертификата
 
./easyrsa gen-req $CLIENT_NAME nopass
 
./easyrsa gen-req $CLIENT_NAME nopass
 
./easyrsa sign-req client $CLIENT_NAME
 
./easyrsa sign-req client $CLIENT_NAME
  
# Создание .ovpn файла
+
\# Создание .ovpn файла
 
cat > /etc/openvpn/clients/$CLIENT_NAME.ovpn << EOF
 
cat > /etc/openvpn/clients/$CLIENT_NAME.ovpn << EOF
 
client
 
client
Строка 293: Строка 293:
  
 
echo "Client configuration created: /etc/openvpn/clients/$CLIENT_NAME.ovpn"
 
echo "Client configuration created: /etc/openvpn/clients/$CLIENT_NAME.ovpn"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /etc/openvpn/create-client.sh</code>
+
<pre>sudo chmod +x /etc/openvpn/create-client.sh</pre>
  
 
4. Создайте клиента:
 
4. Создайте клиента:
<code>sudo /etc/openvpn/create-client.sh client2</code>
+
<pre>sudo /etc/openvpn/create-client.sh client2</pre>
  
== 7. Запуск и управление OpenVPN ===
+
== 7. Запуск и управление OpenVPN ==
  
 
=== Запуск OpenVPN ===
 
=== Запуск OpenVPN ===
  
 
1. Запустите OpenVPN сервер:
 
1. Запустите OpenVPN сервер:
<code>sudo systemctl start openvpn@server</code>
+
<pre>sudo systemctl start openvpn@server</pre>
  
 
2. Включите автозапуск:
 
2. Включите автозапуск:
<code>sudo systemctl enable openvpn@server</code>
+
<pre>sudo systemctl enable openvpn@server</pre>
  
 
3. Проверьте статус:
 
3. Проверьте статус:
<code>sudo systemctl status openvpn@server</code>
+
<pre>sudo systemctl status openvpn@server</pre>
  
 
=== Управление сервисом ===
 
=== Управление сервисом ===
  
 
1. '''Запуск сервера''':
 
1. '''Запуск сервера''':
<code>sudo systemctl start openvpn@server</code>
+
<pre>sudo systemctl start openvpn@server</pre>
  
 
2. '''Остановка сервера''':
 
2. '''Остановка сервера''':
<code>sudo systemctl stop openvpn@server</code>
+
<pre>sudo systemctl stop openvpn@server</pre>
  
 
3. '''Перезапуск сервера''':
 
3. '''Перезапуск сервера''':
<code>sudo systemctl restart openvpn@server</code>
+
<pre>sudo systemctl restart openvpn@server</pre>
  
 
4. '''Проверка статуса''':
 
4. '''Проверка статуса''':
<code>sudo systemctl status openvpn@server</code>
+
<pre>sudo systemctl status openvpn@server</pre>
  
 
5. '''Просмотр логов''':
 
5. '''Просмотр логов''':
<code>sudo journalctl -u openvpn@server -f</code>
+
<pre>sudo journalctl -u openvpn@server -f</pre>
  
== 8. Настройка файрвола ===
+
== 8. Настройка файрвола ==
  
 
=== Настройка UFW ===
 
=== Настройка UFW ===
  
 
1. Разрешите OpenVPN порт:
 
1. Разрешите OpenVPN порт:
<code>sudo ufw allow 1194/udp</code>
+
<pre>sudo ufw allow 1194/udp</pre>
  
 
2. Разрешите SSH (если еще не разрешен):
 
2. Разрешите SSH (если еще не разрешен):
<code>sudo ufw allow ssh</code>
+
<pre>sudo ufw allow ssh</pre>
  
 
3. Включите UFW:
 
3. Включите UFW:
<code>sudo ufw enable</code>
+
<pre>sudo ufw enable</pre>
  
 
4. Проверьте статус:
 
4. Проверьте статус:
<code>sudo ufw status</code>
+
<pre>sudo ufw status</pre>
  
 
=== Настройка iptables (альтернатива) ===
 
=== Настройка iptables (альтернатива) ===
  
 
1. Создайте правила для OpenVPN:
 
1. Создайте правила для OpenVPN:
<code>sudo iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT</code>
+
<pre>sudo iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT</pre>
  
 
2. Настройте NAT для VPN трафика:
 
2. Настройте NAT для VPN трафика:
<code>sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE</code>
+
<pre>sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE</pre>
  
 
3. Сохраните правила:
 
3. Сохраните правила:
<code>sudo iptables-save > /etc/iptables/rules.v4</code>
+
<pre>sudo iptables-save > /etc/iptables/rules.v4</pre>
  
== 9. Мониторинг и управление ===
+
== 9. Мониторинг и управление ==
  
 
=== Просмотр подключенных клиентов ===
 
=== Просмотр подключенных клиентов ===
  
 
1. Просмотр статуса подключений:
 
1. Просмотр статуса подключений:
<code>sudo cat /var/log/openvpn-status.log</code>
+
<pre>sudo cat /var/log/openvpn-status.log</pre>
  
 
2. Просмотр активных подключений:
 
2. Просмотр активных подключений:
<code>sudo netstat -tulnp | grep :1194</code>
+
<pre>sudo netstat -tulnp | grep :1194</pre>
  
 
3. Просмотр туннельных интерфейсов:
 
3. Просмотр туннельных интерфейсов:
<code>ip addr show tun0</code>
+
<pre>ip addr show tun0</pre>
  
 
=== Управление клиентами ===
 
=== Управление клиентами ===
  
 
1. '''Отключение клиента''':
 
1. '''Отключение клиента''':
<code>echo "kill CLIENT_NAME" | sudo nc -U /var/run/openvpn.server.sock</code>
+
<pre>echo "kill CLIENT_NAME" | sudo nc -U /var/run/openvpn.server.sock</pre>
  
 
2. '''Перезапуск сервера''':
 
2. '''Перезапуск сервера''':
<code>sudo systemctl restart openvpn@server</code>
+
<pre>sudo systemctl restart openvpn@server</pre>
  
 
3. '''Просмотр логов в реальном времени''':
 
3. '''Просмотр логов в реальном времени''':
<code>sudo tail -f /var/log/openvpn.log</code>
+
<pre>sudo tail -f /var/log/openvpn.log</pre>
  
== 10. Настройка клиентских устройств ===
+
== 10. Настройка клиентских устройств ==
  
 
=== Windows клиент ===
 
=== Windows клиент ===
Строка 394: Строка 394:
  
 
1. Установите OpenVPN:
 
1. Установите OpenVPN:
<code>sudo apt install openvpn</code>
+
<pre>sudo apt install openvpn</pre>
  
 
2. Скопируйте .ovpn файл:
 
2. Скопируйте .ovpn файл:
<code>sudo cp client1.ovpn /etc/openvpn/</code>
+
<pre>sudo cp client1.ovpn /etc/openvpn/</pre>
  
 
3. Подключитесь:
 
3. Подключитесь:
<code>sudo openvpn --config /etc/openvpn/client1.ovpn</code>
+
<pre>sudo openvpn --config /etc/openvpn/client1.ovpn</pre>
  
 
=== Android/iOS клиент ===
 
=== Android/iOS клиент ===
Строка 408: Строка 408:
 
3. Подключитесь к VPN
 
3. Подключитесь к VPN
  
== 11. Дополнительные настройки ===
+
== 11. Дополнительные настройки ==
  
 
=== Настройка DNS ===
 
=== Настройка DNS ===
  
 
1. Установите и настройте DNS сервер:
 
1. Установите и настройте DNS сервер:
<code>sudo apt install -y dnsmasq</code>
+
<pre>sudo apt install -y dnsmasq</pre>
  
 
2. Настройте dnsmasq:
 
2. Настройте dnsmasq:
<code>sudo nano /etc/dnsmasq.conf</code>
+
<pre>sudo nano /etc/dnsmasq.conf</pre>
  
 
3. Добавьте настройки:
 
3. Добавьте настройки:
<code>interface=tun0
+
<pre>interface=tun0
 
dhcp-range=10.8.0.2,10.8.0.10,255.255.255.0,12h
 
dhcp-range=10.8.0.2,10.8.0.10,255.255.255.0,12h
</code>
+
</pre>
  
 
4. Запустите dnsmasq:
 
4. Запустите dnsmasq:
<code>sudo systemctl start dnsmasq</code>
+
<pre>sudo systemctl start dnsmasq</pre>
<code>sudo systemctl enable dnsmasq</code>
+
<pre>sudo systemctl enable dnsmasq</pre>
  
 
=== Настройка логирования ===
 
=== Настройка логирования ===
  
 
1. Настройте ротацию логов:
 
1. Настройте ротацию логов:
<code>sudo nano /etc/logrotate.d/openvpn</code>
+
<pre>sudo nano /etc/logrotate.d/openvpn</pre>
  
 
2. Добавьте конфигурацию:
 
2. Добавьте конфигурацию:
<code>/var/log/openvpn.log {
+
<pre>/var/log/openvpn.log {
 
     daily
 
     daily
 
     missingok
 
     missingok
Строка 445: Строка 445:
 
     endscript
 
     endscript
 
}
 
}
</code>
+
</pre>
  
== 12. Безопасность ===
+
== 12. Безопасность ==
  
 
=== Дополнительные меры безопасности ===
 
=== Дополнительные меры безопасности ===
  
 
1. '''Ограничение доступа по IP''':
 
1. '''Ограничение доступа по IP''':
<code># В server.conf добавьте:
+
<pre>\# В server.conf добавьте:
 
client-config-dir /etc/openvpn/ccd
 
client-config-dir /etc/openvpn/ccd
</code>
+
</pre>
  
 
2. '''Создание файла конфигурации клиента''':
 
2. '''Создание файла конфигурации клиента''':
<code>sudo nano /etc/openvpn/ccd/client1</code>
+
<pre>sudo nano /etc/openvpn/ccd/client1</pre>
  
 
3. '''Добавьте ограничения''':
 
3. '''Добавьте ограничения''':
<code>ifconfig-push 10.8.0.10 10.8.0.9
+
<pre>ifconfig-push 10.8.0.10 10.8.0.9
 
iroute 192.168.1.0 255.255.255.0
 
iroute 192.168.1.0 255.255.255.0
</code>
+
</pre>
  
 
=== Мониторинг безопасности ===
 
=== Мониторинг безопасности ===
  
 
1. Создайте скрипт мониторинга:
 
1. Создайте скрипт мониторинга:
<code>sudo nano /usr/local/bin/vpn-monitor.sh</code>
+
<pre>sudo nano /usr/local/bin/vpn-monitor.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Проверка статуса OpenVPN
+
\# Проверка статуса OpenVPN
 
if ! systemctl is-active --quiet openvpn@server; then
 
if ! systemctl is-active --quiet openvpn@server; then
 
     echo "OpenVPN server is down!" | mail -s "VPN Alert" admin@example.com
 
     echo "OpenVPN server is down!" | mail -s "VPN Alert" admin@example.com
 
fi
 
fi
  
# Проверка количества подключений
+
\# Проверка количества подключений
 
CONNECTIONS=$(cat /var/log/openvpn-status.log | grep -c "CLIENT_LIST")
 
CONNECTIONS=$(cat /var/log/openvpn-status.log | grep -c "CLIENT_LIST")
 
if [ $CONNECTIONS -gt 50 ]; then
 
if [ $CONNECTIONS -gt 50 ]; then
 
     echo "Too many VPN connections: $CONNECTIONS" | mail -s "VPN Alert" admin@example.com
 
     echo "Too many VPN connections: $CONNECTIONS" | mail -s "VPN Alert" admin@example.com
 
fi
 
fi
</code>
+
</pre>
  
 
3. Добавьте в crontab:
 
3. Добавьте в crontab:
<code>*/5 * * * * /usr/local/bin/vpn-monitor.sh</code>
+
<pre>*/5 * * * * /usr/local/bin/vpn-monitor.sh</pre>
  
== 13. Устранение неполадок ===
+
== 13. Устранение неполадок ==
  
 
=== Частые проблемы ===
 
=== Частые проблемы ===
  
 
1. '''OpenVPN не запускается''':
 
1. '''OpenVPN не запускается''':
* Проверьте конфигурацию: <code>sudo openvpn --config /etc/openvpn/server.conf --test-crypto</code>
+
* Проверьте конфигурацию: <pre>sudo openvpn --config /etc/openvpn/server.conf --test-crypto</pre>
 
* Проверьте права доступа к сертификатам
 
* Проверьте права доступа к сертификатам
* Проверьте логи: <code>sudo journalctl -u openvpn@server</code>
+
* Проверьте логи: <pre>sudo journalctl -u openvpn@server</pre>
  
 
2. '''Клиенты не могут подключиться''':
 
2. '''Клиенты не могут подключиться''':
Строка 502: Строка 502:
  
 
3. '''Проблемы с маршрутизацией''':
 
3. '''Проблемы с маршрутизацией''':
* Проверьте IP forwarding: <code>cat /proc/sys/net/ipv4/ip_forward</code>
+
* Проверьте IP forwarding: <pre>cat /proc/sys/net/ipv4/ip_forward</pre>
 
* Проверьте iptables правила
 
* Проверьте iptables правила
 
* Проверьте сетевые интерфейсы
 
* Проверьте сетевые интерфейсы
Строка 509: Строка 509:
  
 
1. '''Проверка статуса''':
 
1. '''Проверка статуса''':
<code>sudo systemctl status openvpn@server</code>
+
<pre>sudo systemctl status openvpn@server</pre>
  
 
2. '''Проверка портов''':
 
2. '''Проверка портов''':
<code>sudo netstat -tulnp | grep :1194</code>
+
<pre>sudo netstat -tulnp | grep :1194</pre>
  
 
3. '''Проверка туннеля''':
 
3. '''Проверка туннеля''':
<code>ip addr show tun0</code>
+
<pre>ip addr show tun0</pre>
  
 
4. '''Проверка маршрутов''':
 
4. '''Проверка маршрутов''':
<code>ip route show</code>
+
<pre>ip route show</pre>
  
 
== Заключение ==
 
== Заключение ==

Текущая версия на 10:45, 15 октября 2025

Содержание

Установка и настройка VPN сервера (OpenVPN)

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

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка OpenVPN

Обновление системы

1. Обновите систему:

sudo apt update

2. Установите необходимые пакеты:

sudo apt install -y openvpn easy-rsa

3. Проверьте версию OpenVPN:

openvpn --version

Создание директорий

1. Создайте директорию для OpenVPN:

sudo mkdir -p /etc/openvpn

2. Создайте директорию для сертификатов:

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

3. Скопируйте easy-rsa:

sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

4. Установите права доступа:

sudo chown -R root:root /etc/openvpn/easy-rsa
sudo chmod -R 755 /etc/openvpn/easy-rsa

3. Настройка PKI (Public Key Infrastructure)

Инициализация PKI

1. Перейдите в директорию easy-rsa:

cd /etc/openvpn/easy-rsa

2. Инициализируйте PKI:

sudo ./easyrsa init-pki

3. Создайте CA (Certificate Authority):

sudo ./easyrsa build-ca nopass

4. Создайте серверный сертификат:

sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server

5. Создайте клиентский сертификат:

sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign-req client client1

6. Создайте Diffie-Hellman параметры:

sudo ./easyrsa gen-dh

7. Создайте TLS ключ:

sudo openvpn --genkey --secret ta.key

Копирование сертификатов

1. Скопируйте сертификаты в директорию OpenVPN:

sudo cp pki/ca.crt /etc/openvpn/
sudo cp pki/issued/server.crt /etc/openvpn/
sudo cp pki/private/server.key /etc/openvpn/
sudo cp pki/dh.pem /etc/openvpn/
sudo cp ta.key /etc/openvpn/

2. Установите права доступа:

sudo chmod 600 /etc/openvpn/server.key
sudo chmod 600 /etc/openvpn/ta.key
sudo chmod 644 /etc/openvpn/ca.crt
sudo chmod 644 /etc/openvpn/server.crt
sudo chmod 644 /etc/openvpn/dh.pem

4. Создание конфигурации сервера

Основная конфигурация

1. Создайте конфигурационный файл сервера:

sudo nano /etc/openvpn/server.conf

2. Добавьте базовую конфигурацию:

\# Порт и протокол
port 1194
proto udp

\# Директории сертификатов
ca ca.crt
cert server.crt
key server.key
dh dh.pem

\# Сеть для VPN клиентов
server 10.8.0.0 255.255.255.0

\# Маршруты для клиентов
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

\# Настройки безопасности
tls-auth ta.key 0
cipher AES-256-GCM
auth SHA256

\# Настройки клиентов
client-to-client
keepalive 10 120
comp-lzo

\# Логирование
log-append /var/log/openvpn.log
verb 3

\# Управление клиентами
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn-status.log

Расширенная конфигурация

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

\# Дополнительные настройки безопасности
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384

\# Настройки производительности
sndbuf 393216
rcvbuf 393216

\# Настройки сжатия
comp-lzo adaptive

\# Настройки подключения
max-clients 100
duplicate-cn

\# Настройки логирования
mute 20

5. Настройка маршрутизации

Включение IP forwarding

1. Включите IP forwarding:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf

2. Примените изменения:

sudo sysctl -p

3. Проверьте настройку:

cat /proc/sys/net/ipv4/ip_forward

Настройка iptables

1. Создайте скрипт для настройки iptables:

sudo nano /etc/openvpn/iptables-rules.sh

2. Добавьте правила:

\#!/bin/bash

\# Очистка существующих правил
iptables -F
iptables -t nat -F

\# Базовые правила
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

\# Разрешение трафика через VPN
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT

\# Разрешение OpenVPN порта
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT

\# Сохранение правил
iptables-save > /etc/iptables/rules.v4

3. Сделайте скрипт исполняемым:

sudo chmod +x /etc/openvpn/iptables-rules.sh

4. Запустите скрипт:

sudo /etc/openvpn/iptables-rules.sh

6. Настройка клиентских конфигураций

Создание клиентских конфигураций

1. Создайте директорию для клиентских конфигураций:

sudo mkdir -p /etc/openvpn/clients

2. Создайте базовую клиентскую конфигурацию:

sudo nano /etc/openvpn/clients/client1.ovpn

3. Добавьте содержимое:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-GCM
auth SHA256
verb 3

<ca>
-----BEGIN CERTIFICATE-----
[Содержимое ca.crt]
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
[Содержимое client1.crt]
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
[Содержимое client1.key]
-----END PRIVATE KEY-----
</key>

<tls-auth>
-----BEGIN OpenVPN Static key V1-----
[Содержимое ta.key]
-----END OpenVPN Static key V1-----
</tls-auth>

Создание скрипта для генерации клиентов

1. Создайте скрипт для автоматического создания клиентов:

sudo nano /etc/openvpn/create-client.sh

2. Добавьте содержимое:

\#!/bin/bash

if [ -z "$1" ]; then
    echo "Usage: $0 <client-name>"
    exit 1
fi

CLIENT_NAME=$1
cd /etc/openvpn/easy-rsa

\# Создание клиентского сертификата
./easyrsa gen-req $CLIENT_NAME nopass
./easyrsa sign-req client $CLIENT_NAME

\# Создание .ovpn файла
cat > /etc/openvpn/clients/$CLIENT_NAME.ovpn << EOF
client
dev tun
proto udp
remote $(curl -s ifconfig.me) 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-GCM
auth SHA256
verb 3

<ca>
$(cat pki/ca.crt)
</ca>

<cert>
$(cat pki/issued/$CLIENT_NAME.crt)
</cert>

<key>
$(cat pki/private/$CLIENT_NAME.key)
</key>

<tls-auth>
$(cat ta.key)
</tls-auth>
EOF

echo "Client configuration created: /etc/openvpn/clients/$CLIENT_NAME.ovpn"

3. Сделайте скрипт исполняемым:

sudo chmod +x /etc/openvpn/create-client.sh

4. Создайте клиента:

sudo /etc/openvpn/create-client.sh client2

7. Запуск и управление OpenVPN

Запуск OpenVPN

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

sudo systemctl start openvpn@server

2. Включите автозапуск:

sudo systemctl enable openvpn@server

3. Проверьте статус:

sudo systemctl status openvpn@server

Управление сервисом

1. Запуск сервера:

sudo systemctl start openvpn@server

2. Остановка сервера:

sudo systemctl stop openvpn@server

3. Перезапуск сервера:

sudo systemctl restart openvpn@server

4. Проверка статуса:

sudo systemctl status openvpn@server

5. Просмотр логов:

sudo journalctl -u openvpn@server -f

8. Настройка файрвола

Настройка UFW

1. Разрешите OpenVPN порт:

sudo ufw allow 1194/udp

2. Разрешите SSH (если еще не разрешен):

sudo ufw allow ssh

3. Включите UFW:

sudo ufw enable

4. Проверьте статус:

sudo ufw status

Настройка iptables (альтернатива)

1. Создайте правила для OpenVPN:

sudo iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT

2. Настройте NAT для VPN трафика:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

3. Сохраните правила:

sudo iptables-save > /etc/iptables/rules.v4

9. Мониторинг и управление

Просмотр подключенных клиентов

1. Просмотр статуса подключений:

sudo cat /var/log/openvpn-status.log

2. Просмотр активных подключений:

sudo netstat -tulnp | grep :1194

3. Просмотр туннельных интерфейсов:

ip addr show tun0

Управление клиентами

1. Отключение клиента:

echo "kill CLIENT_NAME" | sudo nc -U /var/run/openvpn.server.sock

2. Перезапуск сервера:

sudo systemctl restart openvpn@server

3. Просмотр логов в реальном времени:

sudo tail -f /var/log/openvpn.log

10. Настройка клиентских устройств

Windows клиент

1. Скачайте OpenVPN клиент с официального сайта 2. Установите клиент 3. Скопируйте .ovpn файл в папку config 4. Запустите OpenVPN и подключитесь

Linux клиент

1. Установите OpenVPN:

sudo apt install openvpn

2. Скопируйте .ovpn файл:

sudo cp client1.ovpn /etc/openvpn/

3. Подключитесь:

sudo openvpn --config /etc/openvpn/client1.ovpn

Android/iOS клиент

1. Установите OpenVPN Connect из магазина приложений 2. Импортируйте .ovpn файл 3. Подключитесь к VPN

11. Дополнительные настройки

Настройка DNS

1. Установите и настройте DNS сервер:

sudo apt install -y dnsmasq

2. Настройте dnsmasq:

sudo nano /etc/dnsmasq.conf

3. Добавьте настройки:

interface=tun0
dhcp-range=10.8.0.2,10.8.0.10,255.255.255.0,12h

4. Запустите dnsmasq:

sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq

Настройка логирования

1. Настройте ротацию логов:

sudo nano /etc/logrotate.d/openvpn

2. Добавьте конфигурацию:

/var/log/openvpn.log {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 644 root root
    postrotate
        systemctl reload openvpn@server
    endscript
}

12. Безопасность

Дополнительные меры безопасности

1. Ограничение доступа по IP:

\# В server.conf добавьте:
client-config-dir /etc/openvpn/ccd

2. Создание файла конфигурации клиента:

sudo nano /etc/openvpn/ccd/client1

3. Добавьте ограничения:

ifconfig-push 10.8.0.10 10.8.0.9
iroute 192.168.1.0 255.255.255.0

Мониторинг безопасности

1. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/vpn-monitor.sh

2. Добавьте содержимое:

\#!/bin/bash

\# Проверка статуса OpenVPN
if ! systemctl is-active --quiet openvpn@server; then
    echo "OpenVPN server is down!" | mail -s "VPN Alert" admin@example.com
fi

\# Проверка количества подключений
CONNECTIONS=$(cat /var/log/openvpn-status.log | grep -c "CLIENT_LIST")
if [ $CONNECTIONS -gt 50 ]; then
    echo "Too many VPN connections: $CONNECTIONS" | mail -s "VPN Alert" admin@example.com
fi

3. Добавьте в crontab:

*/5 * * * * /usr/local/bin/vpn-monitor.sh

13. Устранение неполадок

Частые проблемы

1. OpenVPN не запускается:

  • Проверьте конфигурацию:
    sudo openvpn --config /etc/openvpn/server.conf --test-crypto
  • Проверьте права доступа к сертификатам
  • Проверьте логи:
    sudo journalctl -u openvpn@server

2. Клиенты не могут подключиться:

  • Проверьте файрвол
  • Проверьте сетевые настройки
  • Проверьте сертификаты клиентов

3. Проблемы с маршрутизацией:

  • Проверьте IP forwarding:
    cat /proc/sys/net/ipv4/ip_forward
  • Проверьте iptables правила
  • Проверьте сетевые интерфейсы

Диагностика

1. Проверка статуса:

sudo systemctl status openvpn@server

2. Проверка портов:

sudo netstat -tulnp | grep :1194

3. Проверка туннеля:

ip addr show tun0

4. Проверка маршрутов:

ip route show

Заключение

OpenVPN сервер успешно установлен и настроен! Теперь у вас есть безопасное VPN соединение для удаленного доступа.

Для размещения ваших VPN серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой OpenVPN и обеспечением безопасности ваших VPN соединений!