Vpn centos 7 настройка на wireguard

Обновлено: 04.07.2024

Это подробная инструкция по настройке личного VPN на протоколе Wireguard, чтобы обходить блокировки Роскомнадзора и защищаться от хакеров в чужих Wi-Fi с компьютеров и телефонов. По шагам, с картинками, для самых маленьких.

Если вы в России, у вас наверняка не работает LinkedIn или тормозит Twitter, а в месте с ним и половина интернета. VPN поможет нивелировать вредительство провайдеров и государственных органов. Кроме того, в общедоступных Wi-Fi точках, к которым вы подключаетесь в кафе, могут сидеть мамкины хакеры, которые перехватывают трафик и могут украсть у вас данные или подсунуть вирус. Достаточно включить VPN, и ваш трафик станет для таких вредителей недоступен.

Содержать VPN-сервер стоит денег, потому что где-то должен работать компьютер с серверной программой, и кто-то должен платить за электричетсво и работу инженеров. Если не платите вы, значит платит кто-то другой. В замен этот другой получает что-то ценное, например ваши персональные данные, которые затем можно использовать для мошенничества или шантажа. Не пользуйтесь бесплатными VPN-сервисами.

Обычно VPN-сервисы продают аккаунты с ограничением на одновременное количество пользователей. Тот же Astrill, популярный в Китае, не позволяет подключаться больше чем с трёх устройств одновременно, при этом в месяц их VPN стоит от $10. Со своим сервером вы можете легко создать 10-20 пользователей и раздать их всем своим друзьям и знакомым: даже самый дешёвый VPS за $5 в месяц справится с такой нагрузкой.

Конечно, у платных VPN есть свои плюсы, например быстрое переключение между локациями (чтобы сменить сервер с Германии на США, например), особо продвинутые средства обхода блокировок и тому подобное. К счастью, в России блокировки осуществляются довольно просто, и для их обхода такие сервисы избыточны.

Вам понадобится VPS — самый дешёвый хостинг в стране, где блокировок нет. Мои рекомендации:


    от $3.5 в месяц, при регистрации по рефералке дадут $100 на месяц.
    от $5 в месяц, по рефералке дадут $100 на два месяца.
    от $5 в месяц, по рефералке ничего не дают, зато считают использование по часам — можно экспериментировать за гроши.

Или любой другой сервер на Ubuntu за пределами России, к которому у вас есть root-доступ.

Шаг 1 — Запустите VPS

Нужен самый простой сервер на Ubuntu 20.04 или новее.

  1. Перейдите на страницу Droplets
  2. Create -> Droplets -> Ubuntu 20.04 -> Basic -> Regular Intel with SSD -> $5/mo -> Amsterdam (или любой другой, кроме Singapore) -> Password (придумайте длинный пароль) -> Create Droplet
  3. Снова перейдите на страницу Droplets и найдите там IP-адрес вашего сервера

Мы воспользуемся готовым скриптом от доброго человека.


На этом этапе у вас есть установленный и работающий сервер WireGuard. Теперь нужно создать учётные записи для подключения с компьютера и телефона.

Сразу после установки WireGuard в консоли начнётся процесс создания учётной записи.

Кроме того, нужно сохранить текстовые данные к этой учётной записи для подключения с компьютера. Для этого откроем файл конфигурации:

  1. Найдите строку с адресом файла конфигурации сразу под QR-кодом, в моём случае она выглядит так:
    It is also available in /root/wg0-client-wtigga_vpn.conf
  2. Наберите команду nano, а затем после пробела напишите адрес к этому файлу, в моём случае это:
    nano /root/wg0-client-wtigga_vpn.conf
  3. В консоли откроется файл с конфигурацией. Скопируйте весь текст из этого файла в любой текстовый файл на своём компьютере, и сохраните.

Лучше давать каждому пользователю по учётной записи, чтобы при необходимости можно было точечно её отключить.

Чтобы добавить ещё одного пользователя, снова введите команду
./wireguard-install.sh


Скрипт спросит, что именно сделать. Введите единицу (Add a new user), нажмите Enter и вы снова увидите процесс создания нового пользователя.

Windows / Mac

Android / iOS

  1. Установите официальное приложение для Android (APK) или iOS
  2. Запустите, выберите (+) и Сканировать QR-Код
  3. Отсканируйте код, который вы заскриншотили в консоли
  4. Назовите его любым именем и нажмите Создать туннель
  5. Теперь нажмите на переключатель напротив вновь сохранённого туннеля, и вы попадёте в интернет без блокировок.

Послесловие

От чего не защитит VPN

Не используйте такой VPN для скачивания торрентов, продажи наркотиков или распространения детской порнографии. Вы оплачиваете VPS со своей банковской карты, а это значит, что для хостинга (Vult, DigitalOcean и других) вы не являетесь анонимом. И если полиция условной Германии будет расследовать уголовное дело, в котором фигурирует ваш VPN, то ваше имя там всплывёт.

Именно по этой причине нужно делать отдельные учётные записи WireGuard для каждого пользователя, и никогда не выкладывать эти учётки в открытый доступ, иначе вам возможно придётся отвечать за действия какого-то анонима из интернета.

И, разумеется, VPN не сделает вас анонимным, если вы заходите в социальные сети под учёткой с вашим настоящим именем.

CentOS7 скрипт одним щелчком мыши для установки WireGuard

Напиши спереди

В последнее время появилось много друзей, которые несут сценарий этого руководства одним щелчком мыши. Этот сайт разрешен и поддерживается. Для большего числа людей его можно использовать как косвенную помощь. Но процесс обработки должен сделать следующее

1. Пожалуйста, укажите источник для обработки

2. Не должно быть никакого вмешательства и свободного обмена

3. Не ставьте препятствий на пути использования сценариев. Включая не только поведение, требующее внимания, подписку, установку пароля и т. Д.

WireGuard

WireGuard® - это очень простая, современная и быстрая VPN, в которой используется самая передовая в стране технология шифрования. Он разработан, чтобы быть быстрее, проще, экономичнее и полезнее, чем IPSec, избегая при этом больших головных болей. Он намерен быть более эффективным, чем OpenVPN. WireGuard разработан как универсальная VPN, которая может работать на встроенных интерфейсах и суперкомпьютерах, и подходит для многих различных ситуаций. Первоначально выпущенный для ядра Linux, теперь он кроссплатформенный и может широко использоваться. В настоящее время он активно развивается, но считается самым безопасным, простым в использовании и самым простым VPN-решением в отрасли.

Следующее поколение высокоскоростных проводников, вышеприведенное, происходит от автоматического перевода на английский, чтобы избежать крупномасштабных сетевых заголовков передачи, что обычно означает более низкий уровень, более высокую эффективность и более высокую скорость. Во время теста использовались каменщик GIA и GCE Taiwan. Оба могут открыть 4K за секунды, первый около 40M, последний около 60M, можно сказать, что скорость взлетела, опусти скриншот youtube. Видеоурок был загружен на YouTube,Нажмите, чтобы посмотреть (требуется FQ)。



О скрипте в один клик

1. Применимо только к centos7

2. Архитектура VPS должна быть KVM

3. Протестировано centos7 из каменщика, Google Cloud и Vultr, это можно сделать отлично

4. Большинство ядер Cento7 3.10 и не могут быть установлены правильно, поэтому их необходимо обновить

5. Ядро vps некоторых производителей, по-видимому, не может обновиться, например vpsserver, это все еще необходимо решить самостоятельно.

6, wireguard - это узел, соответствующий клиенту, если вам нужно использовать несколько клиентовПросмотр многопользовательского видео конфигурации。

Начало урока

1. VPS должен быть установлен как система centos 7. После подключения к VPS с помощью xshell или других инструментов ssh выполните следующую команду:

2. В скрипте выполнения появятся элементы выбора. Сначала мы решим установить ядро. Это займет несколько минут в процессе установки и, наконец, перезапустится в соответствии с подсказками.


3. После перезапуска используйте xshell для подключения к VPS и выполните следующую команду:

4. При выполнении команды появятся те же параметры, что и на шаге 2. На этот раз мы выбрали установку wireguard, это займет несколько минут в процессе установки, и служба запустится автоматически после завершения установки.


5. С помощью инструментов ftp, таких как xftp, подключитесь к vps, введите каталог / etc / wireguard /, а затем загрузите файл client.conf на локальный компьютер. (Этот файл конфигурации содержит различные параметры клиента, и эти параметры также используются клиентами Mac и Linux.)


6. Загрузите и установите TunSafe, который является сторонним клиентом для Windows. Поскольку официальная версия Windows еще не разработана, сначала замените ее на это программное обеспечение. TunSafe имеет открытый исходный код и может использоваться с уверенностью.

7. Откройте TunSafe, щелкните файл, выберите файл импорта, выберите файл client.conf, загруженный на шаге 5, и импортируйте его в программное обеспечение.


8. После импорта он автоматически подключится. После успешного подключения весь трафик будет проксироваться, что является глобальным прокси.

9. Студенты, использующие системы Linux и Mac, могут обратиться к официальному лицу, чтобы проверить, как установить соответствующий клиент.Это относительно просто, поэтому я не буду говорить об этом здесь.

Руководство по версии клиента Android

1. Перейдите в Google Play, чтобы загрузить wireguard. В настоящее время это программное обеспечение не выпущено в Google Play. Вы также можете напрямую загрузить следующий установочный пакет f-droid.

2. Установите программное обеспечение и перенесите файл client.conf, полученный сервером данного руководства, на мобильный телефон. Откройте программное обеспечение, щелкните знак «плюс», выберите «Создать из файла или архива» на всплывающей странице, а затем выберите файл conf, сохраненный в телефоне.

Примечание: здесь может быть ошибка, потому что нет разрешения на файловую операцию. Перейдите в управление разрешениями, чтобы проверить разрешение на хранение программного обеспечения.


После выбора файла, как показано ниже


Просто включите агент.

iOS-клиент

Это бета-версия. Как официальная версия, так и tunsafe предоставляют бета-версию. Вам нужно установить testflight с расширенной ссылкой, затем открыть соединение с этой бета-версией на своем телефоне, перейти к тестовой проверке и затем установить ее.

Импортировать тестовый файл очень просто: вы можете открыть программное обеспечение напрямую, отсканировать QR-код, сгенерированный в службе, или скопировать файл на мобильный телефон, а затем открыть его с помощью программного обеспечения.

Очень важно

сервер

1. Сначала используйте команду wg, чтобы проверить, нормально ли запущена служба wireguard и нормальный ли одноранговый узел.

2. Проверьте файл конфигурации wg0.conf, ip не может использовать ipv6, потому что ip - это автоматический сетевой запрос, он может получить адрес ipv6, необходимо изменить адрес ipv4.

3. Используйте команду ip link, чтобы проверить, является ли физическая сетевая карта eth0. Если нет, замените действительное имя (кроме сетевой карты lo и wg0) на eth0 в wg0.conf.

4. Разрешен ли межсетевой экран вашего поставщика облачных услуг. Настройки брандмауэра, такие как Google Cloud / Alibaba Cloud, можно увидеть в веб-консоли, вам необходимо настроить правила выпуска самостоятельно.

5. Сегмент IP интрасети вашего облачного сервера не должен конфликтовать с 10.0.0.1/24. Я столкнулся с конфликтами между сегментом интранета Google Cloud (настроенным мной) и сегментом сети, используемым wg. Такая проблема встречается редко. Видите, если это не ваш собственный IP интрасети.

Клиент (окна)

1. Откройте tunsafe с правами администратора и не открывайте другое программное обеспечение агента одновременно.

2. Если компьютер набирает номер напрямую для доступа в Интернет, возможно, он не сможет подключиться. Измените маршрутизатор на набор номера.

3. В некоторых случаях, когда SSTAP был установлен (установленная виртуальная сетевая карта установит статический IP-адрес), wireguard может использовать сетевую карту, установленную sstap, совместно. Обратите внимание на настройку ip и dns этой виртуальной сетевой карты, которые будут получены автоматически.

4. Удалите другие VPN, попробуйте переустановить tunsafe.

5. Локальный IP-адрес может быть в сегменте сети 10.0.0.1/24, возникнут конфликты, задайте другие сегменты сети для wireguard, значение по умолчанию 10.0.0.1 будет изменено на другое, например 10.0.8.1.

WireGuard работает, создавая сетевой интерфейс на каждом одноранговом устройстве, которое работает как туннель. Одноранговые узлы аутентифицируют друг друга, обмениваясь и проверяя открытые ключи, имитируя модель SSH. Открытые ключи сопоставляются со списком IP-адресов, разрешенных в туннеле. Трафик VPN инкапсулируется в UDP.

В этом руководстве описывается, как настроить WireGuard на машине с CentOS 8, которая будет действовать как VPN-сервер. Мы также покажем вам, как настроить WireGuard в качестве клиента. Клиентский трафик будет маршрутизироваться через сервер CentOS 8. Эту настройку можно использовать в качестве защиты от атак «Человек посередине», анонимного просмотра веб-страниц, обхода контента с ограничением по географическому признаку или предоставления вашим коллегам, которые работают из дома, безопасного подключения к сети компании.

Подготовка

Вам понадобится сервер CentOS 8, к которому вы можете получить доступ как root или учетную запись с привилегиями sudo .

Настройка сервера WireGuard

Мы начнем с установки WireGuard на машину с CentOS и настроим его для работы в качестве сервера. Мы также настроим систему для маршрутизации клиентского трафика через нее.

Установка WireGuard на CentOS 8

Инструменты и модуль ядра WireGuard доступны для установки из репозиториев Epel и Elrepo. Чтобы добавить репозитории в вашу систему, выполните следующую команду:

После этого установите пакеты WireGuard:

Вас могут попросить импортировать ключи GPG репозиториев. При появлении запроса введите y .

Настройка WireGuard

Пакет wireguard-tools включает два wireguard-tools командной строки с именами wg и wg-quick которые позволяют настраивать интерфейсы WireGuard и управлять ими.

Мы будем хранить конфигурацию VPN-сервера и в каталоге /etc/wireguard . В CentOS этот каталог не создается во время установки. Выполните следующую команду, чтобы создать каталог :

Создайте открытый и закрытый ключи в каталоге /etc/wireguard .

Вы можете просматривать файлы с помощью cat или less . Закрытый ключ ни в коем случае нельзя передавать кому-либо.

Теперь, когда ключи сгенерированы, следующим шагом является настройка туннельного устройства, которое будет маршрутизировать трафик VPN.

Устройство можно настроить либо из командной строки с помощью ip и wg либо путем создания файла конфигурации с помощью текстового редактора.

Создайте новый файл с именем wg0.conf и добавьте следующее содержимое:

Интерфейс можно назвать как угодно, однако рекомендуется использовать что-то вроде include wg0 или wgvpn0 . Настройки в разделе интерфейса имеют следующее значение:

wg0.conf и privatekey не должны быть доступны для чтения обычным пользователям. Используйте chmod чтобы установить разрешения на 600 :

После этого wg0 интерфейс wg0 , используя атрибуты, указанные в файле конфигурации:

Команда выведет что-то вроде этого:

Чтобы просмотреть состояние и конфигурацию интерфейса, запустите:

Вы также можете использовать команду ip для проверки состояния интерфейса:

Чтобы wg0 интерфейс wg0 во время загрузки, выполните следующую команду:

Серверная сеть

Чтобы NAT работал, нам нужно включить переадресацию IP. Создайте новый файл /etc/sysctl.d/99-custom.conf и добавьте следующую строку:

Сохраните файл и примените изменения с помощью sysctl :

Вот и все. Пир CentOS, который будет действовать как сервер, настроен.

Настройка клиентов Linux и macOS

Процесс настройки клиента Linux и macOS практически такой же, как и для сервера. Начните с создания открытого и закрытого ключей:

Создайте файл wg0.conf и добавьте следующее содержимое:

Настройки в разделе интерфейса имеют то же значение, что и при настройке сервера:

Одноранговый раздел содержит следующие поля:

Если вам нужно настроить дополнительных клиентов, просто повторите те же шаги, используя другой частный IP-адрес.

Настройка клиентов Windows

Загрузите и установите пакет Windows msi с веб-сайта WireGuard .

После установки откройте приложение WireGuard и нажмите «Добавить туннель» -> «Добавить пустой туннель…», как показано на изображении ниже:

Пара публичных ключей создается автоматически и отображается на экране.

Введите имя туннеля и отредактируйте конфигурацию следующим образом:

В разделе интерфейса добавьте новую строку для определения адреса туннеля клиента.

В одноранговый раздел добавьте следующие поля:

После этого нажмите кнопку «Сохранить».

Добавить однорангового клиента к серверу

Обязательно измените CLIENT_PUBLIC_KEY на открытый ключ, сгенерированный на клиентском компьютере ( sudo cat /etc/wireguard/publickey ), и настройте IP-адрес клиента, если он отличается. Пользователи Windows могут скопировать открытый ключ из приложения WireGuard.

После этого вернитесь на клиентский компьютер и откройте интерфейс туннелирования.

Клиенты Linux и macOS

На клиентах Linux выполните следующую команду, чтобы открыть интерфейс:

Теперь вы должны быть подключены к серверу CentOS, и трафик с вашей клиентской машины должен проходить через него. Проверить соединение можно с помощью:

Вы также можете открыть свой браузер, ввести «what is my ip», и вы должны увидеть IP-адрес вашего сервера CentOS.

Чтобы остановить туннелирование, wg0 интерфейс wg0 :

Клиенты Windows

Если вы установили WireGuard в Windows, нажмите кнопку «Активировать». После подключения одноранговых узлов статус туннеля изменится на Активный:

Выводы

Мы показали вам, как установить WireGuard на машину с CentOS 8 и настроить ее как VPN-сервер. Эта настройка позволяет вам просматривать веб-страницы анонимно, сохраняя конфиденциальность ваших данных о трафике.

Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарий.

WireGuard — инструмент для построения виртуальных сетей. Многие называют его этаким «VPN нового поколения». Он включен в состав ядра, начиная с версии 5.6.

Заметка обновлена 27.02.2020.

В рамках этой заметки, мы запустим в работу простой WireGuard VPN сервер и настроим подключение из Linux клиента к нему. Работать мы будем в CentOS 8, но инструкция вполне подойдёт и для других дистрибутивов, разве что пакетные менеджеры и репозитории будут отличаться.

wireguard

Сервер wireguard.

Подготовка и установка.

1. Для начала, подключаем репозитории EPEL и RPMFusion Free. Cтавим доступные обновления и запускаем систему с новым ядром.

2. Далее, ставим на сервер всё необходимое и собираем модуль для Wireguard. После, убеждаемся, что модуль запущен в работу:

Вывод последней команды будет примерно таким:

Настройка сервера.

3. Генерируем ключи для клиента и сервера:

4. Создаём конфигурационный файл для сервера /etc/wireguard/wg0.conf со следующим содержимым:

Разумеется, вместо SERVER_PRIVATE_KEY и CLIENT_PUBLIC_KEY мы прописываем ключи, из созданных ранее файлов. Далее, комментарии по конфигу:

Address — адрес виртуального интерфейса wg0 на сервере.
ListenPort — порт, на котором будет работать VPN.
AllowedIPs — виртуальные IP клиентов, которые будут подключаться к нашему серверу.

При необходимости, мы можем так же указать параметры PostUp и PostDown — команды, которые будут выполнены при включении и отключении интерфейса.

5. Включаем форвардинг пакетов:

6. Настраиваем фаервол:

7. Запускаем сервис в работу:

Клиент wireguard.

Пишем конфиг.

8. На основе сделанной настройки, пишем простой конфиг для клиента. Этот конфиг подойдёт и для десктопа, и для, например, android приложения:

В данном случае, вместо CLIENT_PRIVATE_KEY и SERVER_PUBLIC_KEY мы опять же, подставляем ключи, сгенерированные ранее, а вместо SERVER_REAL_IP прописываем IP адрес нашего сервера, на котором установлен VPN.

Wireguard и десктоп клиент.

Проверяем подключение, и если всё сделано верно, то весь наш трафик теперь будет проходить через VPN сервер.

Для отключения от VPN просто выполняем команду wg-quick down wg0-client:

При необходимости, мы можем управлять сервисом через systemd:

Wireguard на android.

Для использоания wireguard на android, достаточно скачать клиента из Play Market или из F-Droid репозитория, а для подключения просто выполнить импорт подготовленного wg конфига для клиента.

И, собственно, всё. Вот так, очень просто (куда проще чем тот же OpenVPN) мы можем настроить защищённый VPN туннель и использовать его в повседневной работе.

Дополнительно.

Быстрая установка.
Использование iptables.

Для случаев, когда в системе не оказывается firewalld (либо его не хочется ставить по какой-то причине), можно настроить обработку подключений с помощью iptables, для этого, конфиг на сервере нужно модифицировать так:

Несколько клиентов.

Для работы с несколькими клиентами, каждому из них нужно сгенерировать свои открытый и закрытый ключи. Затем, в конфиге сервера указать каждого из них. Пример такого конфига:

Просто, для истории.

21 thoughts on “ WireGuard ”

Так и не дошли руки?

Сам нашел косяк, у клиента в конфиге обязательно должна быть маска /32

Более производительный. На роутере где tinc загибался под 10 мегабитами, wireguard 80-90 давал.

Проблема в том, что он только UDP.

А почему это проблема?

Потому что в офисной сетке нашей например UDP вообще зарезан. А вот OpenVPN по TCP на 443-й порт прекрасно работает.

Возможно ли с помощью WireGuard создать VPN между
точкой с реальным IP адресом и точкой без реального IP адреса ( роутер+OpenWRT+3G/4G internet)? При этом требуется доступ к компьютерам, находящимся за роутером с OpenWRT.

как отключить логи?

Возможно неправильно указываю -> Endpoint = SERVER_REAL_IP:51820

Пробывал разные внешние сервисы, но не получилось.
Что не так? Где смотреть?

Вы пробовали делать настройки, чтобы default gateway поднимался только после установления соединения?

Чтобы этого не произошло, достаточно настроить Kill Switch.
В конфиг клиента добавляем пару строк. Покажу на примере iptables в линукс:

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_REAL_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

А как написать конфиг если у меня на серваке серый адре, на роутере белый с пробросом протов на серый и клиентом является плашет с симкой?

Здравствуйте, есть VPS установил WG (192.168.2.1) так же есть debian 10 клиент 192.128.2.2 он же шлюз в локальной сети для обхода блокировок, соединение через WG с сервером установлено, как сделать так что бы был доступ в локальную сеть 192.168.1.0/24 с сервера? Не могу разобраться с маршрутом

Здравствуйте, есть VPS установил WG (192.168.2.1) так же есть debian 10 клиент 192.128.2.2 он же шлюз (192.168.1.2) в локальной сети для обхода блокировок, соединение через WG с сервером установлено, как сделать так что бы был доступ в локальную сеть 192.168.1.0/24 с сервера? Не могу разобраться с маршрутом

Столкнулся с не критичной проблемой:
Несмотря на то, что мой хостинг провайдер находится в Англии, а по тестам DNS leaks мне выделили сервер во Франции, поисковики считают что я в Украине..
Вот и думаю, где пошаманить, чтобы играться с определением геолокации

Ребят, подскажите, пожалуйста, как сконфигурировать route, чтобы клиент не маршрутизировал трафик до одного конкретного айпишника? То есть чтобы трафик до этого шел напрямую на клиенте.

в конфиге опенвпн на клиенте я просто добавлял
route 255.255.255.255 net_gateway

У меня ANR уведомление перестало выплывать! Отметьте у себя в качестве достоинства приложения!

Читайте также: