diff options
| author | vlapa <vlapa@ya.ru> | 2026-06-13 20:33:26 +0300 |
|---|---|---|
| committer | vlapa <vlapa@ya.ru> | 2026-06-13 20:33:26 +0300 |
| commit | e5abc1fe99340b979b18864d978179f71fe8f5c5 (patch) | |
| tree | 98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /LINUX/WIREGUARD.md | |
First
Diffstat (limited to 'LINUX/WIREGUARD.md')
| -rw-r--r-- | LINUX/WIREGUARD.md | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/LINUX/WIREGUARD.md b/LINUX/WIREGUARD.md new file mode 100644 index 0000000..14a8597 --- /dev/null +++ b/LINUX/WIREGUARD.md @@ -0,0 +1,170 @@ +***На сервере: + +```bash +sudo su +apt update && apt upgrade -y +apt install -y wireguard + +cd /etc/wireguard + +wg genkey | tee privatekey | wg pubkey | tee publickey + +chmod 600 privatekey +cat privatekey +``` + +**Редактируем/создаем: vim wg0.conf** +```sh +# <interface> - заменить на свой !!! +[Interface] +PrivateKey = <server_privatekey> +Address = 10.0.0.1/24 +ListenPort = 51830 +PostUp = iptables -A FORWARD -i %i(wg0) -j ACCEPT; iptables -t nat -A POSTROUTING -o <interface> -j MASQUERADE +PostDown = iptables -D FORWARD -i %i(wg0) -j ACCEPT; iptables -t nat -D POSTROUTING -o <interface> -j MASQUERADE + +[Peer] +# user_1 Publickey +Publickey = <user1_publickey> +AllowedIPs = 10.0.0.2/32 + +[Peer] +# user_2 Publickey** +Publickey = <user2_publickey> +AllowedIPs = 10.0.0.3/32 + +[Peer] +# user_3 Publickey +Publickey = <user3_publickey> +AllowedIPs = 10.0.0.4/32 +``` + +```sh +echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf +sysctl -p + +net.ipv4.ip_forward=1 + +systemctl enable wg-quick@wg0.service + +>Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick.service + +systemctl start wg-quick@wg0.service +systemctl status wg-quick@wg0.service + +systemctl restart wg-quick@wg0.service +systemctl status wg-quick@wg0.service + +systemctl daemon-reload + +sudo wg show + +#################################### +# ОБЯЗАТЕЛЬНО ПРОВЕРЯЙТЕ ФАЕРВОЛ !!! +sudo ufw status +sudo ufw allowed http +sudo ufw allowed https +#################################### +``` +===================================== +***Генерация ключей клиента: + +`wg genkey | tee /etc/wireguard/_key/win_home_priv | wg pubkey | tee /etc/wireguard/win_home_pub` + + +***На компьютере-клиенте: +```sh +sudo apt install wireguard resolvconf -y +vim Documents/new_wg.conf +``` + +***Конфигурация клиента: + vim wg0.conf +```bash +[Interface] +PrivateKey = <CLIENT-PRIVATE-KEY на сервере> +Address = 10.10.10.2/32 +DNS = 8.8.8.8,77.88.8.8 + +[Peer] +PublicKey = <SERVER-PUBKEY> +Endpoint = <SERVER-IP>:51830 +AllowedIPs = 0.0.0.0/0 # (весь трафик через WireGuard) >>> 10.10.10.0/24 +PersistentKeepalive = 20 +``` + +```sh +systemctl enable wg-quick@wg0 +systemctl start wg-quick@wg0.service +systemctl restart wg-quick@wg0.service +systemctl status wg-quick@wg0.service + +systemctl daemon-reload + +curl ifconfig.me + +sudo wg show + +``` +===================================== +***GUI для Wireguard: +``` +wget https://github.com/UnnoTed/wireguird/releases/download/v1.0.0/wireguird_amd64.deb +sudo dpkg -i ./wireguird_amd64.deb + + +nm-connection-editor +nmcli + +wg-quick up wg0-client +wg-quick down wg0-client +``` +===================================== +### Настройка VPN с WireGuard и LDAP за пару шагов + +Представь, как удобно: ты настраиваешь VPN, а доступ автоматически контролируется через LDAP. Никакого хаоса с ключами, всё централизовано. Вот как это сделать, чтобы всё работало чётко. + +### **1. Настраиваем WireGuard** + +Сначала давай поднимем сам VPN: +1. Устанавливаешь WireGuard: + `sudo apt install wireguard + +2. Генерируешь ключи: + `wg genkey | tee privatekey | wg pubkey > publickey + +3. Делаешь конфиг /etc/wireguard/wg0.conf: + ```sh +[Interface] + PrivateKey = <твой_приватный_ключ> + Address = 10.0.0.1/24 + ListenPort = 51820 + + [Peer] + PublicKey = <публичный_ключ_клиента> + AllowedIPs = 10.0.0.2/32 + ``` + +4. Включаешь VPN: + `sudo wg-quick up wg0 + +Теперь у тебя рабочий VPN, но это только начало. + +--- +### **2. Подключаем LDAP** + +Теперь сделаем так, чтобы только проверенные пользователи могли подключаться: + +1. Установи LDAP-клиент: + `sudo apt install ldap-utils + +2. Проверяешь связь с сервером: + `ldapsearch -x -H ldap://<ip-сервера> -D "cn=admin,dc=example,dc=com" -W + +3. Подключаешь проверку пользователей через LDAP. Например, перед выдачей ключей скрипт проверяет, есть ли юзер в базе: + `ldapsearch -x -b "dc=example,dc=com" "uid=<имя_пользователя>" + +4. Для автоматизации можно настроить генерацию конфигов и ключей через API или свои скрипты. +### **Почему это круто?** + +Тебе больше не нужно вручную раздавать доступы или следить за кучей ключей. Всё централизовано: добавил юзера в LDAP — он тут же получил доступ к VPN. Удобно, чисто, профессионально.
\ No newline at end of file |
