Есть немного, чтобы объяснить с вашим вопросом.
Во-первых, важно понимать, как YUM
и rpm
работать вместе:
- RPM - это формат пакета, и существует инструмент командной строки с аналогичным названием,
rpm
который устанавливает отдельные пакеты RPM. Вы можете думать об rpm
инструменте командной строки как аналогdpkg
командной строки, поскольку оба устанавливают отдельные пакеты без их зависимостей.
yum
это программа более высокого уровня, которая устанавливает пакет RPM и его зависимости. Вы можете думать о yum
команде как аналогapt-get
как оба могут установить пакет и все его зависимости.
- При запуске
yum install
вы должны использовать имя пакета, а не URL. Например: yum install package
аналогично тому, как вы будете запускать:apt-get install package
.
- Если у вас есть URL-адрес пакета, вы можете запустить его
rpm -i https://url
, но если у вас нет установленных зависимостей пакета, вам нужно будет установить их один за другим с rpm -i
(болезненным) или с yum
настроенным репозиторием.
Теперь, что касается GPG, есть несколько вещей, которые нужно понять, которые применимы как к пакетным системам Debian, так и к RPM, но самые важные вещи, которые нужно понять:
- Обе системы имеют 2 набора подписей GPG: подписи GPG на самих пакетах и подписи GPG в репозиториях.
- Пакеты Debian не проверяют подписи GPG, а официальные пакеты из репозиториев проектов Ubuntu и Debian не подписаны GPG.
- Обе системы уязвимы для целого ряда атак воспроизведения GPG при использовании поверх открытого текста HTTP; Вы должны абсолютно, 100% устанавливать свои пакеты через HTTPS, а не текстовый HTTP, если это вообще возможно.
Что касается подписей RPM и YUM GPG:
- Во-первых, вы можете указать путь или URL-адрес ключа GPG в файле конфигурации с помощью:
gpgkey=https://example/gpg.key
или gpgkey=/usr/share/example/gpg.key
. Вы можете указать несколько ключей GPG, если требуется более 1.
- Во-вторых, есть два варианта:
gpgcheck=1
и repo_gpgcheck=1
. Первый параметр вызывает yum install
проверку подписи GPG на самом пакете, второй параметр проверяет подпись GPG хранилища. В идеале, вы должны использовать оба, но многие репозитории не настроены должным образом для поддержки обоих.
- Первый раз при запуске
yum install
, yum
будет пытаться импортировать GPG ключей , перечисленные вgpgkey
случае , если они еще не были импортированы. Вам будет предложено принять или отклонить.
- У вас должен быть
pygpgme
установлен пакет в вашей системе для проверки подписей GPG. На последних версиях RHEL и CentOS pygpgme
автоматически устанавливается зависимость yum
, но вы должны убедиться, что она установлена в вашей системе.
- Там нет эквивалента
apt-transport-https
, yum
можно говорить по HTTPS из коробки, но вы должны убедиться , что версия yum
вы используете имеет sslverify
опцию , чтобы дефолт включены; некоторые версии yum
не делают. Если ваша версия этого не делает, вы должны включить ее. Очень важно проверять сертификаты SSL.
Даже с подписями GPG как на пакетах, так и в репозиториях, репозитории по-прежнему уязвимы для атак воспроизведения; Вы должны получить доступ к своим репозиториям через HTTPS, если это вообще возможно. Краткое объяснение одной атаки состоит в том, что злоумышленник может снимать метаданные репозитория и соответствующую подпись GPG в определенное время и воспроизводить эти метаданные и подпись клиенту, который их запрашивает, не давая клиенту видеть обновленные пакеты. Поскольку метаданные не затрагиваются, подпись GPG будет действительной. Затем злоумышленник может использовать эксплойт против известной ошибки в программном обеспечении, которая не была обновлена, для атаки на компьютер. Вы можете прочитать больше о нападениях на менеджеров пакетов в этой статье .
Я написал два обширных поста в блоге о GPG и YUM / об / мин, а также о GPG и APT .
Пожалуйста, оставьте комментарий, если у вас есть дополнительные вопросы, на которые я могу ответить; Управление пакетами невероятно сложно сделать правильно.
yum install
вы должны использовать имя пакета, а не URL». - Согласитесь, это то, что я обычно делаю с apt. Но учитывая URL, что бы вы сделали? Возможно, это очевидно, но вы можете просто вручную добавить репо,http://example.com
а затем сделатьyum install package
?apt-transport-https
?apt
репозитории теперь имеют даты действия в своихRelease
файлах, что ограничивает продолжительность времени, в течение которого атаки воспроизведения остаются в силе. (Если я правильно помню, это было реализовано в результате статьи, на которую есть ссылка в ответе.) Но использование TLS - лучшее решение!Valid-Until
был добавлен для предотвращения повторных атак. однако нецелесообразно просить пользователей репозитория загрузить метаданные для нового репо и вручную проверить их на предмет наличия заголовка. Гораздо проще просто сказать людям всегда использовать TLS.