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á usar 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 del Cliente.
Descripción general de la solución
- En Ubuntu, puede configurar una
OpenSSH server
máquina Host y luego un usuario puede usarla ssh
para conectarse desde el Cliente al servidor Host utilizando solo un nombre de usuario y contraseña. Tenga en cuenta, sin embargo, que se recomienda la autenticación de clave pública,
"Asegúrese de tener una contraseña segura antes de instalar un servidor SSH (puede deshabilitar las contraseñas por completo )"
- Las cuentas de usuario administrativas creadas en el host tendrán privilegios de 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 hacer 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 extraño le pide a su enrutador que se conecte al puerto 22, etc., su enrutador no cumple a menos que haya habilitado el reenvío de puertos
- Deshabilitar inicio de sesión raíz: Comentario fuera
PermitRootLogin without-password
; agregar PermitRootLogin no
a Host's/etc/ssh/sshd_config
- Elija un puerto SSH no estándar: Comentario
Port 22
; agregar Port <new-port-number>
a Host's/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 Host/etc/ssh/sshd_config
- Permitir solo conexiones de clave RSA (sin contraseña): agregue el contenido de
~/.ssh/id_rsa.pub
cada Cliente como una nueva línea de Host ~/.ssh/authorized_keys
. Luego agregue PasswordAuthentication no
a Host's/etc/ssh/sshd_config
- Intentos de craqueo de los atacantes lentos: use ufw (firewall sin complicaciones) en el host para calificar las conexiones entrantes limitadas a 10 / minuto:
sudo apt-get install ufw && sudo ufw limit OpenSSH
- Para obtener más ideas, consulte Mantener seguro el acceso SSH
Si cree que debe hacerlo, habilite PasswordAuthentication
en su sshd_config
archivo
Encuentra la línea con la frase PasswordAuthentication
y haz que se lea:
PasswordAuthentication yes
Guarde su nuevo sshd_config
archivo y luego reinicie el ssh
servicio de Host :
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 que el ssh
servicio del host del puerto escucha en el sshd_config
archivo y configure su enrutador para reenviar el tráfico TCP / UDP dirigido a este puerto a la dirección IP de su servidor OpenSSH.
Conéctese al host e inicie sesión a través de la línea de comandos o terminal
Para abrir una 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 una 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 más acceso visual SFTP para habilitar las transferencias de archivos
- Abra Nautilus en el cliente
- Seleccione Archivo> Conectar al servidor
- Tipo:
SSH
- Servidor: ingrese la dirección IP del host
- Puerto: número de puerto especificado en el
sshd_config
archivo del Host
- Nombre de usuario: nombre de usuario
- Contraseña: contraseña
En 14.04:
- Abra Nautilus en el cliente
- Conectar al servidor
- Tipo: `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á el propietario de su /home/new_user
directorio pero tendrá permisos limitados con el resto de la estructura del directorio.
- Los permisos limitados no necesariamente significan que no pueden ver los nombres de archivo y la estructura del directorio.
Espero que sea útil!
Paso 1: instale el paquete OpenSSH si no está instalado
Paso 2: Crear un grupo separado para usuarios de SFTP.
Paso 3: edite el
/etc/ssh/sshd_config
archivo y realice los cambios a continuación. Encuentra y comenta debajo de la línea.y agregue estas líneas al final del archivo.
Paso 4: reinicie el servicio sshd.
Paso 5: Agregue un usuario con el grupo ftpaccess y cree una contraseña.
Paso 6: Modifique el permiso del directorio de inicio.
Paso 7: Cree un directorio dentro de casa para cargar y modificar el permiso con el grupo.
Eso es .
Consulte: Configurar SFTP en ubuntu
fuente
sudo chmod 711
en la carpeta de inicio y me permitió ftp a la carpeta www, solo. Parece bueno hasta ahora, pero tal vez otros puedan sonar ...Denyhosts es otra herramienta además de las mencionadas por "jtd" que es posible que desee ver. Puede bloquear automáticamente intentos repetidos de conexión a su servidor SSH. Está disponible para instalar en los repositorios de Ubuntu.
fuente
Limite el acceso al usuario
Aquí, solo permitiremos que el usuario realice la transferencia de archivos y desactivaremos el acceso a la terminal.
Para eso, agregue los siguientes códigos en la parte inferior del archivo de configuración.
Ahora el archivo se abrirá y pegará el código.
Reemplace
filemg
con su nombre de usuario. Luego guarde y cierre el archivo.Eso es.
Referencia: Cómo usar SFTP en Ubuntu 16.04
fuente