Ответы пользователя по тегу Фотохостинги
  • Как организовать простейший хостинг картинок?

    BlagoYar
    @BlagoYar Автор вопроса
    Короч сделал, что хотел, но с точки зрения безопасности натворил херни :)
    Такое:
    Создал юзера с bash, с домашним каталогом на уровень выше от папки домена.
    Примонтировал rclone-ом облачный диск в подпапку домена.
    Владелец на home этого юзера с дочерними ftpuser:www-data, права стандарт 755 на каталоги, 644 на файлы.
    Также добавил www-data в группу ftpuser и зеркально. Плюс хотел это дело через FTP, но чёт крутил вертел, не получилось с юзером (login denied и всё). Не получается дать права на запись по ходу. Вручную могу закачать, а через IU выдаёт ошибку
    [03:07:05] Сервер: 61160108-3850-4b97-8cf5-4dec12d99ebc (CScriptUploadEngine)
    Скрипт: ftp.nut [TID=10868]
    Модуль загрузки
    
    ftp.nut [ThreadId=10868]
    Request failed, URL: 'ftp://mysite.com/var/www/html/mysite.com/imgupl/'. 
    Access denied to remote resource
    Response code: 550
    Server denied you to change to the given directory

    Через sFTP скорость низкая (~0.8-1мб/сек), но для изображений огонь, быстро.

    Не знаю после чего заработало (nginx отадавал 404 до этого; location добавлял, работает только не для смонтированного каталога), но вроде как после того, как примонтировал с опцией --allow-other в параметре rclone. Все три параметра
    --dir-cache-time 10s --vfs-cache-mode full --allow-other
    (средний это спец. для cloud mailru)

    UPD Получилось и FTP настроить.
    Нужно прокинуть правила iptables и задать явно порты пассивного режима в конфиге vsFTPd
    iptables -A INPUT -p tcp -m multiport --dports 20,21 -m comment --comment "For vsFTPd control" -j 
    iptables -A INPUT -p tcp -m multiport --dports 1500:1505 -m comment --comment "For vsFTPd control" -j ACCEPT
    # И ещё эти (с перепугу). Лень уже проверять было.
    iptables -t nat -A PREROUTING --dst [Внешний IP сервера] -p tcp --dport 21 -j DNAT --to-destination [Внутренний IP сервера, если за NAT, как у меня в случае с Oracle]
    iptables -t nat -A PREROUTING --dst [Внешний IP сервера] -p tcp --dport 20 -j DNAT --to-destination [Внутренний IP сервера, если за NAT, как у меня в случае с Oracle]

    Конфиг vsFTPd такой
    spoiler
    listen=YES
    
    listen_ipv6=NO
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    ftpd_banner=Welcome to FTP service.
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
    ls_recurse_enable=NO
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=su
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO
    
    utf8_filesystem=YES
    
    pasv_min_port=1500
    pasv_max_port=1505
    
    ftp_username=ftpadmin
    allow_writeable_chroot=YES
    pasv_enable=YES
    local_root=/var/www/html/mysite.com/imgupl
    syslog_enable=YES
    dirlist_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log
    xferlog_file=/var/log/xferlog
    log_ftp_protocol=YES
    Ответ написан
    Комментировать