Джамінто зробив чудову роботу, відповідаючи на запитання, але нещодавно я сам пройшов процес і хотів розширити відповідь Джамінто.
Я припускаю, що у вас вже створений екземпляр 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 не обмежуються лише їх домашніми каталогами. Це не дуже безпечно, але ми можемо це виправити досить легко.
Відредагуйте конф-файл vsftpd знову, ввівши:
> sudo vi /etc/vsftpd/vsftpd.conf
Скасувати коментар у рядку:
chroot_local_user=YES
Це має виглядати так, як тільки ви закінчите:
Перезавантажте сервер vsftpd ще раз так:
> sudo /etc/init.d/vsftpd restart
Готово!
Додаток A: Пережив перезавантаження
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