services enable ec2 aws linux amazon-web-services amazon-s3 amazon-ec2 ftp

linux - enable - Configuración de FTP en Amazon Cloud Server



ftp amazon ec2 (13)

En caso de que esté obteniendo la contraseña 530 incorrecta

1 paso más necesario

en el archivo / etc / shells

Añade la siguiente línea

/ bin / falso

Estoy intentando configurar FTP en Amazon Cloud Server, pero sin suerte. Busco en la red y no hay pasos concretos sobre cómo hacerlo.

Encontré esos comandos para ejecutar:

$ yum install vsftpd $ ec2-authorize default -p 20-21 $ ec2-authorize default -p 1024-1048 $ vi /etc/vsftpd/vsftpd.conf #<em>---Add following lines at the end of file---</em> pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 pasv_address=<Public IP of your instance> $ /etc/init.d/vsftpd restart

Pero no sé dónde escribirlos.


En caso de que tenga ufw habilitado, recuerde agregar ftp:

> sudo ufw allow ftp

Me tomó 2 días darme cuenta de que habilité ufw.


Este es un gran reportaje. Tenga en cuenta que probablemente necesitará agregar el usuario que creó al grupo de usuarios "FTP":

> gpasswd -a <usr> ftp


FileZila es una buena herramienta de FTP para configurar con Amazon Cloud.

  1. Descargue el cliente de FileZila desde https://filezilla-project.org/
  2. Haga clic en Archivo -> Administrador del sitio ->
  3. Nuevo sitio
  4. Proporcione la dirección IP del nombre de host de su ubicación en la nube amazon (puerto, si corresponde)
  5. Protocolo - SFTP (puede cambiar según su requerimiento)
  6. Tipo de inicio de sesión: normal (el sistema no solicitará una contraseña cada vez)
  7. Proporcionar nombre de usuario y contraseña.
  8. Conectar.

Debe realizar este paso solo una vez; más tarde, se cargará el contenido a la misma dirección IP y al mismo sitio.


Gracias @ clone45 por la buena solución. Pero solo tuve un problema importante con el Apéndice B de su solución. Inmediatamente después de cambiar el directorio de inicio a var / www / html, no pude conectarme al servidor a través de ssh y sftp porque siempre muestra los siguientes errores

permission denied (public key)

o en FileZilla recibí este error:

No supported authentication methods available (server: public key)

Pero pude acceder al servidor a través de la conexión FTP normal.

Si encuentra el mismo error, simplemente deshaga el apéndice b de la solución @ clone45 estableciendo el directorio de inicio predeterminado para el usuario:

sudo usermod -d /home/username/ username

Pero cuando configura el directorio de inicio predeterminado del usuario, entonces el usuario tiene acceso a muchas otras carpetas fuera de / var / www / http. Entonces, para asegurar su servidor, siga estos pasos:

1- Hacer grupo de sftponly Haga un grupo para todos los usuarios a los que desea restringir su acceso al acceso de ftp y sftp a var / www / html. para hacer el grupo:

sudo groupadd sftponly

2- Jail the chroot Para restringir el acceso de este grupo al servidor a través de sftp, debe jail the chroot para no permitir que los usuarios del grupo accedan a ninguna carpeta excepto a la carpeta html dentro de su directorio de inicio. para hacer esto, abra /etc/ssh/sshd.config en el vim con sudo. Al final del archivo por favor comente esta línea:

Subsystem sftp /usr/libexec/openssh/sftp-server

Y luego agregue esta línea debajo de eso:

Subsystem sftp internal-sftp

Así que reemplazamos el subsistema con interno-sftp. Luego agrega las siguientes líneas debajo de él:

Match Group sftponly ChrootDirectory /var/www ForceCommand internal-sftp AllowTcpForwarding no

Después de agregar esta línea, guardé mis cambios y luego reinicié el servicio ssh:

sudo service sshd restart

3- Agregar el usuario al grupo sftponly Cualquier usuario al que desee restringir su acceso debe ser miembro del grupo sftponly. Por lo tanto, lo unimos a sftponly por: sudo usermod -G sftponly username

4- Restrinja el acceso del usuario a solo var / www / html Para restringir el acceso del usuario a solo la carpeta var / www / html necesitamos hacer un directorio en el directorio de inicio (con el nombre de ''html'') de ese usuario y luego montar / var / www to / home / username / html como sigue:

sudo mkdir /home/username/html sudo mount --bind /var/www /home/username/html

5- Establezca el acceso de escritura Si el usuario necesita acceso de escritura a / var / www / html, debe encarcelar al usuario en / var / www, que debe tener la raíz: propiedad de la raíz y permisos de 755. A continuación, debe proporcionar / var / www / html propiedad de root: sftponly y permisos de 775 agregando las siguientes líneas:

sudo chmod 755 /var/www sudo chown root:root /var/www sudo chmod 775 /var/www/html sudo chown root:www /var/www/html

6- Bloquee el acceso al shell Si desea restringir el acceso para no acceder al shell para hacerlo más seguro, simplemente cambie el shell predeterminado a bin / false de la siguiente manera:

sudo usermod -s /bin/false username


Gran artículo ... funcionó como una brisa en Amazon Linux AMI.

Dos comandos más útiles:

Para cambiar la carpeta de carga FTP predeterminada

Paso 1:

edit /etc/vsftpd/vsftpd.conf

Paso 2: Crea una nueva entrada en la parte inferior de la página:

local_root=/var/www/html

Para aplicar lectura, escritura, elimine el permiso a los archivos en la carpeta para que pueda administrar usando un dispositivo FTP

find /var/www/html -type d -exec chmod 777 {} /;


He simplificado clone45 pasos:

Abre los puertos como mencionó.

sudo su sudo yum install vsftpd echo -n "Public IP of your instance: " && read publicip echo -e "anonymous_enable=NO/npasv_enable=YES/npasv_min_port=1024/npasv_max_port=1048/npasv_address=$publicip/nchroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf sudo /etc/init.d/vsftpd restart


Jaminto hizo un gran trabajo al responder la pregunta, pero recientemente yo mismo pasé por el proceso y quise ampliar la respuesta de Jaminto.

Supongo que ya tiene una instancia de EC2 creada y tiene asociada una dirección IP elástica.


Paso # 1: Instalar vsftpd

SSH a su servidor EC2. Tipo:

> sudo yum install vsftpd

Esto debería instalar vsftpd.

Paso # 2: Abre los puertos FTP en tu instancia de EC2

A continuación, deberá abrir los puertos FTP en su servidor EC2. Inicie sesión en la Consola de administración de AWS EC2 y seleccione Grupos de seguridad en el árbol de navegación de la izquierda. Seleccione el grupo de seguridad asignado a su instancia de EC2. Luego seleccione la pestaña Entrante, luego haga clic en Editar:

Agregue dos Reglas TCP personalizadas con rangos de puertos 20-21 y 1024-1048. Para Fuente, puede seleccionar ''En cualquier lugar''. Si decide configurar la Fuente en su propia dirección IP, tenga en cuenta que su dirección IP puede cambiar si se asigna a través de DHCP.



Paso # 3: Haz actualizaciones al archivo vsftpd.conf

Edite su archivo conf vsftpd escribiendo:

> sudo vi /etc/vsftpd/vsftpd.conf

Deshabilite el FTP anónimo cambiando esta línea:

anonymous_enable=YES

a

anonymous_enable=NO

Luego agregue las siguientes líneas al final del archivo vsftpd.conf:

pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 pasv_address=<Public IP of your instance>

Su archivo vsftpd.conf debería tener un aspecto similar al siguiente, excepto en asegurarse de reemplazar la dirección pasv con su dirección IP pública:

Para guardar los cambios, presione escape, luego escriba :wq , luego :wq enter.



Paso # 4: Reiniciar vsftpd

Reinicie vsftpd escribiendo:

> sudo /etc/init.d/vsftpd restart

Debería ver un mensaje que se parece a:


Si esto no funciona, intente:

> sudo /sbin/service vsftpd restart



Paso # 5: Crea un usuario FTP

Si echa un vistazo a / etc / vsftpd / user_list, verá lo siguiente:

# 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

Esto es básicamente diciendo: "No permita que estos usuarios accedan a FTP". vsftpd permitirá el acceso FTP a cualquier usuario que no esté en esta lista.

Por lo tanto, para crear una nueva cuenta de FTP, es posible que deba crear un nuevo usuario en su servidor. (O, si ya tiene una cuenta de usuario que no figura en / etc / vsftpd / user_list, puede pasar al siguiente paso).

Crear un nuevo usuario en una instancia de EC2 es bastante simple. Por ejemplo, para crear el usuario ''bret'', escriba:

> sudo adduser bret > sudo passwd bret

Esto es lo que se verá:



Paso # 6: Restricción de usuarios a sus directorios de inicio

En este punto, sus usuarios de FTP no están restringidos a sus directorios de inicio. Eso no es muy seguro, pero podemos arreglarlo con bastante facilidad.

Edite su archivo conf vsftpd de nuevo escribiendo:

> sudo vi /etc/vsftpd/vsftpd.conf

No comentar la línea:

chroot_local_user=YES

Debería verse así una vez que hayas terminado:

Reinicie el servidor vsftpd de nuevo así:

> sudo /etc/init.d/vsftpd restart

¡Todo listo!


Apéndice A: Sobrevivir a un reinicio

vsftpd no se inicia automáticamente cuando su servidor arranca. Si eres como yo, eso significa que después de reiniciar tu instancia de EC2, sentirás un momento de terror cuando el FTP parece estar roto, pero en realidad, ¡simplemente no se está ejecutando! Aquí hay una manera práctica de arreglar eso:

> sudo chkconfig --level 345 vsftpd on

Alternativamente, si está utilizando redhat, otra forma de administrar sus servicios es mediante el uso de esta ingeniosa interfaz gráfica de usuario para controlar qué servicios deberían iniciarse automáticamente:

> sudo ntsysv

Ahora, vsftpd se iniciará automáticamente cuando se inicie el servidor.


Apéndice B: Cambiar el directorio de inicio de FTP de un usuario

* NOTA: Iman Sedighi ha publicado una solución más elegante para restringir el acceso de los usuarios a un directorio específico. Por favor refiérase a su excelente solución publicada como respuesta *

Es posible que desee crear un usuario y restringir su acceso a FTP a una carpeta específica, como / var / www. Para hacer esto, deberá cambiar el directorio de inicio predeterminado del usuario:

> sudo usermod -d /var/www/ username

En este ejemplo específico, es típico otorgar al usuario permisos para el grupo ''www'', que a menudo está asociado con la carpeta / var / www:

> sudo usermod -a -G www username


No estará bien hasta que agregue su usuario al grupo www mediante los siguientes comandos:

sudo usermod -a -G www <USER>

Esto resuelve el problema de permisos.

Establezca la ruta predeterminada agregando esto:

local_root=/var/www/html


No olvide actualizar su firewall de iptables si tiene uno para permitir los rangos 20-21 y 1024-1048.

Haga esto desde / etc / sysconfig / iptables

Añadiendo líneas como esta:

-A ENTRADA -m estado - estado NUEVO -m tcp -p tcp --dport 20:21 -j ACEPTAR

-A ENTRADA -m estado - estado NUEVO -m tcp -p tcp --dport 1024: 1048 -j ACEPTAR

Y reinicia iptables con el comando:

servicio de sudo reinicio de iptables


Para habilitar el ftp pasivo en un servidor EC2, debe configurar los puertos que su servidor ftp debería usar para las conexiones entrantes, luego abrir una lista de puertos disponibles para las conexiones de datos del cliente ftp.

No estoy muy familiarizado con Linux, pero los comandos que ha publicado son los pasos para instalar el servidor ftp, configurar las reglas del firewall ec2 (a través de la API de AWS), luego configurar el servidor ftp para usar los puertos que usted permitió en el firewall ec2 .

Así que este paso instala el cliente ftp (VSFTP)

> yum install vsftpd

Estos pasos configuran el cliente ftp.

> vi /etc/vsftpd/vsftpd.conf -- Add following lines at the end of file -- pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 pasv_address=<Public IP of your instance> > /etc/init.d/vsftpd restart

pero los otros dos pasos son más fáciles de realizar a través de la consola amazon en los grupos de seguridad EC2. Allí debe configurar el grupo de seguridad asignado a su servidor para permitir conexiones en los puertos 20,21 y 1024-1048


Quizás valga la pena mencionar además de la respuesta de :

Corrección de permisos de escritura para usuarios de Chrooted FTP en vsftpd

La versión vsftpd que viene con Ubuntu 12.04 Precise no permite que los usuarios locales chroot escriban por defecto. De forma predeterminada, tendrá esto en /etc/vsftpd.conf :

chroot_local_user=YES write_enable=YES

Para permitir que los usuarios locales escriban, debe agregar el siguiente parámetro:

allow_writeable_chroot=YES

Nota: Los problemas con los permisos de escritura pueden aparecer como los siguientes errores de FileZilla :

Error: GnuTLS error -15: An unexpected TLS packet was received. Error: Could not connect to server

Referencias:
Corrección de permisos de escritura para usuarios de Chrooted FTP en vsftpd
VSFTPd dejó de funcionar después de la actualización


Seguí la respuesta de clone45 hasta el final. Un gran artículo! Como necesitaba el acceso a FTP para instalar complementos en uno de mis sitios de WordPress, cambié el directorio de inicio a / var / www / mysitename. Luego continué agregando mi usuario de ftp al grupo de apache (o www) de esta manera:

sudo usermod -a -G apache myftpuser

Después de esto, seguía viendo este error en la página de instalación del complemento de WP: "No se puede encontrar el directorio de contenido de WordPress (wp-content)". Busqué y encontré esta solución en una sesión de preguntas y respuestas de wp.org: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content y agregue lo siguiente al final de wp- config.php:

if(is_admin()) { add_filter(''filesystem_method'', create_function(''$a'', ''return "direct";'' )); define( ''FS_CHMOD_DIR'', 0751 ); }

Después de esto mi plugin WP fue instalado con éxito.