Я настраиваю много VMs и контейнеры, и я делю некоторые диапазоны частной сети соответственно.
Предположим, что мне разделили гостей на "frontend" (192.168.100.0/24) и "бэкенд" (192.168.200.0/24) сеть (у некоторых может быть доступ к обоим). "frontend" сеть использует NAT и таким образом, у гостей действительно есть доступ к Интернету через это. Однако некоторые VMs, как предполагается, как очень разделяются и таким образом, сеть "бэкенда" только предоставляет доступ между гостями в той сети и хосте. Поиски DNS будут также строго ограничены, а также исходящий трафик от этих гостей.
Давайте теперь скажем, что я имею apt-cacher-ng
экземпляр, работающий 192.168.200.1 (бэкенд), который, оказывается, хост. Имя apt-cacher.backend.local
твердость к тому IP-адресу и нет никаких других ограничений доступа.
Если я скорректировал бы все мой sources.list
отрывки в /etc/apt
из VMs от:
deb http://us.archive.ubuntu.com/ubuntu/ focal main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ focal main restricted
... к (hacky путь):
deb http://apt-cacher.backend.local:3142/us.archive.ubuntu.com/ubuntu/ focal main restricted
deb-src http://apt-cacher.backend.local:3142/us.archive.ubuntu.com/ubuntu/ focal main restricted
... или выберите несколько более чистую строку файла конфигурации конфигурации для APT:
Acquire::http { Proxy "http://apt-cacher.backend.local:3142"; };
Так суммирование фактов:
apt-cacher.backend.local
(= 192.168.200.1) и любые имена, которые могут быть необходимы "бэкенду" VM, решат прекрасный, что-либо еще не будетapt-cacher-ng
будет работать на слушании 192.168.200.1:3142apt-cacher-ng
к экземпляру можно получить доступМоя система сможет обновить все свои пакеты этот путь? (Нет, никакое другое программное обеспечение не будет использоваться, или я упакую его сам.)
Вопросы о премии:
https://
? Например, это было бы жизнеспособно, чтобы "просто" зеркально отразить соответствующие пакеты к локальному repo, который не использует https://
?Я понимаю, что Вы хотите полностью ограничить доступ к внешнему миру для бэкенда. Хост в 192.168.200.1 является частью бэкенда.
Ваша идея будет работать, но хосту ACNG также нужен доступ к восходящим репозиториям для проксирования запроса на пакеты для бэкенда (по крайней мере это - то, как я понимаю, что Вы хотите сделать это). Таким образом хост должен будет также быть частью frontend или иметь некоторый другой способ соединиться с Интернетом. С другой стороны, можно предварительно загрузить все необходимые пакеты к успешно справляющемуся хосту repo. Это похоже на громоздкое решение для небольшого усиления, все же.
Я предлагаю, чтобы Вы изучили/etc/apt-cacher-ng/backend* файлы для соединения проводами, какие вышестоящие серверы будут использоваться.
Я также предлагаю, чтобы Вы установили squid-deb-proxy-client пакет на VM. Это позволит Вам полностью прозрачную конфигурацию VM, даже не играя с/etc/apt/sources.list. Волшебство происходит через avahi и/etc/apt/apt.conf.d/30autoproxy. Выполненный/usr/share/squid-deb-proxy-client/apt-avahi-discover от одного из VM для проверки Вы возвращаете IP хоста ACNG.
При изменении sources.list файлов на бэкенде machines/VM в Кв.-cacher.backend.local, никакие дальнейшие изменения не необходимы. Если бы Вы помещаете us.archive.ubuntu.com там, то необходимо было бы разрешить, что через DNS (он может в основном разрешить к любому IP, что Вам нравится, поскольку запрос будет проксирован к хосту ACNG).
Обслуживание восходящего repos доступный через https потребует дополнительной конфигурации.
Некоторые дополнительные соображения добавили день спустя
Вы упомянули, что у Вас будут некоторые локально произведенные пакеты для установки. Я предполагаю, что Вы будете служить им от $host в LAN. В этом случае я предлагаю добавить файл/etc/apt/apt.conf.d/99proxy, содержащий "Acquire::http::Proxy::$host "DIRECT";
. Это обходит успешно справляющийся прокси. Лично, я включал этот файл в deb-файл конфигурации, который я устанавливаю во всех машинах, это среди файлов, которым я служу от $host. Тот deb-файл конфигурации имеет другой отрывок конфигурации в/etc/apt/sources.list.d/private.list, содержащем deb http://$host/repo/debs/ generic private
указывая на reprepro репозиторий. Возможно, это - что-то, что принесло бы пользу Вам также.
Одна вещь я также хотел бы сделать Вас знающий, является этим если avahi-browse
или /usr/share/squid-deb-proxy-client/apt-avahi-discover
перечислите больше чем один экземпляр apt_proxy сервиса, Вы могли бы столкнуться с проблемой в зависимости от версии Вашей ОС VM.
Если Вы позволили туннелям http войти apt-cacher-ng
затем ответ на все Ваши вопросы да, это то, как apt-cacher-ng
используется.
После установки, на apt-cacher-ng
машина переходит к http://localhost:3142/ для инструкций и http://localhost:3142/acng-report.html для отчетов.
Отредактируйте конфигурационный файл на apt-cacher-ng
машина как так:
sudo nano /etc/apt-cacher-ng/acng.conf
некомментарий PassThroughPattern: .*
позволить туннелирование соединения HTPS.
затем сохраните файл и закройтесь, редактор путем нажатия Ctrl + x затем нажимают, y затем нажимают Enter.
затем перезапуск apt-cacher-ng
с новой конфигурацией как так:
sudo systemctl restart apt-cacher-ng
Ограничение соединений с сетью тыльной стороной руки на apt-cacher-ng
машина также рекомендуется. Это может быть сделано путем редактирования /etc/hosts.allow
файл и добавление следующей строки к нему:
apt-cacher-ng: 192.168.200.0/24
и редактирование /etc/hosts.deny
файл и добавление следующей строки к нему:
ALL: ALL
также рассмотрите добавляющие правила к брандмауэру на apt-cacher-ng
машина, чтобы только позволить соединения с необходимыми репозиториями связывается только.
Можно найти больше в этой ссылке.
Однако, если Вы хотите иметь локальную копию репозиториев для Ваших клиентов для обновления от локально, затем я предложил бы использовать apt-mirror
и proftpd-basic
сделать это на локальной машине, которая имеет доступ к Интернету и затем использует этот IP машин в исходных списках Ваших клиентов для обновления локально.
Чтобы сделать это, выполните эти шаги:
На машине обновления:
apt-mirror
и proftpd-basic
как так:sudo apt install apt-mirror proftpd-basic
/etc/apt/mirror.list
таким образом, это содержит repositoris выпуска, который Вы хотите зеркально отразить (например. bionic
) как так:sudo nano /etc/apt/mirror.list
и измените/добавьте репозитории соответственно, таким образом, это похоже на это:
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu artful-proposed main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu artful-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu artful-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu artful-backports main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu
затем сохраните файл и закройтесь, редактор путем нажатия Ctrl + x затем нажимают, y затем нажимают Enter.
apt-mirror
как так:sudo apt-mirror
apt-mirror
загрузит приблизительно 200 ГБ данных, и это могло бы занять время.
/etc/proftpd/conf.d/anonymous.conf
конфигурационный файл как так:sudo nano /etc/proftpd/conf.d/anonymous.conf
и скопируйте и вставьте следующее редактору:
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
затем сохраните файл и закройтесь, редактор путем нажатия Ctrl + x затем нажимают, y затем нажимают Enter.
proftpd
обработайте как так:sudo systemctl restart proftpd
sudo mount --bind /var/spool/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
На клиентах, которые будут обновлены:
/etc/apt/sources.list
файл так, чтобы они указали на ftp://Update_Machine_IP/
и изменение Update_Machine_IP
к IP машины обновления как так:sudo nao /etc/apt/sources.list
таким образом, это будет похоже на это:
deb ftp://Update_Machine_IP/ubuntu/ bionic main universe multiverse restricted
deb ftp://Update_Machine_IP/ubuntu/ bionic-security main multiverse universe restricted
deb ftp://Update_Machine_IP/ubuntu/ bionic-updates main multiverse universe restricted
затем сохраните файл и закройтесь, редактор путем нажатия Ctrl + x затем нажимают, y затем нажимают Enter.
sudo apt update