Я хочу поделиться файлами с клиентом через Интернет и ищу решения FTP на AWS. Я пробовал AWS SFTP, но настройка политик ролей неудобна, а сервис кажется немного дорогим для моего основного варианта использования. Есть ли альтернативный способ настроить FTP-сервер на EC2 или S3, к которому смогут получить доступ пользователи, не являющиеся пользователями AWS? Я хочу добавить разрешения на чтение для разных пользователей для разных подкаталогов. Я использую macosx.
Я попробовал следовать инструкциям наhttps://stackoverflow.com/questions/7052875/setting-up-ftp-on-amazon-cloud-serverно не ясно, как разрешить пользователям, не являющимся пользователями aws, просматривать мои файлы, и я не смог заставить работать vsftpd.
Есть ли рекомендуемая/стандартная настройка aws для обмена файлами с пользователями, не являющимися пользователями aws, желательно безопасно (sftp). Я бы делился обновленными файлами несколько раз в день каждый день с сотнями пользователей.
решение1
Если вы не хотите использовать AWS Transfer для SFTP, можно настроить сервер SFTP непосредственно из экземпляра EC2.
Если вы правильно выполните эти инструкции, вы сможете довольно легко создать своих пользователей SFTP. В моем конкретном случае я использовал экземпляр micro T2 с Ubuntu 18.04
- Давайте установим
openSSH
sudo apt-get install openssh-server
- Вам необходимо создать определенную группу, в которую вы будете помещать пользователей.
sudo groupadd sftpusers
- Редактировать
/etc/ssh/sshd_config
с помощью vim или nano
Закомментировать#Subsystem sftp /usr/lib/openssh/sftp-server
Затем вместо этого добавьтеSubsystem sftp internal-sftp
разрешение на SFTP-подключения к вашему серверу
Наконец, в конце файла укажите новые конфигурации группы
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- На этом этапе вы
/etc/ssh/sshd_config
должны выглядеть так:
(...)
#Subsystem sftp /usr/lib/openssh/sftp-server
(...)
Subsystem sftp internal-sftp
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- Для применения изменений необходимо перезапустить службу ssh.
sudo service ssh restart
- Теперь вы должны быть настроены на создание нового пользователя.
Следуйте различным инструкциям команды ниже и введите пароль пользователя.
sudo adduser user1
- Давайте добавим нашего нового пользователя в группу sftp, которую мы создали ранее.
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
- На этом этапе последнее, что нам нужно сделать, это запереть нашего пользователя внутри каталога
/home/<user>
.
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1
Вы можете создавать новые папки, принадлежащие пользователю, используя
sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder
я создалэтотрепозиторий несколько дней назад, который автоматизировал этот процесс