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

Ставим wireguard на сервере:

Генерим ключи сервера:

Проставляем права на приватный ключ:

С помощью «ip a» проверим название интерфейса (enp0s3) и создадим для него конфиг:

Включаем IP форвардинг:

Включаем systemd демон с wireguard:

Создаём ключи клиента:

Добавляем клиента в конфиг сервера:

Перезагружаем systemd сервис с wireguard:

Клиент

На локальной машине (например, на ноутбуке) создаём текстовый файл с конфигом клиента:

Здесь <CLIENT-PRIVATE-KEY> заменяем на приватный ключ клиента, то есть содержимое файла /etc/wireguard/goloburdin_privatekey на сервере. <SERVER-PUBKEY> заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey на сервере. <SERVER-IP> заменяем на IP сервера.

Ограничение скорости на сервере

Outbound limit:

Inbound limit:
Создаём и запускаем ifb интерфейс inbound0:

Направляем пакеты с wireguard в этот интерфейс:

отдельный HFSC qdisc для ifb интерфейса и ограничение всего траффика 10Мбит:

Расширенное ограничение (взамен предыдущих двух строк):

Максималка – 50mbit, И 2 дочерних класса:
1) Для https скорость – 5mbit (фильтры ниже)
2) по умолчанию скорость – 45mbit (19)

Фильтры https для ip 10.0.0.6:

Настройка OpenVPN в Ubuntu

На сервере Openvpn

На сервере CA

В каталоге EasyRSA Создать файл «vars»

Создать корневой сертификат и сертификат для OpenVPN:
(Для второго понадобится passphrase от первого)

dh.pem сертификат нужно создать, даже если он не будет использоваться:

На сервере OpenVPN

Скопировать файлы сертификатов в каталог Openvpn:

Создать /etc/openvpn/server.conf:

Настраиваем IP форвардинг и iptables:

Проверка:

Создание клиентов на сервере Openvpn

На сервере CA
Создать ключ клиента и скопировать его на сервер OpenVPN (команда ниже):

На сервере OpenVPN:

Создать шаблон конфига ~/client-configs/base.conf:

Скопировать ключи клиента и ca:

Создать скрипт создания конфига ~/client-configs/make_config.sh:
(добавление tls закоментировано)

Сделать файл исполняемым, созданный client.ovpn использовать на клиенте:

systemd script для запуска\остановки службы

Создаём исполняемый файл, например в /etc/init.d/testscript

Для запуска (execstart): /etc/init.d/testscript start

Для остановки (execstop): /etc/init.d/testscript stop

Создание хэша пароля sha512

С помощью python или python3:

С помощью openssl:

Автоматизация обновления времени с помощью ntpdate

Созать файл и сделать исполняемым /etc/init.d/timeupdate:

chmod +x /etc/init.d/timeupdate

Создать ежедневное задание крон в 0 часов:
sudo crontab -e

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

Внешний Proxy сервер Squid в Ubuntu

/etc/squid/squid.conf

Если нужен доступ по паролю, с разрешённых хостов закоментить «http_access allow allowed_hosts» и раскоментить «http_access allow allowed_hosts allowed_users»
Если нужен доступ по паролю с любых хостов, убрать «allowed_hosts» из этой строки

Создать файл паролей (при добавлении следующего пользователя без «-c»):
sudo htdigest -c /etc/squid/passwd_digest ‘Сообщение при подключении’ username
Список разрешённых хостов в файле /etc/squid/allowed_hosts

В сетевых правилах открыть tcp 4080

Если ip клиента меняется, но есть доменное имя, можно его обновлять на сервере:

Создать скрипт /etc/init.d/getallowedip.sh и сделать его исполняемым:

sudo chmod +x /etc/init.d/getallowedip.sh

Добавить в задания cron, например запускать каждую минуту:

sudo crontab -e

Virtualbox 6.1 в Ubuntu 22.04

Добавить репозиторий и ключ:

Установка:

Установка из git репозитория

Установка сборочного окружения:

Git clone:

Команды сборки и т.д:

Добавить старый .deb репозиторий

Создать файл /etc/apt/sources.list.d/bionic.list с кодом:

Добавить файл ключа:

Архиватор tar

Заархивировать в архив:

Распаковать архив:

Просмотреть архив:

Рубрика: Linux | Метки: