WireGuard — это современная технология VPN (виртуальная частная сеть), в которой используется самая современная криптография. По сравнению с другими популярными решениями VPN, такими как IPsec и OpenVPN , WireGuard быстрее, проще в настройке и занимает меньше места. Он кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS.
Архив метки: VPN
Настройка EoIP MikroTik, быстрый VPN туннель на L2
Ethernet over IP (EoIP) Tunneling — это протокол MikroTik RouterOS, который создает туннель Ethernet между двумя маршрутизаторами поверх IP-соединения. Туннель EoIP может работать через туннель IPIP, туннель PPTP или любое другое соединение, способное передавать IP.
Когда функция моста маршрутизатора включена, весь трафик Ethernet (все протоколы Ethernet) будет передаваться по мосту, как если бы между двумя маршрутизаторами был физический интерфейс Ethernet и кабель (с включенным мостом). Этот протокол делает возможным несколько сетевых схем. Читать
Нужен ли мне VPN и почему это важно?
Для тех, кто не знаком, этот термин звучит ошеломляюще, и большинство людей задаются вопросом, нужен ли он им вообще, но, верьте или нет, ответ на вопрос « Нужен ли мне VPN?». Да, всем нужен. Короче говоря, VPN обеспечивает безопасность и конфиденциальность ваших данных в Интернете. VPN дают вам удивительную возможность шифровать все, что вы делаете в сети, одним нажатием кнопки, чтобы защитить ваши данные от третьих лиц, таких как правительственные агентства, рекламодатели, интернет-провайдеры и кибер-хулиганы. Читать
Как настроить WireGuard VPN на Ubuntu 18.04
WireGuard — это современная технология виртуальной частной сети VPN с современной криптографией. По сравнению с другими аналогичными решениями, такими как IPsec и OpenVPN, WireGuard быстрее, проще в настройке и более производительным. Он кроссплатформенный и может работать практически везде, включая Linux, Windows, Android и macOS. Wireguard — это одноранговая VPN; он не использует модель клиент-сервер. В зависимости от конфигурации одноранговый узел может действовать как традиционный сервер или клиент.
[РЕШЕНО] Wireguard. RTNETLINK answers: Operation not supported.
При попытке создать интерфейс wireguard получаем ошибку «RTNETLINK answers: Operation not supported». Команда modprobe wireguard возвращает «modprobe: FATAL: Module wireguard not found». Читать
Установка WireGuard на Ubuntu/Debian
Сегодня в статье приведу пример по установке и настройке VPN сервера WireGuard для операционных систем Ubuntu и Debian. Также данная статья будет справедлива и для всех производных систем данного типа.
WireGuard – это современная высокопроизводительная VPN для Linux,Windows, MacOS. Главной функцией WireGuard является обеспечение безопасного соединения между сторонами через сетевой интерфейс, зашифрованный с помощью аутентификации по открытому ключу. Это означает, что, в отличие от большинства виртуальных частных сетей, WireGuard не применяет топологию, что позволяет создавать различные конфигурации путем изменения конфигураций окружающей сети. Эта модель предлагает большую производительность и гибкость.
Сейчас WireGuard готовится к включению в состав ядра Linux. Если быть точнее, то он появится в ядре версии 5.6, он даже получил похвалу от Линус Торвальдса и в американском сенате.
Специалисты проверили скорость работы WireGuard и выяснили, что он способен обойти большинство протоколов шифрования в том числе широко известный протокол OpenVPN.
Причина, которая объясняет высокую скорость работы WireGuard, это применение быстрого и современного алгоритма шифрования, благодаря которому скорость передачи данных очень высока.
Кроме того, данный протокол очень похож на https, что позволяет обманывать системы анализа трафика DPI, установленные у Вашего провайдера и обходить эти блокировки по сигнатурам.
Установка и настройка при помощи скрипта
Для облегчения установки и настройки можете воспользоваться готовым скриптом. Данный скрипт универсальный для большинства систем.
Первым шагом подготовим нашу систему:
sudo -su
apt update && apt upgrade -y
apt install curlДалее скачиваем скрипт.
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.shДелаем его исполняемым:
chmod +x wireguard-install.shЗапускаем установку и настройку WireGuard
./wireguard-install.shУстановка WireGuard на Ubuntu
Установку нашего VPN WireGuard я буду производить на сервере под управлением операционной системы Ubuntu/Debian. И так поехали.
Ubuntu 18.04
Для начала надо добавить официальный репозиторий в систему:
sudo add-apt-repository ppa:wireguard/wireguard- Обновляем индексы
sudo apt update- Устанавливаем wireguard
sudo apt install -y wireguard wireguard-dkms iptables resolvconf qrencodeUbuntu 20.04/22.04
Так как пакет входит в официальный репозиторий, то необходимо набрать всего лишь данные команды:
- Обновляем индексы
sudo apt update- Устанавливаем wireguard
sudo apt install -y wireguard wireguard-dkms iptables resolvconf qrencodeУстановка WireGuard на Debian
Для того чтобы установить WireGuard на Debian с начало необходимо авторизоваться под root пользователем:
sudo suДалее набираем следующее:
echo "deb http://deb.debian.org/debian buster-backports main" >/etc/apt/sources.list.d/backports.list
apt update
apt install -y iptables resolvconf qrencode
apt install -y -t buster-backports wireguardДля остальных операционных систем можете посмотреть официальную страничку инсталляции.
Также установите заголовки для вашего ядра, если вы еще этого не сделали:
apt-get install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//')Настройка VPN WireGuard на серверной части
Давайте теперь настроим наш высокопроизводительный VPN на сервере wireguard. Для этого создадим файл конфигурации и необходимые ключи шифрования. Все действия выполняем из под root.
sudo su(umask 077 && printf "[Interface]nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/wg-server-publickey.key- Первая команда записывает исходное содержимое конфигурационного файла в /etc/wireguard/wg0.conf. Значение umask в суб-оболочке позволяет создать файл с ограниченными разрешениями, не затрагивая обычную среду.
- Вторая команда генерирует закрытый ключ с помощью команды wg и записывает ее непосредственно в конфигурационный файл с ограниченным доступом. Затем ключ передается обратно команде wg pubkey, чтобы получить связанный с ним открытый ключ, который записывается в /etc/wireguard/wg-sever-publickey.key.
Следующим шагом нам необходимо включить форвардинг пакетов через наш сервер, для этого открываем следующий файл:
sudo nano /etc/sysctl.confИ уберем знак комментария # со строки:
net.ipv4.ip_forward=1Применим изменения
sudo sysctl -pДалее отрываем файл на редактирования и вносим необходимую информацию о нашей VPN сети.
sudo nano /etc/wireguard/wg0.confКонфигурационный файл vpn wireguard
Внутри, в разделе [Interface], вы должны увидеть свой сгенерированный закрытый ключ. Этот раздел содержит конфигурацию для локальной стороны соединения.
В разделе Interface нужно также определить IP-адрес VPN, который будет использовать этот узел, и порт, который он будет прослушивать для соединений с одноранговыми узлами.
Давайте добавим в него следующие строки ListenPort, SaveConfig и Address:
[Interface]
PrivateKey = приватный_ключ_сервера
ListenPort = 5555
SaveConfig = true
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE- ListenPort – указываем свободный порт который будет прослушивать наш сервис wg-quick (VPN WireGuard)
- SaveConfig – имеет значение true, чтобы сервис wg-quick мог автоматически сохранять свою активную конфигурацию в этом файле при завершении работы.
- Address – это наш IP-адрес и маска сети
- PostUP и PostDown – запускают необходимые правило для iptables
Пробуем поднять нашу сеть скриптом wg-quick:
sudo wg-quick up /etc/wireguard/wg0.confВ системах с systemd вместо этого можно использовать следующую запись:
sudo systemctl start wg-quick@wg0.serviceЕсли systemd ругается, то сперва необходимо включить сервис следующей командой:
sudo systemctl enable wg-quick@wg0.serviceНастройка VPN WireGuard на клиентской машине
В качестве клиента у меня будет выступать ноутбук с операционной системой Ubuntu Desktop 18.04 LTS
Все действия выполняем из под пользователя root.
sudo su
add-apt-repository ppa:wireguard/wireguard
apt install wireguard -yДля Ubuntu 20.04 необходимо повторить тоже самое, что и при установке на серверную часть. (см. Выше)
Далее создаем конфигурационный файл и генерируем ключи:
(umask 077 && printf "[Interface]nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/wg-server-publickey.keyОткрываем наш конфигурационный файл и вносим изменения.
sudo nano /etc/wireguard/wg0.conf[Interface]
PrivateKey = приватный_ключ_клиента
ListenPort = 5555
Address = 10.0.0.2/32 Создайте раздел под названием [Peer] после раздела [Interface].
[Peer]
PublicKey = Публичный_ключ_сервера
AllowedIPs = 10.0.0.0/24
Endpoint = IP-адрес_сервера:5555
PersistentKeepalive = 10- PublicKey – укажите значение открытого ключа сервера. Вы можете найти это значение, набрав на сервере команду: wg
- AllowedIPs – указывает на пропуск трафика через VPN. В данном случае будет проходить через VPN только трафик сети 10.0.0.0/24. Весть остальной трафик пойдет через вашего провайдер. Для заворота всего трафика через VPN указываем значение 0.0.0.0/0
- PersistentKeepalive – время в секундах для постоянной проверки доступности ресурса.
Запускаем сервис на Ubuntu:
sudo systemctl start wg-quick@wg0.service Запускаем сервис на Debian:
sudo wg-quick up /etc/wireguard/wg0.confPeer на стороне сервера
На сервере также необходимо добавить информацию о клиенте. Иначе ваш туннель VPN не откроется. Для этого возвращаемся на сервер и останавливаем службу wireguard:
sudo systemctl stop wg-quick@wg0.serviceДалее открываем конфигурационный файл:
sudo nano /etc/wireguard/wg0.confИ вносим информацию о клиенте.
[Peer]
PublicKey = публичный_ключ_клиента
AllowedIPs = 10.0.0.5/32
PersistentKeepalive = 10- PublicKey – ключ клиента можно посмотреть на клиентской машине при помощи команды wg.
- AllowedIPs – указывает на IP клиента. Обязательно с маской 32
Запускаем наш сервис:
sudo systemctl start wg-quick@wg0.service Пробуем пропинговать клиента.
ping 10.0.0.264 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.916 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.545 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.647 msСо стороны клиента также должен проходить пинг до сервера.
ping 10.0.0.164 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=2.40 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.646 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.555 msХотя статья получилась большой, но все настраивается очень быстро.
Тонкая настройка параметров WireGuard на примере Proxmox
/usr/lib/sysctl.d/10-pve-ct-inotify-limits.conf…
fs.inotify.max_queued_events = 8388608
fs.inotify.max_user_instances = 65536
fs.inotify.max_user_watches = 4194304
vm.max_map_count = 262144
net.ipv4.neigh.default.gc_thresh3 = 8192
net.ipv6.neigh.default.gc_thresh3 = 8192
kernel.keys.maxkeys = 2000/usr/lib/sysctl.d/10-pve.conf…
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0
net.ipv4.igmp_link_local_mcast_reports = 0
fs.aio-max-nr = 1048576/usr/lib/sysctl.d/50-pid-max.conf…
kernel.pid_max = 4194304/etc/sysctl.d/99-sysctl.conf…
net.ipv4.ip_forward = 1/usr/lib/sysctl.d/protect-links.conf…
fs.protected_fifos = 1
fs.protected_hardlinks = 1
fs.protected_regular = 2
fs.protected_symlinks = 1/usr/lib/sysctl.d/pve-firewall.conf…
net.ipv4.conf.all.rp_filter = 2/etc/sysctl.d/wg.conf…
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1/etc/sysctl.conf…
net.ipv4.ip_forward = 1