Статья содержит инструкции по созданию и настройке FTP-репозитория ISO-образов с анонимным доступом.
Чтобы создать репозиторий:
-
Установите FTP-cервер vsftpd:
AlmaLinuxyum install vsftpd
Astra Linux, Ubuntuapt install vsftpd
-
Создайте корневую директорию для хранения файлов репозитория:
mkdir -p /srv/ftp/iso
-
Проверьте, что в файле /etc/passwd появилась запись для пользователя ftp:
Пример записиftp:x:139:149:ftp daemon,,,:/srv/ftp:/usr/sbin/nologin
-
Укажите следующие настройки в конфигурационном файле /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
-
Перезапустите службу vsftpd:
systemctl restart vsftpd
- Скопируйте ISO-образ в директорию /srv/ftp/iso/.
-
Определите размер ISO-образа в МиБ:
ls -l --block-size=M <имя_файла>
Пример вывода-rw-rw-r-- 1 user user 389M May 5 2023 debian-11.7.0-amd64-netinst.iso
-
Определите хеш-сумму ISO-образа:
sha1sum <имя_файла>
Пример выводаc0d269af8978c625cb480ba2c723c7964c7e52ad debian-11.7.0-amd64-netinst.iso
-
Создайте файл описания репозитория /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" } ] }
-
Укажите права доступа к корневой директории репозитория:
chmod -R 775 /srv/ftp/iso
- Если на сервере не установлена утилита curl, установите её:
dnf install curl || apt install curl
-
Проверьте доступ к файлу описания репозитория:
curl -v ftp://<IP-адрес_сервера>/metadata.json
Если доступа к файлу нет, проверьте, разрешены ли в настройках файрвола входящие подключения на порты 20/TCP и 21/TCP. - Добавьте репозиторий по инструкции из статьи Репозитории ISO-образов.