Saltar al contenido

¿Cómo configurar un servidor SFTP restringido en Ubuntu?

Solución:

El mejor recurso para ayudarlo a comenzar a configurar un servicio SSH en una máquina Host usando Ubuntu es OpenSSH Server. Esto le permitirá utilizar el Protocolo de transferencia de archivos SSH (también Protocolo seguro de transferencia de archivos o SFTP) para acceder, transferir y administrar archivos a través de SSH desde una máquina Cliente.

Descripción general de la solución

  • En Ubuntu puede configurar un OpenSSH server en una máquina Host y un usuario puede usar ssh para conectarse del Cliente al servidor del Host utilizando solo un nombre de usuario y una contraseña. Sin embargo, tenga en cuenta que se recomienda la autenticación de clave pública,

“Asegúrese de tener una contraseña segura antes de instalar un servidor SSH (es posible que desee deshabilitar las contraseñas por completo)”

  • Las cuentas de usuario administrativo creadas en el host tendrán privilegios sudo, las cuentas de usuario estándar creadas en el host no.

Instale y configure su servidor OpenSSH en el host

Para instalar un servidor OpenSSH en el host:

sudo apt-get install openssh-server

Proporcione a su host una dirección IP estática para que pueda conectarse de manera confiable:

nm-connection-editor

Para configurar su servidor OpenSSH, “primero, haga una copia de seguridad de su archivo sshd_config copiándolo en su directorio de inicio, o haciendo una copia de solo lectura en / etc / ssh haciendo:”

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults

“Una vez que haya hecho una copia de seguridad de su sshd_config archivo, puede realizar cambios con cualquier editor de texto, por ejemplo: “

sudo -H gedit /etc/ssh/sshd_config

Debe reiniciar su servicio ssh en el Host para que estos cambios surtan efecto

sudo service ssh restart

Considere las siguientes medidas de seguridad

  • No habilite el reenvío de puertos en su enrutador: cuando un forastero le pide a su enrutador que conecte a un externo al puerto 22, etc., su enrutador no cumple a menos que haya habilitado el reenvío de puertos
  • Desactivar el inicio de sesión de root: comentar PermitRootLogin without-password; agregar PermitRootLogin no al anfitrión /etc/ssh/sshd_config
  • Elija un puerto SSH no estándar: comentario Port 22; agregar Port <new-port-number> al anfitrión /etc/ssh/sshd_config
  • Permitir solo conexiones locales: Agregar ListenAddress 192.168.0.10
  • Permitir ciertos usuarios en ciertos puertos: Agregar AllowUsers <username>@<IP_address_1> <username>@<IP_address_2> o AllowUsers <username>@111.222.333.* al anfitrión /etc/ssh/sshd_config
  • Permitir solo conexiones de clave RSA (sin contraseña): agregue el contenido de ~/.ssh/id_rsa.pub de cada Cliente como una nueva línea de ~/.ssh/authorized_keys. Luego añade PasswordAuthentication no al anfitrión /etc/ssh/sshd_config
  • Intentos de craqueo lentos de los atacantes: utilice ufw (cortafuegos sin complicaciones) en el host para limitar la velocidad de las conexiones entrantes a 10 / minuto: sudo apt-get install ufw && sudo ufw limit OpenSSH
  • Para obtener más ideas, consulte Cómo mantener seguro el acceso SSH

Si cree que debe hacerlo, habilite PasswordAuthentication en tus sshd_config expediente

Encuentra la línea con la frase PasswordAuthentication y haz que lea:

PasswordAuthentication yes

Guarde su nuevo sshd_config archivo y luego reinicie el Host ssh Servicio:

sudo service ssh restart

Si necesita acceso desde cualquier lugar a través de Internet, configure el reenvío de puertos en su enrutador local para dirigir el tráfico a su servidor OpenSSH

Tenga en cuenta el puerto del Host ssh el servicio escucha en el sshd_config y configure su enrutador para reenviar el tráfico TCP / UDP dirigido a este puerto a la dirección IP de su servidor OpenSSH.

  • Normalmente, puede apuntar su navegador web a 192.168.1.1 para iniciar sesión en su enrutador y configurar el reenvío de puertos. Consulte ¿Configurar el servidor y el enrutador OpenSSH para aceptar la conexión SSH a través de Internet?

Conéctese al host e inicie sesión a través de la línea de comandos o terminal

  • Para abrir un terminal de shell SFTP como <username> en el Host, abra una Terminal en el Cliente e ingrese el siguiente comando, reemplazando 123.123.1.23 con la dirección IP del host:

    sftp <username>@123.123.1.23
    
    • Si cambió el número de puerto que escucha el servidor OpenSSH del Host, haga lo siguiente:

      sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
      
  • Para abrir un terminal de shell SSH como <username> en el Host, abra una Terminal en el Cliente e ingrese el siguiente comando, reemplazando 123.123.1.23 con la dirección IP del host:

    ssh <username>@123.123.1.23
    
    • Si cambió el número de puerto que escucha el servidor OpenSSH del Host, haga lo siguiente:

      ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
      

Conéctese al host e inicie sesión a través del administrador de archivos GUI (por ejemplo, Nautilus) para obtener un acceso SFTP más visual para permitir transferencias de archivos

  1. Abrir Nautilus en el cliente
  2. Seleccione Archivo> Conectarse al servidor
  3. Escribe: SSH
  4. Servidor: ingrese la dirección IP del host
  5. Puerto: número de puerto especificado en el host sshd_config expediente
  6. Nombre de usuario: nombre de usuario
  7. Contraseña: contraseña

ingrese la descripción de la imagen aquí

En 14.04:

  1. Abrir Nautilus en el cliente
  2. Conectar al servidor
  3. Escriba: `ssh @ 123.123.1.23:

Cree cuentas de usuario estándar en el host con permisos de archivo limitados fuera de su carpeta de inicio

Los permisos de archivo adecuados establecidos en el Host garantizan que cada usuario estándar (sin privilegios de sudo) que cree en el Host será propietario de su /home/new_user directorio pero tiene permisos limitados con el resto de la estructura del directorio.

  • Los permisos limitados no significan necesariamente que no puedan ver los nombres de archivo y la estructura de directorios.

¡Espero que sea de ayuda!

Paso 1: Instale el paquete OpenSSH si no está instalado

sudo apt-get install openssh-server

Paso 2: cree un grupo separado para los usuarios de SFTP.

sudo addgroup ftpaccess

Paso 3: editar /etc/ssh/sshd_config archivo y realice los cambios que se indican a continuación. Busque y comente debajo de la línea.

#Subsystem sftp /usr/lib/openssh/sftp-server

y agregue estas líneas al final del archivo.

Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Paso 4: reinicia el servicio sshd.

sudo service ssh restart

Paso 5: agregue un usuario con el grupo ftpaccess y cree una contraseña.

sudo adduser paul --ingroup ftpaccess --shell /usr/sbin/nologin

Paso 6: Modifique el permiso del directorio de inicio.

sudo chown root:root /home/paul

Paso 7: cree un directorio dentro de la casa para cargar y modificar el permiso con el grupo.

sudo mkdir /home/paul/www
sudo chown paul:ftpaccess /home/paul/www

Eso es todo .

Consulte: Configurar SFTP en ubuntu

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *