VMmanager

Пример настройки FTP-репозитория

Статья содержит инструкции по созданию и настройке FTP-репозитория ISO-образов с анонимным доступом.

Чтобы создать репозиторий:

  1. Установите FTP-cервер vsftpd

    AlmaLinux
    yum install vsftpd
    Astra Linux, Ubuntu
    apt install vsftpd
  2. Создайте корневую директорию для хранения файлов репозитория: 

    mkdir -p /srv/ftp/iso
  3. Проверьте, что в файле /etc/passwd появилась запись для пользователя ftp: 

    Пример записи
    ftp:x:139:149:ftp daemon,,,:/srv/ftp:/usr/sbin/nologin
  4. Укажите следующие настройки в конфигурационном файле /etc/vsftpd/vsftpd.conf

    listen=YES
    listen_ipv6=NO
    anonymous_enable=YES
    anon_root=/srv/ftp/iso/
    no_anon_password=YES
    local_enable=YES
    hide_ids=YES
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    ssl_enable=NO
    allow_writeable_chroot=YES
  5. Перезапустите службу vsftpd

    systemctl restart vsftpd
  6. Скопируйте ISO-образ в директорию /srv/ftp/iso/.
  7. Определите размер ISO-образа в МиБ: 

    ls -l --block-size=M <имя_файла>
    Пример вывода
    -rw-rw-r-- 1 user user 389M May  5  2023 debian-11.7.0-amd64-netinst.iso
  8. Определите хеш-сумму ISO-образа: 

    sha1sum <имя_файла>
    Пример вывода
    c0d269af8978c625cb480ba2c723c7964c7e52ad  debian-11.7.0-amd64-netinst.iso
  9. Создайте файл описания репозитория /srv/ftp/iso/metadata.json. Подробнее о формате файла см. Репозитории ISO-образов.

    Пример файла metadata.json
    {
      "type": "iso",
      "images": [
        {
          "name": "Debian 11",
          "os_type": "linux",
          "tags": [
              "linux", "debian"
                ],
          "file_name": "debian-11.7.0-amd64-netinst.iso",
          "image_size_mib": 389,
          "updated_at": "2024-06-05 00:00:01",
          "checksum": "c0d269af8978c625cb480ba2c723c7964c7e52ad"
        }
      ]
    }
  10. Укажите права доступа к корневой директории репозитория: 

    chmod -R 775 /srv/ftp/iso
  11. Если на сервере не установлена утилита curl, установите её: 
    dnf install curl || apt install curl
  12. Проверьте доступ к файлу описания репозитория: 

    curl -v ftp://<IP-адрес_сервера>/metadata.json
    Если доступа к файлу нет, проверьте, разрешены ли в настройках файрвола входящие подключения на порты 20/TCP и 21/TCP.
  13. Добавьте репозиторий по инструкции из статьи Репозитории ISO-образов.