Cargando

Ir a contenido


 


Cómo habilitar y configurar SFTP en CentOS 7

Te explicamos todos los pasos que debes seguir para saber cómo habilitar y configurar SFTP en CentOS 7


Escrito por el jun 05 2017 11:52 linux centos



En muchas ocasiones debemos transferir múltiple información entre dispositivos y la forma más común de hacerla, la cual lleva más de 20 años, es usando el protocolo FTP (File Transfer Protocol – Protocolo de Transferencia de Archivos) y FTP que permite la transferencia entre equipos conectados a TCP tomando la base cliente/servidor.

 

Con FTP usamos el puerto 20 y 21. Ahora contamos con un nuevo protocolo predefinido llamado SFTP en cual encontramos habilitado en todos los servidores que soportan SSH.

 

SFTP (SSH File Transfer Protocol – Protocolo de Transferencia de Archivos SSH) es diferente al tipo FTP aunque soporta todos los clientes FTP que encontramos en la actualidad. Aunque SFTP ha sido implementado para añadir una capa de seguridad presenta una vulnerabilidad a nivel de acceso ya que, al ser un estándar, concede acceso total a los usuarios del sistema para la transferencia de archivos y uso de la Shell.

 

Solvetic hoy enseñará como configurar CentOS 7 para evitar que un determinado usuario tenga acceso SSH con la libertad de manipular el sistema a través del protocolo0 SFTP.

 


1. Creación del usuario


En primer lugar crearemos el usuario que tendrá acceso restringido por SSH, en este caso lo llamaremos acceso, ejecutamos lo siguiente:
sudo adduser acceso
A continuación asignamos una contraseña al nuevo usuario ejecutando lo siguiente:
sudo passwd acceso

 

 


2. Creación del directorio para la transferencia de archivos


Una vez creado nuestro usuario el siguiente paso consiste en crear el directorio a donde actuara SFTP impidiendo el acceso y este debe ser configurado con ciertos parámetros.

 

Crearemos un directorio llamado /var/sftp/uploads en el cual la parte /var/sftp el usuario root será su propietario y ningún otro usuario tendrá los permisos activos y en el subdirectorio /var/sftp/uploads el propietario será el nuevo usuario acceso. Creamos el directorio usando la siguiente línea:

sudo mkdir -p /var/sftp/uploads
A continuación establecemos al usuario root como propietario en el directorio indicado:
sudo chown root:root /var/sftp
Otorgamos los permisos de escritura al usuario root y de lectura a los demás usuarios en la ruta indicada:
sudo chmod 755 /var/sftp

 

Ahora modificamos el propietario de uploads para que sea el usuario acceso, ejecutamos lo siguiente:

sudo chown acceso:acceso /var/sftp/uploads

 

 


3. Restricción de acceso a un directorio


En este paso veremos cómo restringir el acceso por terminal al usuario acceso pero si será posible la transferencia de archivos. Para esto debemos editar el servidor SSH con el editor preferido, vim o nano, en la siguiente ruta:
sudo nano /etc/ssh/sshd_config
Veremos lo siguiente:

 

 

En la parte final del archivo adicionamos lo siguiente:

Match User acceso
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

 

Guardamos los cambios usando la combinación de teclas Ctrl + O y salimos del editor usando las teclas Ctrl +X. La sintaxis usada implica lo siguiente:

 

Match User
Indica al servidor SSH que aplique los cambios al usuario indicado allí.

 

ForceCommand internal-sftp
Obliga al servidor SSH la ejecución de SFTP para impedir el acceso a la Shell.

 

PasswordAuthentication yes
Habilita la autenticación por contraseña

 

ChrootDirectory /var/sftp/
Hace referencia a que el usuario indicado no tendrá acceso a mas allá de la ruta /var/sftp.

 

AllowAgentForwarding no, AllowTcpForwarding no. y X11Forwarding no
Estas opciones deshabilitan el reenvío de puertos, tunelizacion y reenvíos de protocolosX11 para el usuario indicado.

 

Una vez guardemos el archivo ejecutaremos el siguiente comando para aplicar los cambios en SSH:

sudo systemctl restart sshd

4. Verificación de la conexión SSH

 

Paso 1

Con esto configurado será hora de validar el acceso a través de SSH y comprobar que solo será posible la transferencia de archivos. Para esto vamos a la conexión a través de SSH la cual en este caso será.
ssh acceso@192.168.0.14
Una vez ingresemos las credenciales de acceso veremos el siguiente mensaje:

 

 

Paso 2

Con esto hemos comprobado que la conexión será cerrada a través de SSH. Ahora intentaremos la conexión usando el protocolo sftp:
sftp acceso@192.168.0.14
Al ingresar la contraseña veremos que la conexión es exitosa y estaremos en capacidad de transferir archivos:

 

 

Paso 3

Allí podemos usar el comando ls para listar los directorios disponibles y veremos la carpeta uploads que hemos creado:

 

 

Paso 4

Allí podremos mover información pero si intentamos volver a un directorio encima usando cd .. no obtendremos error pero vemos que no podrá ser listado ningún directorio:

 

 

Así de sencillo podemos restringir accesos gracias a sftp.

 

Comparte archivos de forma remota gracias a instalar y configurar un servidor FTP y conectarte remotamente en Ubuntu de Linux.

¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
  • -
  • 0
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado jun 05 2017 11:52
  •   Actualizado jun 05 2017 11:57
  •   Visitas 2.1K
  •   Nivel
    Avanzado



Tutoriales Relacionados


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
Demuestra que eres experto!
  ESCRIBIR TUTORIAL
Suscribirse