Introducción
SFTP (Protocolo de transferencia de archivos SSH) es un protocolo de archivo seguro para transferir archivos entre dos hosts a través de una conexión cifrada. También le permite realizar varias operaciones de archivos remotos y reanudar las transferencias de archivos.
SFTP se puede utilizar como reemplazo del protocolo FTP heredado. Tiene todas las características de FTP pero con una conexión más segura.
Este artículo explica cómo cambiar el puerto SFTP predeterminado en Linux. También le mostraremos cómo configurar su firewall para permitir en el nuevo puerto.
No confunda SFTP con FTPS. Ambos protocolos tienen el mismo propósito. Sin embargo, FTPS significa FTP Secure y es una extensión del protocolo FTP estándar con soporte para TLS.
Puerto SFTP estándar
SFTP es un subsistema de SSH y proporciona el mismo nivel de seguridad que SSH.
El puerto SFTP predeterminado es el 22.
Cambiar el puerto SFTP
Cambiar el puerto SFTP /SSH predeterminado agrega una capa adicional de seguridad al servidor al reducir el riesgo de ataques automatizados.
La mejor manera de proteger el servidor de ataques es configurar el firewall para permitir el acceso al puerto 22 solo desde hosts confiables y configurar la autenticación basada en claves SSH.
Los siguientes pasos describen cómo cambiar el puerto SSH en máquinas Linux.
Elija un nuevo número de puerto
En Linux, los números de puerto inferiores a 1024 están reservados para servicios conocidos y solo pueden asociarse con root. Aunque puede usar un puerto en el rango de 1-1024 para el servicio SSH para evitar problemas de asignación de puertos, se recomienda que elija un puerto mayor que 1024.
Este ejemplo muestra cómo cambiar el puerto SFTP /SSH a 4422, pero puede elegir el puerto que desee.
Ajustar el firewall
Antes de cambiar el puerto SFTP /SSH, deberá abrir el nuevo puerto en su firewall.
Si está utilizando UFW, el firewall UFW predeterminado en Ubuntu, ejecute el siguiente comando para abrir el puerto:
sudo ufw allow 4422/tcp
En CentOS, la herramienta de administración de firewall predeterminada es FirewallD. Para abrir la puerta, ingrese los siguientes comandos:
sudo firewall-cmd --permanent --zone=public --add-port=4422/tcp
sudo firewall-cmd --reload
Los usuarios de CentOS también deben ajustar las reglas de SELinux para permitir el nuevo puerto SSH:
sudo semanage port -a -t ssh_port_t -p tcp 4422
Si está utilizando otra distribución de Linux que ejecuta iptables, para abrir el nuevo puerto, ejecute:
sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Configurar SFTP /SSH
La configuración del servidor SSH se almacena en el /etc/ssh/sshd_config
. Abra el archivo con su editor de texto:
sudo vim /etc/ssh/sshd_config
Busque la línea que comienza con el Port 22
. Normalmente, esta línea se comenta con el símbolo de almohadilla #
. Elimine el hash #
e ingrese su nuevo número de puerto SSH:
Tenga mucho cuidado al editar el archivo de configuración. Una configuración incorrecta podría impedir que se inicie el servicio SSH.
Una vez hecho esto, guarde el archivo y reinicie el servicio SSH para que los cambios surtan efecto:
sudo systemctl restart ssh
En CentOS, el servicio SSH se llama sshd
:
sudo systemctl restart sshd
Verifique que el demonio SSH esté escuchando en el nuevo puerto:
ss -an | grep 4422
La salida debería verse así:
tcp LISTEN 0 128 0.0.0.0:4422 0.0.0.0:*
tcp ESTAB 0 0 192.168.111.111:4422 192.168.111.1:41438
tcp LISTEN 0 128 [::]:4422 [::]:*
Utilice el nuevo puerto SFTP
Para especificar el número de puerto, invoque el sftp
con la -P
seguida del nuevo número de puerto:
sftp -P 4422 username@remote_host_or_ip
Si está utilizando un cliente SFTP GUI, simplemente ingrese el nuevo puerto en la interfaz del cliente.
Conclusión
El puerto SFTP predeterminado es 22. Sin embargo, puede cambiar el puerto al número deseado.
Si se conecta regularmente a varios sistemas, puede simplificar su flujo de trabajo definiendo todas las conexiones en el archivo de configuración SSH.