Construye un servidor FTP en centos7

Servidor FTP

Construye un servidor FTP en centos7

FTP: protocolo de transferencia de archivos, modo de trabajo [cliente / servidor], número de puerto del servicio FTP: tcp / 21, tcp / 20

Modo activo FTP : el cliente se conecta al puerto de comando del puerto 21 del servidor FTP desde un puerto arbitrario N (N> 1024), el cliente comienza a escuchar en el puerto N + 1 y envía el comando FTP "puerto N + 1" al servidor FTP, El servidor FTP utiliza el puerto de datos (20) para conectarse al puerto de datos (N + 1) designado por el cliente.

Modo pasivo FTP : el cliente se conecta al puerto de comando del puerto 21 del servidor FTP desde un puerto arbitrario N (N> 1024), el cliente comienza a escuchar en el puerto N + 1, el cliente envía el comando PASV y el servidor abre un puerto arbitrario ( P> 1024) y envíe el comando PORT P al cliente. El cliente inicia una conexión desde el puerto local N + 1 al puerto P del servidor para transmitir datos.

En el entorno real de la empresa, si el cliente FTP y el servidor FTP están abiertos al firewall, FTP debe funcionar en modo activo, de modo que solo los puertos 20 y 21 deben abrirse en las reglas del firewall del servidor FTP.

1. Introducción al servidor FTP

FTP (Protocolo de transferencia de archivos): El protocolo de transferencia de archivos es un sistema cliente / servidor. Los usuarios que utilizan FTP deben estar autenticados antes de poder iniciar sesión. Los usuarios del servidor FTP se pueden dividir en tres categorías.

Usuario del sistema : el usuario del sistema. Linux generalmente no restringe a los usuarios físicos, por lo que los usuarios físicos pueden trabajar en todo el sistema de archivos. Pero por lo general no quieren que accedan al sistema de forma remota a través de FTP.

Usuario virtual : Un usuario que solo puede usar el sistema en modo FTP y no puede iniciar sesión en el sistema directamente usando Shell, es decir, un usuario virtual.Se requiere autenticación para acceder al servidor. La mayoría de los usuarios de FTP son tales usuarios.

Usuario anónimo : Se puede proporcionar acceso de usuario anónimo para servidores públicos Nombre de usuario: anónimo. Sin embargo, cuando se utilizan usuarios anónimos, deben restringirse tanto como sea posible, con permisos más bajos, como: la cantidad de usuarios conectados al mismo tiempo es limitada, la cantidad de archivos a los que se accede es limitada, los archivos no se pueden cargar, se permiten menos instrucciones y la configuración está oculta. El número máximo de conexiones en las que los usuarios pueden iniciar sesión al mismo tiempo, etc.

2. Instalación del servidor FTP

1. Instale el paquete vsftpd usando la fuente yum predeterminada

#yum install vsftpd ftp

2. Inicie el servicio y configúrelo para que se inicie automáticamente

Nombre de servicio de vsftpd: vsftpd.service

#systemctl start vsftpd.service    启动服务
#systemctl enable vsftpd.service   开机自启

3. Configure el firewall y el mecanismo de Selinux

#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --reload
#systemctl stop firewalld
#setenforce 0

4. Acceda al servidor ftp

Use el comando ftp para acceder en el sistema Linux

Acceder al servidor FTP en el cliente de Windows

Tres, configurar usuarios anónimos para acceder a ftp

1. Los usuarios anónimos acceden a puntos de conocimiento relacionados con FTP

(1) De forma predeterminada, los usuarios anónimos y los usuarios del sistema pueden acceder a ftp. El directorio predeterminado al que se accede es: / var / ftp

Prueba de acceso (nombre de usuario: la contraseña anónima está vacía)

(2) El archivo de configuración de ftp es: /etc/vsftpd/vsftpd.conf

Configure usuarios anónimos para acceder a ftp:

anonymous_enable=YES

(3) Configure un usuario anónimo para que no ingrese una contraseña al iniciar sesión en ftp:

​no_anon_password=YES
ftpd_banner= welcome to our home!   //设置提示内容

(4) Configure usuarios anónimos para cargar, crear y eliminar archivos:

anon_upload_enable=YES       匿名用户上传权限
anon_mkdir_write_enable=YES  匿名用户新建文件夹的权限
anon_other_write_enable=yes  匿名用户删除和修改文件的权限

(5) Establecer permisos de archivo

chmod 777 pub   不推荐使用
setfacl -m u:ftp:rwx pub   推荐使用

(6) Establecer permisos para que los usuarios anónimos carguen o creen archivos nuevos

Valor de máscara: determina el
método de representación del valor de máscara de permiso predeterminado al crear un nuevo archivo o carpeta : 0022

Si usa vsftp como usuario local, debe modificar el valor de local_umask en el archivo de configuración;
si usa vsftp como usuario virtual, debe modificar el valor de anon_umask en el archivo de configuración.

Cuando umask = 022, el permiso de directorio recién creado es 755 y el permiso de archivo es 644; cuando
umask = 077, el permiso de directorio recién creado es 700 y el permiso de archivo es 600.

(7) La configuración no permite que los usuarios del sistema inicien sesión, solo los usuarios anónimos pueden iniciar sesión:

 anonymous_enable=YES
 local_enable=no

(8) Establezca el directorio predeterminado para que los usuarios anónimos accedan a FTP

anon_root=/var/ftp
anon_root=/var/public

Nota: Para modificar el usuario anónimo predeterminado cuando el directorio del servidor vsftp, no el anon_root a otra cuenta del directorio de inicio existente, o no puede lograr que los usuarios anónimos accedan al servidor ftp.

En cuarto lugar, configure los usuarios del sistema para acceder al servidor FTP.

1. Acceso del usuario del sistema a conocimientos relacionados con FTP

(1) El usuario del sistema accede al directorio principal de forma predeterminada y tiene la autoridad para cargar, descargar, crear y eliminar, y también puede cambiar a otros directorios del sistema.

Desactive el acceso de usuarios anónimos y solo permita que accedan los usuarios del sistema

anonymous_enable=no     关闭匿名用户访问
local_enable=yes         允许系统用户访问
local_umask=022

(2) Configure los usuarios del sistema para que solo tengan acceso a su propio directorio de inicio y tengan todos los permisos, y no se les permita cambiar a otros directorios del sistema.

chroot_local_user=YES   控制用户访问路径访问自己的主目录,不能切换到其他目录
allow_writeable_chroot=YES  允许写入
ftpd_banner= welcome to our home!
max_clients=30   设置最大连接数
idle_session_timeout=600   设置超时时间

(3) Configure el usuario del sistema para acceder al directorio especificado, y no se le permite cambiar a otros directorios del sistema, y ​​tiene la autoridad para cargar, descargar, crear y eliminar.

local_root=/mnt/public/   设置系统用户访问ftp的默认目录
write_enable=YES          允许写入
chroot_local_user=YES      控制用户访问路径访问指定目录,不能切换到其他目录
allow_writeable_chroot=YES 允许写入

Modifique los permisos de archivo en el directorio / mnt / public /

2. Control de acceso basado en usuarios locales

De forma predeterminada, todos los usuarios del sistema en el servidor ftp pueden acceder a ftp. ¿Cómo restringir el acceso solo a usuarios específicos del sistema? En vsftp se proporcionan dos archivos de configuración relacionados con los usuarios del sistema:

/ etc / vsftpd / ftpusers proporciona una lista de usuarios de ftp (lista negra) que tienen prohibido iniciar sesión. El usuario contenido en este archivo tendrá prohibido iniciar sesión en el servidor vsftpd, independientemente de si el usuario aparece en / etc / vfsftpd / user_list.

/ etc / vsftpd / user_list proporciona una lista de usuarios de ftp (lista blanca) que pueden iniciar sesión. Los usuarios contenidos en este archivo pueden tener prohibido iniciar sesión y se les puede permitir iniciar sesión.

La decisión específica se toma en el archivo de configuración principal vsftpd.conf:

Cuando hay userlist_enable = YES, el archivo user_list entra en vigor.

Cuando hay userlist_deny = YES, solo las cuentas de la lista tienen prohibido iniciar sesión.

Cuando hay userlist_deny = NO, los usuarios de la lista pueden iniciar sesión.

Entre ellos: la prioridad del archivo ftpusers es mayor que la del archivo user_list, es decir, si un usuario existe en dos archivos al mismo tiempo, se deniega el acceso a ftp.

Ejemplo: Solo permita que el usuario ftpuser acceda a ftp, entonces se pueden realizar las siguientes configuraciones:

 #vim /etc/vsftpd/vsftpd.conf
		userlist_enable=YES      #启用userlist用户列表(系统默认设置)
		userlist_deny=NO         #只允许列表中的用户登录    
#vim/etc/vsftpd/user_list

Después de reiniciar el servicio y probar en el cliente, solo el usuario ftpuser puede acceder a ftp en este momento

Cinco, configurar usuarios virtuales para acceder a FTP

1. Instale el software y los módulos de autenticación necesarios para los usuarios virtuales de Vsftpd

#yum install pam* libdb-utils libdb* --skip-broken -y

2. Cree un archivo de usuario virtual temporal /etc/vsftpd/ftpusers.txt. El formato del nombre de usuario y la contraseña es el siguiente:

Nombre de usuario de Techftp

123456 Contraseña

Netftp

123456

Admftp

123456

Markftp

123456

3. Genere el archivo de autenticación de la base de datos de usuarios virtuales Vsftpd y establezca la autoridad en 600

#db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftp_login.db
#chmod 600 /etc/vsftpd/vsftp_login.db 

4. Configure el archivo de autenticación PAM: vim /etc/pam.d/vsftpd.vu

auth   required   pam_userdb.so   db=/etc/vsftpd/vsftp_login
account  required  pam_userdb.so  db=/etc/vsftpd/vsftp_login

5. Cree un usuario del sistema para la asignación de usuarios virtuales

#useradd -s /sbin/nologin ftpuser

6. Modifique el archivo de configuración: #vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd
pam_service_name=vsftpd.vu
guest_enable=YES    开启系统虚拟用户访问
guest_username=ftpuser   指定系统虚拟用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf		指定虚拟用户的配置文件目录
virtual_use_local_privs=YES   允许虚拟用户访问

7. Cree directorios virtuales privados y archivos de configuración independientes para usuarios virtuales respectivamente.

#mkdir /home/ftpuser/techftp
#mkdir /etc/vsftpd/vsftpd_user_conf
#vim techftp
	local_root=/home/ftpuser/techftp   默认访问的目录
	write_enable=YES   允许写入
	anon_world_readable_only=YES   允许浏览
	anon_upload_enable=YES
	anon_mkdir_write_enable=YES
	anon_other_write_enable=YES
#mkdir /home/ftpuser/netftp
#vim netftp
	local_root=/home/ftpuser/netftp
	write_enable=YES
	virtual_use_local_privs=NO      #不具有可登录用户的权限     
	anon_world_readable_only=YES             #可浏览目录
	anon_upload_enable=YES
	anon_mkdir_write_enable=YES
	anon_other_write_enable=YES

Seis, gestión de registros Vsftpd

1. La configuración del archivo de registro del servidor FTP creado por el software Vsftp se puede encontrar en /etc/vsftpd.conf:

Xferlog_enable = YES Encienda el servidor FTP para registrar cargas y descargas

Xferlog_std_format = formato de registro SÍ

Xferlog_file = La ruta especifica el archivo de registro

El valor predeterminado es: / var / log / xferlog

2. El formato de salida del archivo de registro es el siguiente:

(1) Hora actual (hora local), el formato es: DDD MMM dd hh: mm: ss AAAA

(2) Tiempo de transmisión: el tiempo utilizado para transmitir el archivo, en segundos

(3) Nombre / IP de host remoto:

(4) Tamaño de archivo: el tamaño del archivo transferido, en bytes

(5) Nombre de archivo: nombre del archivo de transferencia, incluida la ruta

(6) Tipo de transmisión: a: transmisión en ASCII; b: transmisión en archivo binario

(7) Marca de tratamiento especial:

_: Sin trato especial

C: el archivo está comprimido

U: el archivo está en formato sin comprimir

T: el archivo está en formato tar

(8) Dirección de transmisión: o Transferencia del servidor FTP al cliente; i Transferencia del cliente al servidor FTP

(9) Modo de acceso: un usuario anónimo; g usuario invitado; r usuario en el sistema

(10) Nombre de usuario

(11) Nombre del servicio: generalmente FTP

(12) Método de autenticación: 0 ninguno; 1 autenticación RFC931

(13) Identificación de usuario autenticado: si usa *, la prueba significa que no se puede obtener la identificación

(14) Estado de finalización: i la transmisión no se ha completado; c significa que la transmisión se ha completado.

Supongo que te gusta

Origin blog.csdn.net/weixin_49671316/article/details/108900550
Recomendado
Clasificación