Как включить SSH в Ubuntu 20.04
Безопасный доступ к вашей машине Ubuntu из любого места
Настройте собственный VPN с помощью Wireguard
VPN (Virtual Private Network) позволяет пользователю подключиться к частной сети удаленно , так как если компьютер пользователя был непосредственно подключен к частной сети. Первоначально технология была разработана для обеспечения удаленного доступа к внутренней частной сети компании для сотрудников, фактически не присутствующих в месте расположения внутренней сети.
Сервер VPN развернут на месте внутренней сети. Этот сервер находится в общедоступной сети, и сотрудник может получить к нему доступ с помощью клиента VPN. Для подключения к VPN-серверу требуется аутентификация. Связь между VPN-сервером и VPN-клиентом защищена с помощью протокола туннелирования. Обратите внимание, что эта связь может быть или не быть зашифрованной, но обычно в большинстве протоколов VPN она зашифрована.
Еще одно использование VPN - получение анонимности при доступе к Интернету или обход географических ограничений, накладываемых при доступе к некоторым веб-сайтам. В таких случаях сеть, к которой пользователь хочет подключиться, не является частной сетью, а вместо этого является Интернетом.
Многие протоколы VPN были разработаны за эти годы. Эти протоколы используют различные протоколы туннелирования и алгоритмы шифрования для связи между сервером и клиентом.
Одним из таких протоколов, который в последнее время получает широкое распространение, является Wireguard . Wireguard легче, проще и производительнее, чем хорошо известные традиционно используемые протоколы VPN, такие как OpenVPN, IPSec. Он уже реализован для Windows, Mac OS и большого количества дистрибутивов Linux. В Linux он реализован как модуль ядра. Он доступен в официальных репозиториях Ubuntu 20.04.
В этой статье мы увидим, как настроить сервер и клиент Wireguard VPN в Ubuntu 20.04.
Установка
Для этой статьи я настраиваю Wireguard Server на Ubuntu 20.04 Linode и Wireguard Client на моем локальном компьютере с Ubuntu 20.04.
Пакет wireguard
устанавливает как сервер Wireguard, так и клиент. Выполните следующую команду как на сервере, так и на клиентском компьютере.
sudo apt install wireguard
Конфигурация сервера
Ключи безопасности
Нам нужно сгенерировать набор пар открытого / закрытого ключей для аутентификации и защиты соединения Wireguard. Это можно сделать с помощью следующих команд:
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee private_key | wg pubkey > public_key
Обратите внимание, что мы выполняем все задачи по настройке как суперпользователь. Причина в том, что доступ к каталогу /etc/wireguard
запрещен для обычных пользователей, а доступ к каталогу не может быть получен только с привилегиями sudo для обычного пользователя.
Далее мы устанавливаем маску создания файла на077
. Это означает, что всякий раз, когда какой-либо процесс создает новый файл в этой папке, его разрешения будут автоматически замаскированы с помощью 077. Например. если в этой папке создается файл с разрешениями 777, он автоматически маскируется, и разрешения фактически становятся 700. Это делается для того, чтобы только владелец файла имел все права доступа к файлу, а все остальные не имели разрешений.
В следующей строке мы генерируем пару открытого / закрытого ключей для сервера. Они сохраняются в файлах private_key
и public_key
. Чтобы просмотреть ключи, запустите:
cat private_key
cat public_key
Скопируйте закрытый ключ, он нам понадобится на следующем шаге.
Примечание: никогда не сообщайте свой закрытый ключ публично!
Конфигурационный файл
Создадим файл конфигурации для Wireguard Server. Вы можете выбрать любое имя для файла. В wg0.conf
этом примере мы создадим файл .
vim wg0.conf
Добавьте в файл следующее.
[Interface]
Address = 10.20.43.1/24
SaveConfig = true
ListenPort = 51190
PrivateKey =
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE
Вставьте закрытый ключ, который мы ранее скопировали, в строку 5 приведенного выше кода.
Нам нужно настроить Wireguard в другой (виртуальной) подсети, отличной от IP-адреса сервера. Здесь я использовал 10.20.43.1 для сервера и 10.20.43.2 для клиента. Здесь можно использовать любую подсеть. Чтобы получить IP-адрес сервера и интерфейса, запустите:
ifconfig
Выделенная часть - это IP-адрес.
Обратите внимание на IP-адрес сервера. Это требуется во время настройки клиента.
Интерфейс, используемый сервером, как показано на изображении выше, имеет вид eth0
. Имя интерфейса может отличаться в зависимости от сети пользователя, это может быть wlan0
или wlp2s0
в случае, если пользователь подключен к сети Wi-Fi с помощью беспроводной карты.
Замените in PostUp
и PostDown
своим интерфейсом; в этом примере это так eth0
. PostUp
и PostDown
директивы используются , чтобы указать , какие команды должны быть запущены , когда сервер запускает и останавливает соответственно. В нашем примере мы используем iptables
команду для установки IP-правил так, чтобы IP-адрес сервера был общим для клиентов. Правила упадут, как только сервер остановится.
Сохраните и выйдите из файла. При использовании vim нажмите Esc , затем введите :wq
и нажмите Enter, чтобы сохранить и выйти.
Если вы используете ufw
брандмауэр на сервере, нам необходимо разрешить UDP-подключения к порту для VPN-сервера, 51190.
ufw allow 51190/udp
Запуск службы
Теперь, когда настройка завершена, мы можем запустить службу Wireguard VPN.
Чтобы служба запускалась во время загрузки, запустите:
systemctl enable [email protected]
Обратите внимание, что wg0
это имя файла конфигурации.
Чтобы запустить службу, запустите:
service [email protected] start
Убедитесь, что служба успешно запущена:
service [email protected] status
Убедитесь, что интерфейс, который мы создали в файле конфигурации, запустился, используя команду IP.
ip a show wg0
Теперь сервер Wireguard VPN настроен и работает. Теперь настроим клиента.
Конфигурация клиента
Конфигурация клиента для Wireguard более или менее аналогична конфигурации сервера. Мы генерируем ключи для клиента, а затем создаем файл конфигурации.
Ключи безопасности
Чтобы сгенерировать пару открытого / закрытого ключей для клиента, запустите:
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key
Открытый и закрытый ключи для клиента теперь генерируются соответственно в файлах client_private_key
и client_public_key
.
Убедитесь, что они были созданы, используя cat
команду.
cat client_private_key
cat client_public_key
Скопируйте отображаемый закрытый ключ, поскольку нам нужно добавить его в файл конфигурации для клиента.
Конфигурационный файл
Создайте файл конфигурации с любым именем. Мы будем создавать его с именем wg0-client
для этого примера.
vim wg0-client.conf
Добавьте следующую конфигурацию.
[Interface]
# IP Address and Private Key of the Client
Address = 10.20.43.2/24
PrivateKey =
[Peer]
# Public key, IP Address and Port of the Server
PublicKey =
Endpoint = :51190
AllowedIPs = 0.0.0.0/0, ::/0
Введите адрес подсети для клиента. Как описано ранее, 10.20.43.2
в этом примере мы используем для клиента.
Добавьте закрытый ключ клиента, сгенерированный на предыдущем шаге, в строку 4 приведенного выше кода конфигурации.
В разделе «Peer» мы добавляем информацию о VPN-сервере Wireguard, к которому мы хотим подключиться.
Введите открытый ключ сервера. Введите IP-адрес сервера , который мы ранее отметили, и порт в заданном формате для конечной точки . Это порт, который мы указали в файле конфигурации сервера и на котором запущена служба VPN на сервере.
Разрешенные IP-адреса следует вводить в том виде, в каком они заданы (0.0.0.0/0), чтобы любой запрос на динамический общедоступный IP-адрес, используемый клиентом, всегда перенаправлялся на сервер VPN.
Сохраните и выйдите из файла. При использовании vim нажмите Esc , затем введите :wq
и нажмите Enter, чтобы сохранить и выйти.
Включите клиентскую службу для запуска при каждой загрузке и запустите ее.
systemctl enable [email protected]
service [email protected] start
Убедитесь , что служба запущена.
service [email protected] status
Добавление пира к серверу
Теперь у нас есть VPN-сервер и клиент. Однако безопасный туннель между ними не устанавливается, если мы не установим одноранговое соединение между сервером и клиентом.
Вернитесь на сервер. Сначала остановите службу VPN .
service [email protected] stop
Затем откройте файл конфигурации, чтобы добавить конфигурацию для однорангового узла (клиента).
vim /etc/wireguard/wg0.conf
Добавьте в файл следующие строки.
[Peer]
PublicKey =
AllowedIPs = 10.20.43.2/32
Теперь снова запустите службу VPN .
service [email protected] start
Вот и все! Это вся конфигурация, необходимая для настройки клиента и сервера Wireguard VPN. Давайте теперь протестируем наш VPN.
Тестирование VPN
Во-первых, давайте сделаем простой пинг от клиента к серверу, чтобы убедиться, что связь через туннель VPN работает. Выполните на клиенте следующее :
ping 10.20.43.1
Затем откройте веб-браузер и откройте любой веб-сайт, чтобы проверить, можете ли вы подключиться к Интернету с клиентского компьютера. Вы также можете проверить подключение к Интернету из командной строки, используя wget
.
wget
Теперь мы проверили подключение к туннелю и подключение к Интернету. Если оба работают, теперь нам нужно убедиться, что весь интернет-трафик, поступающий к клиенту, проходит через сервер.
Для этого нам просто нужно проверить IP-адрес клиента, видимый в Интернете. Один из способов сделать это - зайти на сайт whatsmyip.org . Или же из командной строки мы можем запросить другую аналогичную службу, называемую IP-информацией, с помощью Curl.
Выполните на клиентском компьютере следующее
curl https://ipinfo.io/ip
да. Это общедоступный IP-адрес Linode, на котором размещен VPN-сервер. Вот как достигается анонимность с помощью VPN, поскольку теперь во всем Интернете виден IP-адрес VPN-сервера, а не вашего компьютера.
Заключение
Простота настройки - одно из наиболее важных преимуществ Wireguard по сравнению с традиционным программным обеспечением VPN, таким как OpenVPN, для настройки которого требуется более высокий уровень знаний в области сетей и маршрутизации. Однако отсутствует подробная официальная документация для Wireguard, что может вызвать проблемы, если ваша установка Wireguard выдает ошибки или работает не так, как ожидалось.
Тем не менее Wireguard - отличный выбор, если вам нужен собственный VPN для безопасной связи через Интернет. Чтобы узнать больше о Wireguard, протоколах и технологиях, которые он использует, вы можете посетить официальный сайт .
Безопасный доступ к вашей машине Ubuntu из любого места
Узнайте, как обновить Firefox из Терминала на ПК с Ubuntu Linux
Краткое руководство по установке Google Chrome из командной строки в Ubuntu 20.04
Безопасный доступ к вашей машине Ubuntu из любого места
Настройте собственный VPN с помощью Wireguard
Одна из первых вещей, которые вы должны установить на свой Linux-компьютер
Простое руководство, которое поможет вам перенести файлы в удаленную систему из вашей системы Linux с помощью команды scp.
Предоставьте root-права любому пользователю с sudo в Ubuntu 20.04 LTS
В этой статье объясняется процесс добавления аутентификации ключей SSH на сервер Ubuntu 20.04 и отключения аутентификации на основе пароля.
Speedtest.net - это сервис для проверки скорости вашего интернет-соединения. Он использует ближайший сервер speedtest.net для загрузки
За исключением всего лишнего, вот список лучших бесплатных видеоредакторов для Ubuntu, которые вы можете использовать для создания потрясающих видеороликов.
Хотя вы всегда можете использовать приложение для слайд-шоу собственных обоев Ubuntu, вот несколько приложений для загрузки и динамической установки обоев.
Установите TensorFlow с помощью Python (pip) или контейнера Docker