summaryrefslogtreecommitdiff
path: root/LINUX/WIREGUARD.md
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
committervlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
commite5abc1fe99340b979b18864d978179f71fe8f5c5 (patch)
tree98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /LINUX/WIREGUARD.md
First
Diffstat (limited to 'LINUX/WIREGUARD.md')
-rw-r--r--LINUX/WIREGUARD.md170
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