Configuración Avanzada de Servidor VSFTPD y Otros Comandos Útiles

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,26 KB

Configuración Avanzada de Servidor VSFTPD

Conexiones y Permisos

  1. Permitir conexión por el puerto estándar:
    Esta opción está habilitada por defecto.
  2. No permitir conexión anónima:
    Las conexiones anónimas están deshabilitadas por defecto con anonymous_enabled=NO.
  3. Permitir conexión anónima para subir archivos a la carpeta "publico":
    • sudo mkdir /srv/ftp/publico
    • cd /srv/ftp
    • sudo chown ftp:ftp publico/
    • sudo nano /etc/vsftpd.conf
    • anonymous_enable=YES
    • write_enable=YES
    • anon_upload_enable=YES
    • sudo service vsftpd restart
  4. Los usuarios anónimos solo pueden descargar ficheros legibles por todo el mundo (644):
    anon_world_readable_only=YES
  5. Todos los ficheros que suban los usuarios anónimos queden con permiso de propietario determinado:
    • chown_uploads=YES
    • chown_username=Nombre de usuario
  6. Asegurarse de que se solicita siempre contraseña al usuario anónimo:
    • no_anon_password=NO
    • secure_email_list_enable=YES
    • sudo nano /etc/vsftpd.email_passwords (metemos dentro los emails permitidos, que se usarán como contraseñas válidas)
  7. Crear usuarios con acceso solo a sus respectivos directorios con permisos de lectura y escritura:
    • sudo useradd -d /home/usu -m usu
    • sudo passwd usu
    • (Si pide una carpeta más específica)
    • sudo mkdir /home/usu/ftp
    • sudo usermod --home /home/usu/ftp usu
    • sudo chown usu:ftp /home/usu/ftp
    • sudo nano /etc/vsftpd.conf
    • chroot_local_user=NO
    • chroot_list_enable=YES
    • chroot_list_file=/etc/vsftpd.chroot_list
    • allow_writeable_chroot=YES (para evitar el error 500 en Filezilla)
    • sudo nano /etc/vsftpd.chroot_list (metemos dentro los usuarios que queremos enjaular)

Registros y Seguridad

  1. Hacer que el servidor VSFTPD deje traza en fichero de log de todo el diagnóstico de comunicación cifrada:
    • xferlog_enable=YES
    • xferlog_std_format=NO
    • log_ftp_protocol=YES
    • xferlog_file=/var/log/vsftpd.log
  2. Permitir también conexión por el puerto seguro de forma cifrada. Crear certificado previo:
    • cd /etc/
    • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout vsftpd.pem -out vsftpd.pem
    • sudo nano /etc/vsftpd.conf
    • ssl_enable=YES
    • force_local_data_ssl=NO
    • force_local_logins_ssl=NO
    • ssl_tlsv1=YES
    • ssl_sslv2=NO
    • ssl_sslv3=NO
    • rsa_cert_file=/etc/vsftpd.pem
  3. Forzar a que todas las conexiones anónimas se realicen de forma cifrada mediante SSL:
    • allow_anon_ssl=YES
    • force_anon_data_ssl=YES
    • force_anon_logins_ssl=YES
  4. Obligar a que todas las conexiones requieran un certificado digital para transmitir por SSL:
    require_cert=YES
  5. Todos los certificados cliente utilizados tengan que ser validados OK:
    validate_cert=YES

Crear un Repositorio Local y Conectarlo a Uno Remoto (Git)

  1. sudo apt install git -y
  2. sudo git config --global user.name “usuario”
  3. sudo git config --global user.email [email protected]
  4. sudo git config --global core.editor nano
  5. sudo git config --global merge.tool vimdiff
  6. (Nos situamos dentro de la carpeta donde queremos inicializar el repositorio)
  7. sudo git init
  8. sudo git add *
  9. sudo git status
  10. sudo git commit -m ‘Versión Inicial’ (o el comentario que quieras)
  11. (Vamos a nuestra cuenta de GitHub, creamos un repositorio y copiamos la URL que nos muestra al crearlo)
  12. sudo git remote add nombre_repositorio url_copiada
  13. sudo git push nombre_repositorio master

Explicación del Comando dig

  1. dig sin argumentos:
    Realiza una consulta de los servidores raíz (root servers).
  2. dig con dominio como argumento (dig www.marca.com):
    Devuelve el registro A. Muestra el estado (NOERROR si la resolución es correcta), la sección de respuesta (ANSWER SECTION), el tiempo de respuesta y el servidor que responde a la consulta.
  3. dig con dominio como argumento y usando un name server específico (dig @8.8.8.8 www.marca.com):
    Devuelve el registro A, pero consulta el dominio desde las DNS especificadas.
  4. dig con dominio como argumento, especificando el registro que queremos consultar (dig MX @8.8.8.8 www.marca.com):
    • A: Registro de dirección IPv4.
    • AAAA: Registro de dirección IPv6.
    • MX: Registro de servidor de correo.
  5. Consultar todos los registros de la lista (dig ANY www.marca.com):
    Consulta todos los registros disponibles en la zona DNS del dominio.
  6. dig con el parámetro -x (dig -x 8.8.8.8):
    Devuelve la resolución inversa de un dominio, mostrando el dominio asociado a la IP introducida.
  7. dig con el parámetro +trace (dig +trace www.marca.com):
    Realiza un rastreo en la ruta de búsqueda DNS, mostrando los servidores raíz, los servidores de nombres para el dominio de nivel superior y, finalmente, los servidores de nombres y registros del dominio consultado.

Entradas relacionadas: