Возможный запустить (и обновление) Ubuntu только с доступом к Cacher APT?

Я настраиваю много 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:3142
  • доступ от "бэкенда", VM ограничен сетью бэкенда (192.168.200.1/24) полностью и правила netfilter, гарантирует только сервисы, предложения VM будут доступны и только apt-cacher-ng к экземпляру можно получить доступ

Моя система сможет обновить все свои пакеты этот путь? (Нет, никакое другое программное обеспечение не будет использоваться, или я упакую его сам.)

Вопросы о премии:

  • Предположим, что обновления проложили бы себе путь, там что-либо еще, чтобы не упустить в такой конфигурации?
  • Есть ли разумный способ иметь дело с пакетом repos то использование https://? Например, это было бы жизнеспособно, чтобы "просто" зеркально отразить соответствующие пакеты к локальному repo, который не использует https://?
4
задан 14 April 2020 в 00:28

2 ответа

Я понимаю, что Вы хотите полностью ограничить доступ к внешнему миру для бэкенда. Хост в 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.

3
ответ дан 25 April 2020 в 10:48

Если Вы позволили туннелям 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
  • Смонтируйтесь - связывают зеркальный каталог репозиториев с каталогом ftp как так:
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
1
ответ дан 25 April 2020 в 10:48

Другие вопросы по тегам:

Похожие вопросы: