Описание скрипта для генерации конфигурационных файлов WireGuard
Этот скрипт написан на языке Bash и предназначен для автоматической генерации конфигурационных файлов для сервера и клиентов VPN на основе WireGuard. Скрипт использует переменные окружения, определенные в файле env.sh
, для настройки параметров VPN.
Основные функции скрипта:
-
generate_wg_server_keys: Генерирует приватный и публичный ключи для сервера WireGuard. Ключи сохраняются во временные файлы, а затем считываются в переменные
private_server_key
иpublic_server_key
. После использования временные файлы удаляются. -
generate_wg_client_keys: Аналогично генерирует приватный и публичный ключи для клиента WireGuard. Ключи также сохраняются во временные файлы и затем считываются в переменные
private_client_key
иpublic_client_key
. Временные файлы удаляются после использования. -
generate_wg_server_file_interface: Создает конфигурационный файл для сервера WireGuard. Файл содержит настройки интерфейса, такие как IP-адрес сервера, порт прослушивания, приватный ключ сервера, а также правила для настройки маршрутизации и NAT с использованием
iptables
. -
generate_wg_client_file: Генерирует конфигурационные файлы для клиентов WireGuard. Для каждого клиента создается отдельный файл с настройками интерфейса и пира (сервера). Также обновляется конфигурационный файл сервера, добавляя информацию о новом клиенте.
Основной поток выполнения:
-
Импорт переменных окружения: Скрипт начинает с импорта переменных окружения из файла
env.sh
. -
Создание директории проекта: Создается директория для хранения конфигурационных файлов, если она еще не существует.
-
Генерация ключей сервера: Вызывается функция
generate_wg_server_keys
для генерации ключей сервера. -
Создание конфигурационного файла сервера: Вызывается функция
generate_wg_server_file_interface
для создания конфигурационного файла сервера. -
Генерация конфигурационных файлов клиентов: Вызывается функция
generate_wg_client_file
для создания конфигурационных файлов для всех клиентов, определенных в переменнойclient_value
. -
Завершение: В конце скрипт выводит сообщение о том, что конфигурационные файлы были успешно созданы в указанной директории.
Пример использования:
Для использования скрипта необходимо создать файл env.sh
с необходимыми переменными окружения, такими как server_eth_ip
, listen_port
, network
, network_mask
, client_value
и другие. Затем скрипт можно запустить, и он автоматически сгенерирует все необходимые конфигурационные файлы для настройки VPN на основе WireGuard.
Примечания:
- Скрипт предполагает, что утилита
wg
(WireGuard) уже установлена и доступна в системе. - Временные файлы, используемые для хранения ключей, удаляются после их считывания, чтобы предотвратить утечку конфиденциальной информации.
- Скрипт поддерживает настройку нескольких клиентов, количество которых определяется переменной
client_value
.