Вопрос или проблема
У меня проблема с сервером, который находится за межсетевым экраном, по сути, весь интернет заблокирован, и я не могу использовать “add-apt-repository”, возникают проблемы типа “Пользователь или команда X не существует”, я не могу использовать wget для загрузки чего-либо, в основном, все заблокировано. Я обратился к команде безопасности, чтобы дать серверу полный доступ в интернет, но они отказали, они могут только разрешить доступ определенным IP-адресам, и попросили меня отправить список IP-адресов для разблокировки из межсетевого экрана, но я точно не знаю, что им отправить, это вообще возможно? Есть ли список IP, который я могу им отправить, чтобы добавить необходимые репозитории? Предположим, что я пытаюсь добавить “ondrej php” для установки php8.0. Есть ли альтернативные решения?
Выберите раскомментированные строки с URL-адресами репозиториев из вашего конфигурационного файла для apt:
grep -v -e "^#" -e "^$" /etc/apt/sources.list
Получите имена серверов репозиториев (FQDN) из URL-адреса.
Пример вывода команды:
deb http://cz.archive.ubuntu.com/ubuntu/ jammy main restricted multiverse
deb http://cz.archive.ubuntu.com/ubuntu/ jammy-updates main restricted multiverse
deb http://cz.archive.ubuntu.com/ubuntu/ jammy universe
deb http://cz.archive.ubuntu.com/ubuntu/ jammy-updates universe
deb http://cz.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://cz.archive.ubuntu.com/ubuntu/ jammy-security main restricted multiverse
deb http://cz.archive.ubuntu.com/ubuntu/ jammy-security universe
FQDN – это cz.archive.ubuntu.com
в моем примере.
Получите IP-адрес сервера(ов), используя команду ПК dig
(Linux) или nslookup
(Windows) или приложение для Android (например, Net Analyzer). Устройство должно быть подключено к интернету в этот момент:
dig cz.archive.ubuntu.com
Посетите страницу https://launchpad.net/~ondrej/+archive/ubuntu/php и найдите URL-адреса репозиториев. Первый в моем списке должен быть правильным.
FQDN – это ppa.launchpadcontent.net
. Разрешите IP-адрес от имени, используя аналогичный способ, описанный выше.
Отправьте все IP-адреса, которые вы получили, вашей команде безопасности для добавления TCP порта 80 (и, возможно, 443) в белый список.
Я только что добавил следующие домены в белый список веб-доменов, и тогда все заработало нормально:
api.launchpad.net
ppa.launchpadcontent.net
archive.ubuntu.com
*.archive.ubuntu.com
Ответ или решение
Ubuntu Server за брандмауэром: Решение Проблем с Доступом к Репозиториям
Введение
Работа с сервером под управлением Ubuntu, скрытым за брандмауэром, может вызывать множество трудностей, особенно если доступ к интернет-ресурсам ограничен. Эти трудности особенно обозначаются при использовании команд, таких как add-apt-repository
, что в свою очередь может вызвать ошибки "X user or team does not exist". В этом руководстве мы рассмотрим, как получить доступ к необходимым репозиториям и альтернативные решения для установки необходимых пакетов.
Проблема
Сервер, находящийся за брандмауэром, имеет ограниченный доступ к интернету, и вам необходимо взаимодействовать с определёнными репозиториями, такими как PPA ondrej/php
, чтобы установить PHP 8.0. Поскольку вы уже обратились к команде безопасности с просьбой предоставить полный доступ к интернету, но получили отказ, следует рассмотреть другие пути.
Определение Необходимых IP-адресов
Для того чтобы разрешить вашему серверу доступ к необходимым репозиториям, потребуется предоставить вашему администратору сети список IP-адресов. Это можно сделать следующим образом:
-
Список Репозиториев: Сначала вам необходимо получить список не закомментированных URL-адресов репозиториев из файла конфигурации
apt
:grep -v -e "^#" -e "^$" /etc/apt/sources.list
-
Разрешите Полные Доменные Имена: На основе полученных URL-адресов определите полные доменные имена (FQDN). Например, для репозитория
cz.archive.ubuntu.com
это будет полное имя. -
Получите IP-адреса: Используйте команду
dig
илиnslookup
для получения IP-адресов соответствующих FQDN:dig cz.archive.ubuntu.com
Примеры Репозиториев и IP-адресов
Для успешной работы вам может понадобиться предоставить IP-адреса следующих репозиториев:
ppa.launchpadcontent.net
api.launchpad.net
archive.ubuntu.com
*.archive.ubuntu.com
Используя dig
, получите IP-адреса для каждого из перечисленных доменов и передайте их вашей команде безопасности для добавления в белый список. Важно обеспечить разрешение на порты TCP 80 и 443.
Альтернативные Решения
Если процесс получения IP-адресов или внесение их в белый список из-за административных политик сложно осуществить, существуют альтернативные пути:
-
Использование локального кэша: Можно скачать необходимые пакеты на другом компьютере с доступом в интернет, а затем перенести их на ваш сервер через USB-накопитель или с помощью SCP.
-
Создание собственного репозитория: Если у вас есть возможность ежедневно обновлять пакеты на сервере, можно создать локальный репозиторий и использовать его для установки необходимых компонентов.
-
Использование прокси-сервера: Настройка прокси-сервера может предоставить вашему серверу доступ к интернету без необходимости добавления IP-адресов в белый список.
Заключение
Работа с сервером Ubuntu, находящимся за брандмауэром, требует внимательности и соблюдения правильных процедур. Выбор подходящего метода для получения доступа к необходимым репозиториям может существенно облегчить вашу работу. Следуя приведенным рекомендациям, вы сможете минимизировать проблемы с установкой пакетов и обеспечите эффективное функционирование вашего сервера.