Я пытаюсь настроить FTP на Amazon Cloud Server, но безуспешно. Я ищу по сети, и нет конкретных шагов, как это сделать.
Я нашел эти команды для запуска:
$ yum install vsftpd
$ ec2-authorize default -p 20-21
$ ec2-authorize default -p 1024-1048
$ vi /etc/vsftpd/vsftpd.conf
#<em>---Add following lines at the end of file---</em>
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
$ /etc/init.d/vsftpd restart
Но я не знаю, где их написать.
linux
amazon-web-services
amazon-s3
amazon-ec2
ftp
SharkTheDark
источник
источник
Ответы:
Jaminto отлично справился с ответом на вопрос, но недавно я сам прошел через этот процесс и хотел бы расширить ответ Jaminto.
Я предполагаю, что вы уже создали экземпляр EC2 и связали с ним Elastic IP Address.
Шаг № 1: Установите vsftpd
SSH к вашему серверу EC2. Тип:
Это должно установить vsftpd.
Шаг № 2: Откройте порты FTP на вашем экземпляре EC2
Затем вам нужно открыть порты FTP на вашем сервере EC2. Войдите в консоль управления AWS EC2 и выберите «Группы безопасности» в дереве навигации слева. Выберите группу безопасности, назначенную вашему экземпляру EC2. Затем выберите вкладку «Входящие» и нажмите «Изменить»:
Добавьте два пользовательских правила TCP с диапазонами портов 20-21 и 1024-1048. В качестве источника вы можете выбрать «Где угодно». Если вы решите установить для Source свой собственный IP-адрес, имейте в виду, что ваш IP-адрес может измениться, если он назначается через DHCP.
Шаг № 3: Обновите файл vsftpd.conf
Отредактируйте ваш файл конфигурации vsftpd, набрав:
Отключите анонимный FTP, изменив эту строку:
в
Затем добавьте следующие строки в конец файла vsftpd.conf:
Ваш файл vsftpd.conf должен выглядеть примерно так, за исключением того, что обязательно замените pasv_address на ваш публичный IP-адрес:
Чтобы сохранить изменения, нажмите Escape, затем введите
:wq
, затем нажмите Enter.Шаг № 4: Перезапустите vsftpd
Перезапустите vsftpd, набрав:
Вы должны увидеть сообщение, которое выглядит так:
Если это не работает, попробуйте:
Шаг № 5: Создайте пользователя FTP
Если вы загляните в / etc / vsftpd / user_list, вы увидите следующее:
Это в основном говорит: «Не позволяйте этим пользователям доступ по FTP». vsftpd разрешит FTP-доступ любому пользователю, которого нет в этом списке.
Поэтому для создания новой учетной записи FTP вам может потребоваться создать нового пользователя на вашем сервере. (Или, если у вас уже есть учетная запись пользователя, которой нет в / etc / vsftpd / user_list, вы можете перейти к следующему шагу.)
Создать нового пользователя на экземпляре EC2 довольно просто. Например, чтобы создать пользователя 'bret', введите:
Вот как это будет выглядеть:
Шаг № 6: Ограничение пользователей их домашними каталогами
На этом этапе ваши пользователи FTP не ограничены своими домашними каталогами. Это не очень безопасно, но мы можем это легко исправить.
Отредактируйте файл conf vsftpd еще раз, набрав:
Откомментируйте строку:
Это должно выглядеть так, как только вы закончите:
Перезапустите сервер vsftpd снова так:
Все сделано!
Приложение А. Выживание после перезагрузки
vsftpd не запускается автоматически при загрузке вашего сервера. Если вы похожи на меня, это означает, что после перезагрузки вашего экземпляра EC2 вы почувствуете ужас, когда кажется, что FTP сломан - но в действительности он просто не работает! Вот удобный способ это исправить:
В качестве альтернативы, если вы используете redhat, другой способ управления вашими сервисами - использование этого изящного графического пользовательского интерфейса для управления тем, какие сервисы должны автоматически запускаться:
Теперь vsftpd будет автоматически запускаться при загрузке вашего сервера.
Приложение B: Изменение домашнего каталога FTP пользователя
* ПРИМЕЧАНИЕ. Iman Sedighi опубликовал более элегантное решение для ограничения доступа пользователей к определенному каталогу. Пожалуйста, обратитесь к его отличному решению, опубликованному в качестве ответа *
Возможно, вы захотите создать пользователя и ограничить его доступ по FTP к определенной папке, например / var / www. Для этого вам нужно изменить домашний каталог пользователя по умолчанию:
В этом конкретном примере типично давать пользователю разрешения для группы «www», которая часто связана с папкой / var / www:
источник
step 3
после добавления строки в файле, как я могу сохранить его?Чтобы включить пассивный ftp на сервере EC2, необходимо настроить порты, которые ваш ftp-сервер должен использовать для входящих подключений, а затем открыть список доступных портов для подключений данных клиента ftp.
Я не очень знаком с linux, но отправленные вами команды - это шаги по установке ftp-сервера, настройке правил брандмауэра ec2 (через API-интерфейс AWS), а затем настройке ftp-сервера для использования портов, разрешенных для брандмауэра ec2. ,
Таким образом, этот шаг устанавливает клиент FTP (VSFTP)
> yum install vsftpd
Эти шаги настраивают клиент ftp
но два других шага легче выполнить через консоль amazon в группах безопасности EC2. Там вам нужно настроить группу безопасности, которая назначается вашему серверу, чтобы разрешить подключения через порты 20,21 и 1024-1048.
источник
Спасибо @ clone45 за хорошее решение. Но у меня была только одна важная проблема с Приложением b его решения. Сразу после того, как я изменил домашний каталог на var / www / html, я не смог подключиться к серверу через ssh и sftp, потому что он всегда показывает следующие ошибки
или в FileZilla я получил эту ошибку:
Но я мог получить доступ к серверу через обычное FTP-соединение.
Если вы столкнулись с той же ошибкой, просто отмените приложение b решения @ clone45, установив домашний каталог по умолчанию для пользователя:
Но когда вы устанавливаете домашний каталог пользователя по умолчанию, пользователь получает доступ ко многим другим папкам вне / var / www / http. Итак, чтобы обезопасить свой сервер, выполните следующие действия:
1- Создайте группу sftponly. Создайте группу для всех пользователей, для которых вы хотите ограничить их доступ только для доступа по ftp и sftp к var / www / html. составить группу:
2- Заключить в тюрьму chroot Чтобы ограничить доступ этой группы к серверу через sftp, вы должны заключить в тюрьму chroot, чтобы пользователи группы не могли получить доступ ни к какой папке, кроме html-папки в ее домашнем каталоге. Для этого откройте /etc/ssh/sshd.config в vim с помощью sudo. В конце файла, пожалуйста, прокомментируйте эту строку:
А затем добавьте эту строку ниже:
Таким образом, мы заменили подсистему на internal-sftp. Затем добавьте следующие строки под ним:
После добавления этой строки я сохранил свои изменения и затем перезапустил службу ssh:
3. Добавьте пользователя в группу sftponly. Любой пользователь, которому вы хотите ограничить доступ, должен быть членом группы sftponly. Поэтому мы присоединяемся к sftponly: sudo usermod -G sftponly username
4- Ограничить доступ пользователя только к var / www / html Чтобы ограничить доступ пользователя только к папке var / www / html, нам нужно создать каталог в домашнем каталоге (с именем «html») этого пользователя и затем смонтировать / var / www to / home / username / html следующим образом:
5- Установите права на запись. Если пользователю нужен доступ на запись к / var / www / html, вы должны заключить пользователя в тюрьму по адресу / var / www, который должен иметь root: право root и права доступа 755. Затем вам нужно указать / var / www / html владение root: sftponly и права доступа 775, добавив следующие строки:
6- Блокировать доступ к оболочке Если вы хотите ограничить доступ, чтобы не иметь доступа к оболочке, чтобы сделать ее более безопасной, просто измените оболочку по умолчанию на bin / false следующим образом:
источник
sudo mount --bind /var/www /home/username/html
мне говорят, что нет папки www. Я предполагаю, что это сделано из корня (где находится папка / home)?sudo chown root:www /var/www/html
состояния chown: недопустимая группа: 'root: www'sudo usermod -s /sbin/nologin username
лучше из-за ограничений оболочки модуля pam vsftpd по умолчанию (и в моем случае это работает лучше). И часть 4mount
должна выполняться при каждой перезагрузке, поэтому рекомендуется поместить ее в rc.local.Отличная статья ... работала как ветер на Amazon Linux AMI.
Еще две полезные команды:
Чтобы изменить папку для загрузки по умолчанию на FTP
Шаг 1:
Шаг 2. Создайте новую запись внизу страницы:
Чтобы применить права на чтение, запись и удаление файлов в папке, чтобы вы могли управлять ими с помощью устройства FTP
источник
Если у вас включен UFW, не забудьте добавить ftp:
Мне потребовалось 2 дня, чтобы понять, что я включил UFW.
источник
Это не будет хорошо, пока вы не добавите своего пользователя в группу www с помощью следующих команд:
Это решает проблему с разрешениями.
Установите путь по умолчанию, добавив это:
источник
Не забудьте обновить брандмауэр iptables, если он есть, чтобы разрешить диапазоны 20-21 и 1024-1048.
Сделайте это из / etc / sysconfig / iptables
Добавляем такие строки:
И перезапустите iptables с помощью команды:
источник
Я упростил шаги clone45:
Откройте порты, как он упоминал
источник
Я следовал за ответом clone45 до самого конца. Отличная статья! Поскольку для установки плагинов на одном из моих сайтов WordPress мне был необходим доступ по FTP, я изменил домашний каталог на / var / www / mysitename. Затем я продолжил добавлять своего пользователя ftp в группу apache (или www) следующим образом:
После этого я все еще видел эту ошибку на странице установки плагина WP: «Невозможно найти каталог содержимого WordPress (wp-content)». Обыскали и нашли это решение на сеансе вопросов и ответов wp.org: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content и добавили следующее в конец wp- config.php:
После этого мой плагин WP был успешно установлен.
источник
возможно стоит упомянуть в дополнение к ответу clone45 :
Примечание. Проблемы с разрешениями на запись могут отображаться как следующие ошибки FileZilla :
Ссылки:
Исправление прав записи для пользователей Chrooted FTP в vsftpd
VSFTPd перестал работать после обновления
источник
В случае, если вы получаете 530 неверный пароль
Нужен еще 1 шаг
в файле / etc / shells
Добавьте следующую строку
/ Бен / ложь
источник
FileZila - хороший FTP-инструмент для установки с Amazon Cloud.
Вам нужно выполнить этот шаг только 1 раз, позже он будет загружать контент на тот же IP-адрес и тот же сайт.
источник