
Установленные в контейнере Docker пакеты, используемые библиотеки и даже базовый образ – любой компонент может создать уязвимость. Сайт proglib.io рассказал, как вовремя найти и устранить течь.
Сегодня в статье приведу пример по установке и настройке 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Установку нашего VPN WireGuard я буду производить на сервере под управлением операционной системы Ubuntu/Debian. И так поехали.
Для начала надо добавить официальный репозиторий в систему:
sudo add-apt-repository ppa:wireguard/wireguardsudo apt updatesudo apt install -y wireguard wireguard-dkms iptables resolvconf qrencodeТак как пакет входит в официальный репозиторий, то необходимо набрать всего лишь данные команды:
sudo apt updatesudo apt install -y wireguard wireguard-dkms iptables resolvconf qrencodeДля того чтобы установить 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. Для этого создадим файл конфигурации и необходимые ключи шифрования. Все действия выполняем из под 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Следующим шагом нам необходимо включить форвардинг пакетов через наш сервер, для этого открываем следующий файл:
sudo nano /etc/sysctl.confИ уберем знак комментария # со строки:
net.ipv4.ip_forward=1Применим изменения
sudo sysctl -pДалее отрываем файл на редактирования и вносим необходимую информацию о нашей VPN сети.
sudo nano /etc/wireguard/wg0.confВнутри, в разделе [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Пробуем поднять нашу сеть скриптом 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В качестве клиента у меня будет выступать ноутбук с операционной системой 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Запускаем сервис на Ubuntu:
sudo systemctl start wg-quick@wg0.service Запускаем сервис на Debian:
sudo wg-quick up /etc/wireguard/wg0.confНа сервере также необходимо добавить информацию о клиенте. Иначе ваш туннель 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Запускаем наш сервис:
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Хотя статья получилась большой, но все настраивается очень быстро.
/usr/lib/sysctl.d/10-pve-ct-inotify-limits.conf …/usr/lib/sysctl.d/10-pve.conf …/usr/lib/sysctl.d/50-pid-max.conf …/etc/sysctl.d/99-sysctl.conf …/usr/lib/sysctl.d/protect-links.conf …/usr/lib/sysctl.d/pve-firewall.conf …/etc/sysctl.d/wg.conf …/etc/sysctl.conf …Для обмена данными между хостами от одного компьютера к другому используется технология, которая называется ethernet. Чтобы обмен данными стал возможен, как минимум необходимо настроить сеть между двумя устройствами.
В операционных системах linux для настройки сети есть сетевая утилита ifconfig, она позволяет смотреть сетевые настройки, а также изменять их, делать свою конфигурацию, назначать IP, шлюз, маску подсети и даже мак-адрес.
Сегодня рассмотрим очень полезную утилиту под названием SystemBack.
SystemBack – позволяет создавать резервные копии и точки восстановления вашей системы, а также создавать Live-образа и iso-образа, основанного на вашей системе, с возможностью инсталляции на другие компьютеры.
Имеется ещё ряд полезных функций таких как:
Дня начала давайте скачаем сам пакет Systemback по следующей ссылке:
Далее необходимо распаковать и установить скаченный архив. Откройте терминал и выполните следующие действия:
cd /путь/куда/загрузили/пакет
tar -xvf systemback-install_pack-1.9.3.tar.xz
cd systemback-install_pack-1.9.3/
sudo sh ./install.sh
или можно пойти другим путем, добавить репозиторий в source лист:
sudo add-apt-repository ppa:nemh/systemback
sudo apt update
sudo apt install systemback
По окончании установки вы можете открыть Systemback из системного меню.
Программу нужно запускать с правами суперпользователя (root). При запуске из главного меню системы пароль будет запрошен автоматически. При запуске из терминала может возникнуть сообщение: «Root privileges are required for running the Systemback!».
Чтобы сообщение не появлялось необходимо запускать утилиту через sudo:
sudo systemback
Если программа установилась без поддержки русского языка, тогда доустановите пакеты локализации:
sudo apt-get install systemback-locales
Если по какой либо причине русская локализация работает некорректно, например созданный iso-образ отображается при загрузке кракозябрами, то чтобы исправить это, вам необходимо загрузить исправленный языковой пакет, которым заменим пакет в SystemBack.
Загрузите и распакуйте языковый пакет по следующей ссылке:
Или так
cd /home/ваш_юзер/
wget https://yadi.sk/d/8ERBrAHRpyzXk
Распаковываем скачанный архив в директории юзера:
unzip systemback_lang.zip
После распаковки в директории будут располагаться файлы языковых пакетов которыми надо заменить существующие файлы в утилите SystemBack.
Для замены локализации проделаем следующие действия:
sudo rm /user/share/systemback/lang/systemback_ru.qm
sudo cp /home/ваш_юзер/systemback_lang/systemback_ru.qm /user/share/systemback/lang/
После всех этих изменений вы можете создать live-систему и iso-образ, основанных на вашей системе, с возможностью установки на другие компьютеры:
Все созданные файлы находятся в директории home, файловой системы дистрибутива:
Запишите iso-образы на флешку специальной программой (Cоздание загрузочного диска; mintinstall, Etcher и т.д.) и загрузитесь с неё.
Теперь Systemback Live будет отображаться без кракозябров:
Примечание. Подобное можно выполнить если у вас украинская локализация. В этом случае применяется второй файл из архива:
systemback_uk.qm.
Если после запуска у вас появляется предупреждение вроде этого:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
Небезопасная авторизация X Windows
То для исправления данной ошибки нам необходимо сделать следующее:
Создадим файл для sudoers
sudo visudo -f /etc/sudoers.d/local
внесем в него следующее:
Defaults env_keep += "DISPLAY XAUTHORITY"
После данной манипуляции предупреждение должно исчезнуть.
[endtxt]
Авторы: Рафаэль Херцог, Ролан Ма
Язык: Русский
Лицензия: Creative Commons Attribution-ShareAlike
Страниц: 522
Эта книга — полноценный справочник, в котором вы найдете все об операционной системе Debian начиная от начальной установки до полной настройки и настройки сервисов и системных компонентов. Читать
При установке через ap-get глюкануло и не туда не сюда. Ничего не давало не установить не переустновить.
Через dpkg -r удалил эти пакеты, потом через apt-get их уже не было
Автор: Viktor