🖍️
Dev & Ops
Admin
Admin
  • Admin Book
  • Network
    • Проблемы
      • Освободить порт
    • Tools
      • tshark
      • Анализ трафика
      • curl
      • nmap
      • masscan
      • ifconfig
      • netcat/nc/socat
      • iptables
      • netstat
      • downloaders
      • openvpn3
      • tcpdump
      • databases
        • mysql
        • mssql
      • smbclient
    • Протоколы
      • Почтовые протоколы
        • pop3
        • smtp
        • imap
        • DMARC, SPF, DKIM
      • TOR
      • 2G/3G/4G/5G
      • DNS
        • Banner Grabbing
        • rDNS (или PTR-записи)
        • Zone Transfer
        • Купить свой домен
      • ssh
      • snmp
      • icmp
      • ldap
      • cisco
    • Практические нюансы и подходы
  • Операционные системы
    • MacOS
    • RedHat
    • Linux
      • Настройка Debian
        • Intro
        • Oh My ZSH
        • Установка графической оболочки
        • Firewall
      • Файловая система
        • proc
        • Получить полный путь до файла
        • Размеры дисков, директорий, файлов
        • Работа с дисками
        • Работа с флешками и другими монтированными устройствами
      • Network
      • Security
        • namespaces & cgroups
        • SELinux
        • AppArmor
        • eBPF
        • audit.d
        • Seccomp
      • Background Services and Crons
      • Troubleshooting
        • Если нет звука
      • Cases
        • nohup Поднять сервер без привязки к ssh-сессии
        • Отвязать процесс от родителя в bash
        • Нормальная консоль (возможность удаления данных, а не ^[[D)
        • Установка пакетов
        • Сетевые порты
        • Установить переменную окружения глобально
        • RDP Clients
      • Команды
        • Список команд BusyBox
        • source
        • grep
        • ps
        • find
        • vi
    • Windows
      • Packet Managers
      • Тулзы для администрирования
      • Пути на системе
      • Работа с bat-никами
      • ipconfig
      • Характеристики компа
      • Microsoft Store
      • Образы Windows
      • cmd
        • reg
        • sc
        • net
        • Список разных команд (надо оформить в отдельные страницы)
    • Tools
      • Файловый менеджер
      • Работа с архивами
      • Terminals
      • osquery
      • saltstack
      • chef
  • Tools
    • Развернуть свою виртуальную лабу на базе Windows
    • S3
    • Покупка доменов
    • Настройка почты
      • Docker
      • iRedMail
      • Postfix (SMTP)
      • Dovecot (IMAP)
      • RoundCube
      • Другие инструкции
      • fail2ban
    • Splunk
    • Распределенные вычисления
      • Apache Hadoop
      • Уязвимости
    • Databases
      • клиенты
      • MongoDB
      • postgres
      • Redis
      • mysql
      • H2 Database
      • Experiments
        • neo4j
        • edgedb
    • Servers
      • WEB
        • Apache
        • Nginx
        • Oracle
        • IIS
        • Passenger
      • one line servers
      • Pi-hole: свой dns сервер
    • Удаленное управление серверами
      • HP iLO
    • VPN
      • Pulse Secure SSL VPN
      • VPN WireGuard
      • OpenVPN
    • CI/CD
      • Gitlab CI
      • TeamCity JetBrains
      • jenkins
        • Для чего
        • Установка
        • Basic Usage
        • Pipelines
        • Blue Ocean
        • Security
    • Визуализация/Отчетность/Работа с событиями
      • Allure
      • Logstash
      • Kibana
      • Grafana
      • Elasticsearch
        • Теория
        • Практика
      • Kafka
      • Rsyslog
    • RackTables
    • Мониторинг сети, приложений и событий
      • Prometheus
      • Zabbix
      • snort
      • moloch
  • Learning
    • Онлайн курсы
    • Подборки материалов
      • DevOps
      • DevSecOps
Powered by GitBook
On this page
  • Configure
  • Key Generation
  • Use configs
  • Еще статьи про wireguard
  1. Tools
  2. VPN

VPN WireGuard

PreviousPulse Secure SSL VPNNextOpenVPN

Last updated 3 years ago

Настройка

$ sudo apt install wireguard

link:

wg — wireguard configure utility.

Configure

  1. Add new interface: ip link add dev wg0 type wireguard (or wireguard-go wg0)

  2. An IP address and peer can be assigned with ifconfig(8) or ip-address(8): ip address add dev wg0 192.168.2.1/24 Or, if there are only two peers total, something like this might be more desirable: ip address add dev wg0 192.168.2.1 peer 192.168.2.2

  3. The interface can be configured with keys and peer endpoints with the included wg(8) utility: wg setconf wg0 myconfig.conf or wg set wg0 listen-port 51820 private-key /path/to/private-key peer ABCDEF... allowed-ips 192.168.88.0/24 endpoint 209.202.254.14:8172

  4. The interface can then be activated with ifconfig(8) or ip-link(8): ip link set up dev wg0

There are also the wg show and wg showconf commands, for viewing the current configuration. Calling wg with no arguments defaults to calling wg show on all WireGuard interfaces.

Key Generation

$ umask 077
$ wg genkey > privatekey
$ wg pubkey < privatekey > publickey

Use configs

  1. Generate key pairs for client and server:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )
  1. Create server and client configs:

Server (/etc/wireguard/wg0.conf):

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

Client (/etc/wireguard/wg0.conf):

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # Внешний IP сервера
PersistentKeepalive = 25 
  1. Up wireguard interface:

Server: sudo wg-quick up /etc/wireguard/wg0.conf (we can use systemd: sudo systemctl start wg-quick@wg0.service) Client: sudo wg-quick up /etc/wireguard/wg0.conf

Еще статьи про wireguard

Про настройку клиентов за NAT:

https://www.wireguard.com/quickstart/
https://habr.com/en/post/481838/