Пост

Настройка FTP сервера на Raspberry Pi

FTP (File Transfer Protocol) — это стандартный сетевой протокол для передачи файлов между клиентом и сервером по сети. Настройка FTP сервера на Raspberry Pi позволяет легко обмениваться файлами с другими устройствами в локальной сети. В этом руководстве мы установим и настроим vsftpd (Very Secure FTP Daemon) — популярный FTP сервер для Linux систем.

Настройка FTP сервера на Raspberry Pi

Описание/Введение: FTP (File Transfer Protocol) — это стандартный сетевой протокол для передачи файлов между клиентом и сервером по сети. Настройка FTP сервера на Raspberry Pi позволяет легко обмениваться файлами с другими устройствами в локальной сети. В этом руководстве мы установим и настроим vsftpd (Very Secure FTP Daemon) — популярный FTP сервер для Linux систем.

Установка vsftpd на Raspberry Pi

Начнем с установки FTP серверного программного обеспечения.

  1. Обновите список пакетов:
    1
    
    sudo apt update
    
  2. Установите vsftpd:
    1
    
    sudo apt install vsftpd
    
  3. Запустите службу vsftpd:
    1
    
    sudo systemctl start vsftpd
    
  4. Включите автоматический запуск при загрузке:
    1
    
    sudo systemctl enable vsftpd
    

Базовая настройка vsftpd

Настроим основные параметры FTP сервера.

  1. Создайте резервную копию конфигурационного файла:
    1
    
    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
    
  2. Откройте файл конфигурации для редактирования:
    1
    
    sudo nano /etc/vsftpd.conf
    

    Файл vsftpd.conf открытый в редакторе nano

  3. Найдите и измените следующие параметры:
    1
    2
    3
    4
    5
    6
    
    # Разрешить локальный доступ
    local_enable=YES
    # Разрешить запись файлов
    write_enable=YES
    # Использовать локальное время вместо GMT
    use_localtime=YES
    
  4. Раскомментируйте строку с пассивным режимом:
    1
    
    pasv_enable=YES
    

Настройка пассивного режима

Для правильной работы за firewall настройте пассивный режим.

  1. Добавьте в конец файла конфигурации:
    1
    2
    3
    4
    
    # Настройки пассивного режима
    pasv_min_port=40000
    pasv_max_port=50000
    pasv_address=ВАШ_IP_АДРЕС
    
  2. Замените ВАШ_IP_АДРЕС на IP-адрес вашего Raspberry Pi.

Создание пользователя FTP

Создадим отдельного пользователя для доступа по FTP.

  1. Создайте нового пользователя:
    1
    
    sudo adduser ftpuser
    

    Создание пользователя с запросом пароля

  2. Создайте директорию для FTP:
    1
    
    sudo mkdir /home/ftpuser/ftp
    
  3. Установите правильные разрешения:
    1
    2
    
    sudo chown nobody:nogroup /home/ftpuser/ftp
    sudo chmod a-w /home/ftpuser/ftp
    
  4. Создайте директорию для загрузки файлов:
    1
    2
    
    sudo mkdir /home/ftpuser/ftp/files
    sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
    

Ограничение доступа пользователя

Ограничим пользователя его домашней директорией.

  1. Добавьте в конец файла /etc/vsftpd.conf:
    1
    2
    3
    4
    5
    
    # Ограничить пользователей их домашними директориями
    chroot_local_user=YES
    allow_writeable_chroot=YES
    user_sub_token=$USER
    local_root=/home/$USER/ftp
    
  2. Добавьте пользователя в список разрешенных:
    1
    
    echo "ftpuser" | sudo tee -a /etc/vsftpd.users
    
  3. Укажите файл с пользователями в конфигурации:
    1
    2
    3
    
    userlist_file=/etc/vsftpd.users
    userlist_enable=YES
    userlist_deny=NO
    

Настройка брандмауэра

Откройте необходимые порты в брандмауэре.

  1. Разрешите порт FTP (21):
    1
    
    sudo ufw allow 21/tcp
    
  2. Разрешите диапазон портов для пассивного режима:
    1
    
    sudo ufw allow 40000:50000/tcp
    
  3. Включите брандмауэр:
    1
    
    sudo ufw enable
    

Применение изменений конфигурации

Перезапустите службу для применения изменений.

  1. Перезапустите vsftpd:
    1
    
    sudo systemctl restart vsftpd
    
  2. Проверьте статус службы:
    1
    
    sudo systemctl status vsftpd
    

    Статус службы vsftpd показывающий активное состояние

Подключение к FTP серверу

Протестируем подключение с клиентского устройства.

Использование FileZilla (рекомендуется)

  1. Установите FileZilla Client на ваш компьютер.

  2. Введите параметры подключения:
    • Хост: IP-адрес вашего Raspberry Pi
    • Имя пользователя: ftpuser
    • Пароль: пароль, установленный для ftpuser
    • Порт: 21

    Окно подключения FileZilla с введенными параметрами

  3. Нажмите «Быстрое соединение».

Использование командной строки

  1. Подключитесь с помощью команды ftp:
    1
    
    ftp IP_АДРЕС_PI
    
  2. Введите имя пользователя и пароль когда появится запрос.

Дополнительные настройки безопасности

Улучшите безопасность вашего FTP сервера.

  1. Включите SSL/TLS шифрование в /etc/vsftpd.conf:
    1
    2
    3
    4
    
    ssl_enable=YES
    allow_anon_ssl=NO
    force_local_data_ssl=YES
    force_local_logins_ssl=YES
    
  2. Запретите анонимный доступ:
    1
    
    anonymous_enable=NO
    
  3. Ограничьте количество одновременных подключений:
    1
    2
    
    max_clients=10
    max_per_ip=3
    

Проверка работы FTP сервера

Убедитесь, что сервер работает корректно.

  1. Проверьте возможность загрузки файлов.

  2. Проверьте возможность скачивания файлов.

  3. Убедитесь, что пользователь ограничен своей домашней директорией.

Теперь ваш FTP сервер готов к использованию. Вы можете передавать файлы между Raspberry Pi и другими устройствами в вашей сети используя безопасное подключение.

Авторский пост защищен лицензией CC BY 4.0 .

© evdokimoff. Некоторые права защищены.

Использует тему Chirpy для Jekyll