Подвиг. Диспетчер сеансов, создание учетной записи и передача файлов

Мы разрабатываем проект, который создает автоматизированный конвейер для получения данных в режиме реального времени от государственных учреждений, их обработки путем передачи, предварительной обработки и прогнозирования машинного обучения. Некоторые государственные учреждения указали, что они будут передавать данные на FTP-сервер в режиме реального времени, а не через API. В результате в AWS EC2 был встроен FTP-сервер, и мы хотим поделиться своим опытом.

Запуск экземпляра
Во-первых, нам нужно запустить экземпляр EC2 для запуска FTP-сервера. Этот процесс использует Amazon Linux. Процедура запуска экземпляра EC2 широко документирована и может быть легко найдена с помощью поиска, поэтому здесь она не рассматривается. Обратите внимание, что начальный шаг диспетчера сеансов является необязательным и может быть пропущен, если он не нужен. Инструкции перейдут непосредственно к настройке FTP.

AWS Session Manager
Я часто использую Session Manager при проведении тестов, поэтому перед началом хочу рассказать, как использовать Session Manager.

  • Управляемый сервис, предоставляющий доступ для управления инстансами EC2, работающими в AWS VPC. (документ AWS System Manager ←click)
  • Функция AWS Systems Manager (SSM), которая взаимодействует через роль IAM, а не через порт.
  • Поскольку для связи не используются SSH или RDP, можно получить доступ к EC2 и управлять им из консоли AWS, даже если все группы безопасности заблокированы.
  • Необходимые условия для доступа к EC2 с помощью диспетчера сеансов
    1. Агент SSM
    2. Роль IAM
    3. Маршрутизируемая сеть IGW или Nat GW

Настройка роли IAM для использования диспетчера сеансов
Чтобы использовать диспетчер сеансов, необходимо настроить роль IAM. Итак, добавьте политику AmazonEC2RoleforSSM к роли IAM, подключенной к EC2.

Установите агент SSM
Агент SSM по умолчанию установлен в AWS Managed AMI, но если он не установлен, вы можете установить его, используя метод, описанный ниже, или перейти по следующей ссылке.



yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
systemctl status amazon-ssm-agent

Подключить экземпляр с помощью диспетчера сеансов
После завершения настроек необходимо подключиться к экземпляру с помощью диспетчера сеансов.
(Выберите экземпляр → подключить → вкладка диспетчера сеансов → подключить)

Настройка группы безопасности после установки EC2
Добавить порт TCP
Диапазон: 21–22

Установка пакета vsftpd в Amazon Linux и изменение файла vsftpd.conf

$ sudo yum install vsftpd

  • Изменение vsftpd.conf
$ sudo vim /etc/vsftpd/vsftpd.con
#Modify below
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/data/ftp/files
write_enable=YES
local_umask=022
dirmessage_enable=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
  • Описание каждой настройки в vsftpd.conf можно найти ниже.


  • В описанном выше процессе модификации я закомментировал существующее содержимое.
    (полный комментарий с участием vim)
    1. Ctrl+V → Войдите в режим ВИЗУАЛЬНОЙ БЛОКИРОВКИ
    2. Переместите курсор (вниз)
    3. После захвата блока нажмите ':' и введите norm i# в ;'‹,'›

Создайте учетную запись и перезапустите vsftpd

#Create account
$ sudo useradd [account name]
$ sudo passwd [account name]
#restart vsftpd 
$ sudo systemctl restart vsftpd
#check dir
ls /home

Подключение, загрузка файла, проверка загрузки файла

$ ftp [IP address or domain adderess]
Input ID, PWD 
connect check 
#create a test file
$ sudo vim /home/ftpuser/testfile.txt
ftp> get testfile.txt
ftp> put aaa.txt

  • Для справки, чтобы просмотреть список локальных файлов, введите !ls на FTP-сервере (FTP› !ls)

Тест FileZilla Connect

Я проверил успешное соединение и, наконец, хотел убедиться, что оно также успешно соединяется с FileZilla. Итак, наконец, мы поделимся проблемами в процессе использования Filezilla.

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



파일질라 «디렉터리 목록을 조회하는 데 실패함 메시지 나타날 때 해결 방법
파일 질라 접속이 안된다는 연락이 왔고 문제의 메시지는 데 실패함”이라는 메시지가 나타난 상태이다. 그래서 접속 정보를 받고 직접 접속을 시도했는데 같은 메시지가 나타났다. 일부 설정을…crossjin.tistory.com»



Установите автоматический запуск FTP при последней перезагрузке сервера
$ sudo chkconfig vsftpd on.

Расположение журнала FTP-сервера
/var/log/xferlog

Кроме того, как очевидно, вам нужно хорошо управлять своей учетной записью, чтобы получить доступ через свою учетную запись…!

Другое устранение неполадок

  • При доступе к FTP после входа в систему появляется следующее сообщение:
    230 Вход выполнен успешно.
    Тип удаленной системы — UNIX.
    Использование двоичного режима для передачи файлов.
  • ftp› ls
    229 Вход в расширенный пассивный режим (|||50872|).
    150 Вот список каталогов.
    226 Передача выполнена (но не удалось открыть каталог).
  • ftp›
    Проблемы с брандмауэром нет.
    Вышеупомянутая ошибка возникает при включении SeLinux.
  • $ getenforce
    Enforcing
    Setenforce 0 SeLinux off.
    $ setenforce 0
    $ getenforce
    Permissive
    $#
    FTP успешно подключен после SeLinux Off
  • ftp› ls
    200 Команда EPRT выполнена успешно. Рассмотрите возможность использования EPSV.
    150 Вот список каталогов.
    drwxrwxrwx 2 0 0 4096 25 окт 08:12 css
    drwxrwxrwx 2 0 0 4096 25 окт 08:12 fonts
    - rwxrwxrwx 1 0 0 1182 25 окт 08:14 index.html
    drwxrwxrwx 2 0 0 61 25 окт 08:12 js
    drwxrwxrwx 3 0 0 22 25 окт 08:12 node_modules
    226 Отправка каталога ХОРОШО.
  • ftp›
    После этого измените настройки в файле /etc/selinux/config на состояние Disabled
    # Этот файл управляет состоянием SELinux в системе.
    # SELINUX= может принимать одно из следующих три значения:
    # enforcing — политика безопасности SELinux применяется.
    # permissive — SELinux печатает предупреждения вместо принудительного.
    # disabled — политика SELinux не загружена.
    SELINUX=disabled

ссылка