Назад | Перейти на главную страницу

vsFTPd в инстансе Amazon Linux EC2

Может ли кто-нибудь предложить какие-либо предложения. У меня работает инстанс Amazon EC2, основанный на 64-битном AMI Amazon Linux. Я установил все обновления с помощью yum, установил PHP5.3 и службу vsFTPd.

Я создал новую группу пользователей и нового пользователя, которому был дан пароль, и создал папку html для веб-файлов php, принадлежащих новой группе. В этом отношении все работает нормально. Создайте файл php в vi, и страница будет видна в браузере.

Теперь я запустил сервер vsFTPd, все в порядке. Я могу подключиться к нему почти мгновенно с экрана терминала, но выполнение ls -l требует времени, чтобы вернуться.

Подключитесь с помощью программного обеспечения FTP, и подключение может занять до 60 секунд, то же самое при смене папок. Затем, когда вы пытаетесь загрузить файл, иногда он уходит, и всегда кажется, что папки создаются нормально, но затем истекает время ожидания или разрывается соединение и не перезапускается. Отмените передачу и настройте снова, и он снова подключится нормально.

Может ли кто-нибудь предложить какие-либо идеи относительно того, что не так? Я пробовал включать и выключать пассивный режим на FTP-клиенте, но это не имеет никакого значения. Я не вижу, что это может быть неправильным, поскольку его подключение и действительно передает пару небольших текстовых файлов до истечения времени ожидания.

Любые мысли или предложения были бы очень полезны, если вы можете! У меня нет идей!

НАСТРОЙКА СЕРВЕРА vsFTPD В AMAZON LINUX ЧЕРЕЗ SFTP

  1. Обновите репозиторий "yum"

    sudo yum update -y

  2. Установите vsFTPD Server из репозитория yum

    sudo yum установить vsftpd -y

  3. Настроить основные настройки для сервера vsFTPD

    sudo vi /etc/vsftpd/vsftpd.conf

    а. Внесите следующие изменения в файл и сохраните i. Отключить анонимных пользователей anonymous_enable = NO ii. Разрешить локальных пользователей, что означает, что сервер vsFTPD будет использовать пользователей системы Linux и аутентификацию, чтобы определять, кто может войти в систему local_enable = YES iii. Разрешить локальным пользователям доступ WRITE, чтобы они могли загружать материал и изменять контент write_enable = YES iv. Ограничьте пользователей соответствующими домашними каталогами chroot_local_user = YES v. Основные изменения, связанные с vsFTPD pasv_enable = YES pasv_min_port = 1024 pasv_max_port = 1048 pasv_address =

  4. Создать пользователя FTP

    sudo adduser ftpuser

  5. Назначьте пароль новому пользователю

    sudo passwd ftpuser

  6. Настройте SSL с сервером vsFTPD a. Создайте подкаталог для хранения файлов # sudo mkdir / etc / ssl / private

    б. Создайте сертификат и ключ в одном файле # sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

    c. Добавьте сведения об SSL в файл конфигурации vsftpd # sudo vi /etc/vsftpd/vsftpd.conf

    i. Specify the location of the certificate and key files
        rsa_cert_file=/etc/ssl/private/vsftpd.pem
        rsa_private_key_file=/etc/ssl/private/vsftpd.pem
    
    ii. Enable the use of the files, disable anonymous users and force the use of SSL for both data transfer and login routines
        ssl_enable=YES
        allow_anon_ssl=NO
        force_local_data_ssl=YES
        force_local_logins_ssl=YES
    
    iii. Restrict the type of connection to TLS, which is more secure than SSL
        ssl_tlsv1=YES
        ssl_sslv2=NO
        ssl_sslv3=NO
        require_ssl_reuse=NO
        ssl_ciphers=HIGH
    
  7. Перезапустите сервер vsFTPD, чтобы изменения вступили в силу.

    sudo /etc/init.d/vsftpd перезапуск

  8. Запускать vsFTPD сервер автоматически при каждой перезагрузке

    sudo chkconfig vsftpd on

Одним из факторов, который может способствовать плохой работе vsFTPd, является набор правил брандмауэра. Для типичного сеанса FTP вы захотите использовать пассивный FTP (обычно лучше работает с настройками вашего пользователя - как с программами, которые они используют, так и с их брандмауэрами).

Для этого вам нужно будет открыть порты 20, 21 и любые порты, которые вы укажете в конфигурации vsftpd.

В vsftpd вы можете настроить диапазон пассивных портов, установив значения pasv_min_port и pasv_max_port. Это позволяет вам использовать пассивный FTP, позволяя им легко работать с межсетевыми экранами того же типа, что и в EC2.

Вы должны выбрать порты выше 10000 - в идеале что-то немного случайное. Вам понадобится больше портов для большего количества пользователей, поэтому, если вы единственный пользователь, вы должны иметь возможность держать открытыми только 2 или 3 порта (например, минимум: 15243, максимум: 15245) - я считаю, что обычно это один порт на соединение ( но часто пользователь может установить более одного одновременного подключения, даже если это маловероятно)

Если у вас есть брандмауэр (например, shorewall), работающий на вашем сервере, вам нужно будет его настроить - также ваши правила iptables должны разрешать FTP-соединение на указанных вами портах. Что касается EC2, вам необходимо открыть соответствующие порты в группе безопасности, в которой работает ваш экземпляр. Можно найти еще несколько моментов из моего подхода к настройке пассивного FTP с vsftpd в Linux от Amazon. Вот.