Quiero compartir archivos con un cliente a través de Internet y estoy buscando soluciones ftp en AWS. Probé AWS SFTP, pero establecer políticas de roles es complicado y el servicio parece un poco costoso para mi caso de uso básico. ¿Existe una forma alternativa de configurar un servidor ftp en EC2 o S3 al que puedan acceder los usuarios que no son de AWS? Quiero agregar permisos de lectura para diferentes usuarios para diferentes subdirectorios. Estoy usando macosx.
Intenté seguir instrucciones enhttps://stackoverflow.com/questions/7052875/setting-up-ftp-on-amazon-cloud-serverpero no está claro cómo puedo permitir que los usuarios que no son de AWS vean mis archivos y no pude hacer que vsftpd funcionara.
¿Existe una configuración de AWS estándar/recomendada para compartir archivos con usuarios que no son de AWS, preferiblemente de forma segura (SFTP)? Compartiría archivos actualizados varias veces al día todos los días con cientos de usuarios.
Respuesta1
Si no desea utilizar AWS Transfer para SFTP, es posible configurar su servidor SFTP directamente desde una instancia EC2.
Si sigue correctamente estas instrucciones, debería poder crear sus usuarios SFTP con bastante facilidad. En mi caso específico utilicé una instancia micro T2 con Ubuntu 18.04
- vamos a instalar
openSSH
sudo apt-get install openssh-server
- Debes crear un grupo específico donde encarcelarás a los usuarios.
sudo groupadd sftpusers
- Edite
/etc/ssh/sshd_config
usando vim o nano
Comente#Subsystem sftp /usr/lib/openssh/sftp-server
Luego, en su lugar, agregueSubsystem sftp internal-sftp
para permitir conexiones SFTP en su servidor.
Por último, al final del archivo, especifique las nuevas configuraciones del grupo.
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- En este punto
/etc/ssh/sshd_config
debería verse así:
(...)
#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
- Debe reiniciar el servicio ssh para aplicar los cambios.
sudo service ssh restart
- Ahora debería estar configurado para crear un nuevo usuario.
Siga las diferentes instrucciones del comando a continuación e ingrese la contraseña de usuario.
sudo adduser user1
- Agreguemos nuestro nuevo usuario al grupo sftp que creamos anteriormente.
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
- En este punto, lo último que debemos hacer es encarcelar a nuestro usuario dentro del
/home/<user>
directorio.
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1
Puede crear nuevas carpetas que pertenezcan al usuario usando
sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder
yo creéesterepositorio hace unos días que automatiza este proceso