Estoy tratando de configurar FTP en Amazon Cloud Server, pero sin suerte. Busco en la red y no hay pasos concretos para 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.
linux
amazon-web-services
amazon-s3
amazon-ec2
ftp
SharkTheDark
fuente
fuente
Respuestas:
Jaminto hizo un gran trabajo respondiendo la pregunta, pero recientemente realicé el proceso yo mismo y quería ampliar la respuesta de Jaminto.
Supongo que ya tiene una instancia EC2 creada y le ha asociado una dirección IP elástica.
Paso # 1: Instale vsftpd
SSH a su servidor EC2. Tipo:
Esto debería instalar vsftpd.
Paso # 2: abra los puertos FTP en su instancia 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 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 Source, puede seleccionar 'Anywhere'. Si decide configurar la Fuente en su propia dirección IP, tenga en cuenta que su dirección IP podría cambiar si se asigna a través de DHCP.
Paso # 3: Actualiza el archivo vsftpd.conf
Edite su archivo de configuración vsftpd escribiendo:
Deshabilite FTP anónimo cambiando esta línea:
a
Luego agregue las siguientes líneas al final del archivo vsftpd.conf:
Su archivo vsftpd.conf debería tener un aspecto similar al siguiente, excepto que asegúrese de reemplazar pasv_address con su dirección IP pública:
Para guardar los cambios, presione escape, luego escriba
:wq
, luego presione enter.Paso # 4: reinicia vsftpd
Reinicie vsftpd escribiendo:
Debería ver un mensaje que se parece a:
Si esto no funciona, intente:
Paso 5: crea un usuario FTP
Si echa un vistazo a / etc / vsftpd / user_list, verá lo siguiente:
Esto básicamente dice: "No permita el acceso FTP a estos usuarios". vsftpd permitirá el acceso FTP a cualquier usuario que no esté en esta lista.
Por lo tanto, para crear una nueva cuenta 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 EC2 es bastante simple. Por ejemplo, para crear el usuario 'bret', escriba:
Así se verá:
Paso 6: restringir a los 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 solucionarlo con bastante facilidad.
Edite su archivo de configuración vsftpd nuevamente escribiendo:
Descomente la línea:
Debería verse así una vez que hayas terminado:
Reinicie el servidor vsftpd nuevamente así:
¡Todo listo!
Apéndice A: sobrevivir a un reinicio
vsftpd no se inicia automáticamente cuando se inicia el servidor. Si eres como yo, eso significa que después de reiniciar tu instancia EC2, sentirás un momento de terror cuando el FTP parece estar roto, ¡pero en realidad, simplemente no se está ejecutando! Aquí hay una forma práctica de arreglar eso:
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:
Ahora vsftpd se iniciará automáticamente cuando se inicie su servidor.
Apéndice B: Cambiar el directorio de inicio 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. Consulte su excelente solución publicada como respuesta *
Es posible que desee crear un usuario y restringir su acceso FTP a una carpeta específica, como / var / www. Para hacer esto, deberá cambiar el directorio de inicio predeterminado del usuario:
En este ejemplo específico, es típico otorgar permisos de usuario al grupo 'www', que a menudo se asocia con la carpeta / var / www:
fuente
step 3
después de añadir líneas en el archivo, ¿cómo puedo guardarlo?Para habilitar ftp pasivo en un servidor EC2, debe configurar los puertos que su servidor ftp debe usar para las conexiones entrantes, luego abra una lista de puertos disponibles para las conexiones de datos del cliente ftp.
No estoy tan familiarizado con Linux, pero los comandos que publicó 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 permitió en el firewall ec2 .
Entonces, este paso instala el cliente ftp (VSFTP)
> yum install vsftpd
Estos pasos configuran el cliente ftp
pero los otros dos pasos son más fáciles de realizar a través de la consola de 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
fuente
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
o en FileZilla recibí este error:
Pero podría acceder al servidor a través de una conexión FTP normal.
Si encontró el mismo error, simplemente deshaga el apéndice b de la solución @ clone45 configurando el directorio de inicio predeterminado para el usuario:
Pero cuando configura el directorio de inicio predeterminado del usuario, el usuario tiene acceso a muchas otras carpetas fuera de / var / www / http. Entonces, para asegurar su servidor, siga estos pasos:
1- Crear grupo sftponly Cree un grupo para todos los usuarios a los que desee restringir su acceso solo a ftp y sftp a var / www / html. para hacer el grupo:
2- Jail the chroot Para restringir el acceso de este grupo al servidor a través de sftp, debe encarcelar el chroot para no permitir que los usuarios del grupo accedan a ninguna carpeta, excepto 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, comente esta línea:
Y luego agregue esta línea debajo de eso:
Así que reemplazamos el subsistema con internal-sftp. Luego agregue las siguientes líneas debajo:
Después de agregar esta línea, guardé mis cambios y luego reinicio el servicio ssh:
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- Restringir 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 a / home / username / html de la siguiente manera:
5- Establecer acceso de escritura Si el usuario necesita acceso de escritura a / var / www / html, entonces debe encarcelar al usuario en / var / www que debe tener root: propiedad de raíz y permisos de 755. Luego debe dar / var / www / html propiedad de root: sftponly y permisos de 775 agregando las siguientes líneas:
6- Bloquear 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:
fuente
sudo mount --bind /var/www /home/username/html
me dijeron que no hay carpeta www. ¿Supongo que esto se hace desde la raíz (donde está la carpeta / home)?sudo chown root:www /var/www/html
estados chown: grupo no válido: 'root: www'sudo usermod -s /sbin/nologin username
restricciones de shell predeterminadas del módulo pam de vsftpd (y parece que funciona mejor en mi caso). Y la parte 4mount
debe realizarse en cada reinicio, por lo que es una buena idea colocarla en rc.local.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:
Paso 2: crea una nueva entrada en la parte inferior de la página:
Para aplicar permisos de lectura, escritura, eliminación a los archivos en la carpeta para que pueda administrarlos utilizando un dispositivo FTP
fuente
En caso de que tenga habilitado ufw, recuerde agregar ftp:
Me tomó 2 días darme cuenta de que habilité ufw.
fuente
No estará bien hasta que agregue su usuario al grupo www mediante los siguientes comandos:
Esto resuelve el problema del permiso.
Establezca la ruta predeterminada agregando esto:
fuente
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
Agregando líneas como esta:
Y reinicie iptables con el comando:
fuente
He simplificado los pasos clone45:
Abre los puertos como mencionó
fuente
Seguí la respuesta de clone45 hasta el final. ¡Un gran artículo! Como necesitaba el acceso 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 ftp al grupo apache (o www) así:
Después de esto, todavía vi este error en la página de instalación del complemento de WP: "No se puede ubicar 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 agregó lo siguiente al final de wp- config.php:
Después de esto, mi complemento WP se instaló con éxito.
fuente
quizás valga la pena mencionar además de la respuesta de clone45 :
Nota: Los problemas con los permisos de escritura pueden aparecer como los siguientes errores de FileZilla :
Referencias: la
fijación de permisos de escritura para usuarios FTP con Chrooted en vsftpd
VSFTPd dejó de funcionar después de la actualización
fuente
En caso de que obtenga una contraseña 530 incorrecta
1 paso más necesario
en archivo / etc / shells
Agregue la siguiente línea
/ bin / false
fuente
FileZila es una buena herramienta FTP para configurar con Amazon Cloud.
Debe realizar estos pasos solo 1 vez, luego cargará contenido a la misma dirección IP y al mismo sitio.
fuente