Корпоративное зеркало репозиториев aptly в Ubuntu

Добавление репозитория с ключём, установка:

Создать .aptly.conf в домашнем каталоге, или /etc/aptly.conf:


Создание x64 репозитория на примере Ubuntu 22 jammy (без source)

Создать репозитории x64 (всё будет скачано в компонент main, если нужно отделить, нужно скачивать каждый компонент отдельно). Во время этих команд попросят добавить ключи, команда для этого будет на экране (gpg —no-default-keyring —keyring trustedkeys.gpg —keyserver keyserver.ubuntu.com —recv-keys 871920D1991BC93C):

Обновить репозиторий (скачать), создать снапшоты и объединить 3 в 1:

Опубликовать снапшот объединённого репозитория (origin и label берутся из файла InRelease в репозитории):

Настройка NGINX для публикации репозиториев (с сертификатом let’s encrypt):
sudo nano /etc/nginx/sites-available/repos.dom.loc:

Также нужно поменять порты\пути в default конфиге, либо выключить его.
Включить сайт, перезапустить nginx:

Подключение своего репозитория на клиенте

В /etc/apt/sources.list поменять адрес на внутренний и оставить только компонент main. Пример файла ubuntu 22:

Пример /etc/apt/sources.list.d/ubuntu.sources в ubuntu 24:

Далее apt update…

Дополнительная информация

Удаление репозитория на примере ubuntu 24:

Инфа по зеркалам и снапшотам (текущий объём нельзя посмотреть):

Обновление зеркала репозитория:

Автоматизация обновления зеркала репозиториев

Пример зеркала с отдельными компонентами main, contrib и non-free:

Настройка 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 использовать на клиенте:

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

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

С помощью openssl:

Внешний 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

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

Установка:

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

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

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

Установка snap пакетов без интернета

На такой же ОС с интернетом выяснить какие пакеты требуются для установки и скачать их. Например в Kubuntu20.04 для установки thincast-client:

Далее скопировать на ПК без интернета и установить:

Ubuntu не показывает экран, но подключается по ssh

Такое было в proxmox на ВМ с Ubuntu 16.04, но может быть в любом типе сборки

В настройках grub нужно заменить строку /etc/default/grub

sudo update-grub — обновить настройки grub
Возможно, нужно сделать set-default multi-user.target

Добавление нового диска в ubuntu

lsblk — отобразить подключенные диски (dev/sdb)
fdisk /dev/sdb — Вход в создание разделов
Если больше 2Тб, командной «g» задаём gpt (либо пропуск)
Командой «n» создаём новый раздел
Командой «w» сохраняем изменение

mkfs.ext4 /dev/sdb1 — форматируем в ext4
mkdir /hdd2 — Создаём каталог для монтирования диска
mount /dev/sdb1 /hdd2 — Монтируем раздел в каталог /hdd2
blkid | grep sdb1 — узнать uuid диска
Для автомонтирования узнать uuid диска и добавить запись в /etc/fstab:

echo "UUID=$(blkid | grep sdb1 | awk -F '"' '{print $2}') /hdd2 ext4 rw 0 1" | sudo tee -a /etc/fstab