Jaminto отлично справился с ответом на вопрос, но недавно я сам прошел через этот процесс и хотел бы расширить ответ Jaminto.
Я предполагаю, что вы уже создали экземпляр EC2 и связали с ним Elastic IP Address.
Шаг № 1: Установите vsftpd
SSH к вашему серверу EC2. Тип:
> sudo yum install vsftpd
Это должно установить vsftpd.
Шаг № 2: Откройте порты FTP на вашем экземпляре EC2
Затем вам нужно открыть порты FTP на вашем сервере EC2. Войдите в консоль управления AWS EC2 и выберите «Группы безопасности» в дереве навигации слева. Выберите группу безопасности, назначенную вашему экземпляру EC2. Затем выберите вкладку «Входящие» и нажмите «Изменить»:
Добавьте два пользовательских правила TCP с диапазонами портов 20-21 и 1024-1048. В качестве источника вы можете выбрать «Где угодно». Если вы решите установить для Source свой собственный IP-адрес, имейте в виду, что ваш IP-адрес может измениться, если он назначается через DHCP.
Шаг № 3: Обновите файл vsftpd.conf
Отредактируйте ваш файл конфигурации vsftpd, набрав:
> sudo vi /etc/vsftpd/vsftpd.conf
Отключите анонимный FTP, изменив эту строку:
anonymous_enable=YES
в
anonymous_enable=NO
Затем добавьте следующие строки в конец файла vsftpd.conf:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
Ваш файл vsftpd.conf должен выглядеть примерно так, за исключением того, что обязательно замените pasv_address на ваш публичный IP-адрес:
Чтобы сохранить изменения, нажмите Escape, затем введите :wq
, затем нажмите Enter.
Шаг № 4: Перезапустите vsftpd
Перезапустите vsftpd, набрав:
> sudo /etc/init.d/vsftpd restart
Вы должны увидеть сообщение, которое выглядит так:
Если это не работает, попробуйте:
> sudo /sbin/service vsftpd restart
Шаг № 5: Создайте пользователя FTP
Если вы загляните в / etc / vsftpd / user_list, вы увидите следующее:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
Это в основном говорит: «Не позволяйте этим пользователям доступ по FTP». vsftpd разрешит FTP-доступ любому пользователю, которого нет в этом списке.
Поэтому для создания новой учетной записи FTP вам может потребоваться создать нового пользователя на вашем сервере. (Или, если у вас уже есть учетная запись пользователя, которой нет в / etc / vsftpd / user_list, вы можете перейти к следующему шагу.)
Создать нового пользователя на экземпляре EC2 довольно просто. Например, чтобы создать пользователя 'bret', введите:
> sudo adduser bret
> sudo passwd bret
Вот как это будет выглядеть:
Шаг № 6: Ограничение пользователей их домашними каталогами
На этом этапе ваши пользователи FTP не ограничены своими домашними каталогами. Это не очень безопасно, но мы можем это легко исправить.
Отредактируйте файл conf vsftpd еще раз, набрав:
> sudo vi /etc/vsftpd/vsftpd.conf
Откомментируйте строку:
chroot_local_user=YES
Это должно выглядеть так, как только вы закончите:
Перезапустите сервер vsftpd снова так:
> sudo /etc/init.d/vsftpd restart
Все сделано!
Приложение А. Выживание после перезагрузки
vsftpd не запускается автоматически при загрузке вашего сервера. Если вы похожи на меня, это означает, что после перезагрузки вашего экземпляра EC2 вы почувствуете ужас, когда кажется, что FTP сломан - но в действительности он просто не работает! Вот удобный способ это исправить:
> sudo chkconfig --level 345 vsftpd on
В качестве альтернативы, если вы используете redhat, другой способ управления вашими сервисами - использование этого изящного графического пользовательского интерфейса для управления тем, какие сервисы должны автоматически запускаться:
> sudo ntsysv
Теперь vsftpd будет автоматически запускаться при загрузке вашего сервера.
Приложение B: Изменение домашнего каталога FTP пользователя
* ПРИМЕЧАНИЕ. Iman Sedighi опубликовал более элегантное решение для ограничения доступа пользователей к определенному каталогу. Пожалуйста, обратитесь к его отличному решению, опубликованному в качестве ответа *
Возможно, вы захотите создать пользователя и ограничить его доступ по FTP к определенной папке, например / var / www. Для этого вам нужно изменить домашний каталог пользователя по умолчанию:
> sudo usermod -d /var/www/ username
В этом конкретном примере типично давать пользователю разрешения для группы «www», которая часто связана с папкой / var / www:
> sudo usermod -a -G www username