Centos7 # Servicio de archivos FTP para servicios básicos

1. Introducción al servicio de archivos ftp

Protocolo de transferencia de archivos (FTP), según el cual el cliente y el servidor FTP pueden compartir archivos, cargar archivos y descargar archivos. FTP genera una conexión virtual basada en el protocolo TCP, que se utiliza principalmente para controlar la información de la conexión FTP, y al mismo tiempo genera una conexión TCP separada para la transmisión de datos FTP. Los usuarios pueden cargar, descargar y eliminar archivos al servidor FTP a través del cliente, y el servidor FTP puede ser compartido por varias personas al mismo tiempo. El servicio FTP es un modo Cliente / Servidor (C / S). El software que realiza el intercambio externo y la transferencia de archivos FTP basado en el protocolo FTP se denomina lado fuente del servidor FTP. El programa cliente se basa en el protocolo FTP, por lo que se denomina cliente FTP. El cliente puede cargar y descargar archivos al servidor FTP. El software de servidor FTP más utilizado para Unix / Linux es Vsftpd.
  Protocolo: protocolo de transferencia de archivos ftp
  software de cliente: lftp (recomendado), navegador, administrador de recursos, ftp

Introducción al modo de transferencia FTP (modo activo y modo pasivo)
  El modo pasivo de vsftpd está habilitado por defecto. Se puede apagar. El modo activo siempre está encendido y no se puede apagar.
  Modo activo: el puerto 21 es responsable de establecer una conexión tcp y el puerto 20 es responsable de transmitir datos al
  servidor cliente (C / Modo S)  
  1024 --------> 21 responsable de la conexión de la sesión
  1024 <-------- 20 responsable de la transmisión de datos
  zona de alta seguridad cortafuegos zona de baja seguridad
  modo pasivo: el puerto 21 es responsable de establecer la conexión tcp, 1024 + Almacene los datos y espere a que el cliente recupere los datos del
  servidor cliente (modo C / S)
  1024 --------> 21 responsable de la conexión de sesión
  1024 --------> 1024 + Almacene los datos y espere a que el cliente los recupere Datos
  El modo que se usa para conectarse al servidor, el cliente tiene la última palabra.
  Puede aceptar que el modo es la última palabra del
  servidor El servidor apaga el modo pasivo:
  [root @ xingdian ~] # vim /etc/vsftpd/vsftpd.conf pasv_enable
  = NO El
  cliente se apaga pasivo Modo:
  [root @ xingdian ~] # lftp 172.16.70.251
  > set ftp: el modo pasivo desactivado
  tiene efecto de forma permanente
  [root @ xingdian ~] #vim /etc/lftp.conf
  establecer ftp: modo pasivo desactivado

Seguridad ftp:
  1. Desactive todos los permisos para usuarios anónimos excepto los permisos de descarga.
  2. Active la supervisión, es decir, active el registro / var / log / xferlog

lftp ftp.net.pku.edu.cn:~> ls
  `ls 'a 0 [Retraso antes de reconectarse: 21]
  Si no puede conectarse una vez, el retraso será cada vez más largo y no podrá ingresar a ftp. .
  Modifique el archivo de configuración del cliente ftp
  Agregue /etc/lftp.conf:
  set net: reconnect -interval-base 5 // Establezca el intervalo de reconexión base
  set net: reconnect-interval-multiplier 1.0 // Establezca el multiplicador del intervalo de reconexión

2. Implementar el servicio ftp básico

①, instale el
  servidor: yum -y instale vsftpd
  clinet: yum -y instale lftp
  ②, inicie el servicio (servidor), inicie vsftpd en el lado del servidor y use lftp directamente en el lado del cliente
  [root @ ftp-server ~] # systemctl start vsftpd / / Start service
  [root @ ftp-server ~] # systemctl enable vsftpd // inicio en el arranque
  ③, función de servicio ftp
  / var / ftp / es el directorio donde el servidor ftp almacena datos por defecto, y se ha creado automáticamente un directorio pub.
  [root @ ftp-server ~] # cd / var / ftp / Nota: Por razones de seguridad, los permisos del directorio raíz de ftp no pueden exceder 755
  [root @ ftp-server ~] # /etc/vsftpd/vsftpd.conf archivo de configuración principal de ftp

En este punto, el cliente usa lftp como usuario anónimo para acceder al servidor ftp y puede ver y descargar los recursos proporcionados en el servidor ftp: / var / ftp /, pero no puede cargar ni modificar recursos
  [root @ ftp-client ~] # lftp 10.11.67.31
  lftp 10.11.67.31:~> ls
  lftp 10.11.67.31: /> cd software /
  lftp 10.11.67.31:/software> ls
  lftp 10.11.67.31:/software> get vim.tar.gz
  137087889 bytes transferidos en 12 segundos (10.93M / s)
  Se permite la descarga de archivos
  lftp 10.11.67.31:/software> cd…
  lftp 10.11.67.31: /> ls
  lftp 10.11.67.31: /> espejo kvm
  Total: 1 directorio, 4 archivos, 0 enlaces simbólicos
  Nuevo: 4 archivos, 0 enlaces simbólicos
  115437075 bytes transferidos en 13 segundos (8.55M / s) Se
  permite el espejo del directorio de descarga
  lftp 10.11.67.31: /> mkdir kakaops
  mkdir: Error de acceso: 550 Permiso denegado. (kakaops)
  Crear directorio mkdir fue rechazado
  lftp 10.11.67.31:~> put /mnt/kakaops.txt
  put: Error de acceso: 550 Permiso denegado. (kakaops.txt)
  Subir archivo colocado fue rechazado
  lftp 10.11.67.31: /> mirror -R / mnt /
  mirror: Error de acceso: 550 No se pudo cambiar el directorio. (/ mnt)
  1 error detectado
  cargar el directorio espejo -R fue rechazado

3. Implementar la función de carga de usuarios anónimos de FTP

Active la función de carga de ftp (primero active la función de carga de archivos, cree un directorio compartido con el permiso de 777 en / var / ftp)
  primero modifique el archivo de configuración de ftp y active la función de carga
  [root @ ftp-server ~] # vim / etc / vsftpd / vsftpd.conf

  anon_upload_enable=YES //上传文件
  anon_mkdir_write_enable=YES //上传目录

El servidor crea un directorio 777 en / var / ftp
  [root @ ftp-server ~] # mkdir / var / ftp / gongxiang
  [root @ ftp-server ~] # chmod 777 / var / ftp / gongxiang /
  [root @ ftp -server ~] # systemctl restart vsftpd En
  este momento, el cliente puede cargar archivos en el directorio compartido y crear directorios, pero no se pueden crear archivos
  [root @ ftp-client ~] # lftp 10.11.67.31
  lftp 10.11.67.31:~> cd gongxiang /
  lftp 10.11.67.31:/gongxiang> mkdir sunlizhen
  mkdir tuvo éxito, creando `sunlizhen '
  lftp 10.11.67.31:/gongxiang> put /mnt/kakaops.txt
  lftp 10.11.67.31:/gongxiang> ls
  -rw ----- - 1 14 50 0 26 de octubre 09:40 kakaops.txt
  drwx ------ 2 14 50 6 26 de octubre 09:39 sunlizhen
  lftp 10.11.67.31:/gongxiang>
  Los usuarios anónimos pueden cargar y descargar, pero solo Solo limitado al directorio 10.11.67.31:/gongxiang/

4. Problema de acceso a la cuenta local de ftp

Utilice la función de inicio de sesión de usuario (ftp permite el acceso de usuario anónimo, también puede crear un usuario en el lado del servidor, establecer una contraseña para iniciar sesión, al crear un usuario, si se especifica el directorio de inicio del usuario, el directorio compartido predeterminado se convierte en el directorio de inicio del usuario)
  useradd creation Problema del usuario
  [root @ localhost] #useradd -d / opt / haha ​​-G ftp -s / sbin / nologin haha
  Creando un archivo de buzón: El archivo existe // Tengo un error en mi operación aquí. Por cierto
  , agregue este problema en el sistema linux Después del usuario, se agregará automáticamente un buzón (buzón del sistema) al sistema, la ruta es: / var / spool / mail / username.
  Por lo tanto, cuando elimine un usuario, use userdel -r para eliminarlo limpiamente,
  puede usar directamente el comando #rm -rf / var / spool / mail / username, para que pueda agregar un usuario con el mismo nombre nuevamente. Después de
  ejecutar este comando, si aparece un mensaje de error como este:
  useradd: advertencia: el directorio de inicio ya existe.
  No se copia ningún archivo del directorio skel en él.
  Motivo del error:
  los pasos estándar para agregar usuarios al sistema
  1. Edite / etc / passwd y / etc / group
  2. Cree el directorio de inicio del usuario
  3. Copie archivos y directorios de / etc / skel
  4. Permita que el nuevo usuario obtenga la propiedad de su directorio de inicio y archivos Permiso
  5. Dar una contraseña al nuevo usuario
  Esto significa que el directorio del usuario ya existe (puede ser cualquier directorio que establezca) y ya no puede crear este directorio. No es un error agregar usuarios y puede ignorarse. Al crear un usuario, -d especifica el directorio de inicio. Si el directorio de inicio especificado ya existe, se informará esta advertencia. Es mejor especificar un directorio de inicio que no existe y el sistema lo creará automáticamente. Pero no puede crear directorios de forma recursiva.

Cree un usuario (el grupo ftp se especifica para estandarizar la clasificación, no necesita especificarlo)
  [root @ ftp-server ~] # useradd -d / mnt / kakaops kakaops -G ftp
  [root @ ftp-server ~] # passwd kakaops (123)
  clientes Inicio de sesión de cliente (inicio de sesión anónimo e inicio de sesión de usuario)
  [root @ ftp-client ~] # lftp 10.11.67.31 -u kakaops (-u especifica el usuario, se requiere
  contraseña ) Contraseña:
  lftp [email protected]: ~> ls
  [root @ ftp-client ~] # lftp 10.11.67.31 -u kakaops, 123 (, agregue la contraseña
  después ) lftp [email protected]: ~>
  Cuando el usuario inicia sesión, el directorio compartido predeterminado es el directorio de inicio del usuario.

La cuenta anónima
  lftp 172.16.70.251 usa la cuenta predeterminada en el archivo passwd. De manera predeterminada, no es necesario escribir el usuario y la contraseña. Se usa la ruta compartida predeterminada / var / ftp,
  la cuenta local
  lftp 172.16.70.251 -u user02, 1 (contraseña), excepto ftp Para otras cuentas, el directorio compartido predeterminado es el directorio de inicio de la cuenta.

Comandos de cliente comunes

help // Ver comando help manual
ls // Ver archivo
directorio // Ver archivo = ls
cd pub // Cambiar ruta
obtener archivo -o / root / Desktop
download file (-o especifica el directorio de almacenamiento del archivo de descarga, no especifica la descarga predeterminada para iniciar sesión Debajo del directorio, descargue varios archivos separados por espacios)
El directorio de descarga especificado por el directorio espejo (especifique el directorio que se
descargará primero, luego especifique la ruta de guardado del directorio directamente y no especifique la descarga predeterminada al directorio de inicio de sesión). Si se especifica aquí, excepto el directorio actual Para otros directorios, el contenido del directorio se descarga del directorio y el directorio se dividirá. Si el directorio se descarga al directorio actual, descargará el directorio sin abrir
poner archivo // cargar archivo
espejo -R directorio // cargar directorio directorio
mkdir // el cliente puede crear directorios

5. Una explicación detallada de las opciones del archivo de configuración con FTP suplementario

Vsftpd configura opciones comunes para usuarios anónimos

1、编辑配置文件
[[email protected] vsftpd]# vim vsftpd.conf
write_enable=YES

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

2、常用的匿名FTP配置项
anonymous_enable=YES                         		# 是否允许匿名用户访问
anon_umask=022                                    	# 匿名用户所上传文件的权限掩码
anon_root=/var/ftp                                  # 设置匿名用户的FTP根目录
anon_upload_enable=YES                      		# 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES               			# 是否允许匿名用户允许创建目录
anon_other_write_enable=YES               			# 是否允许匿名用户有其他写入权(改名,删除,覆盖)
anon_max_rate=0                                     # 限制最大传输速率(字节/秒)0为无限制

3、开启 vsftp 服务
[root@xingdian vsftpd]# systemctl start vsftpd
[root@xingdian vsftpd]# netstat -lnpt |grep vsftpd
tcp    0   0 0.0.0.0:21       0.0.0.0:*        LISTEN   34531/vsftpd

4、客户端登陆验证

Vsftpd configura opciones comunes para usuarios locales

1、创建测试用户
• 创建 zhangsan、lisi  密码都设置为 “123456”
[root@xingdian ~]# useradd zhangsan
[root@xingdian ~]# useradd lisi
[root@xingdian ~]# echo "123456" | passwd --stdin zhangsan
[root@xingdian ~]# echo "123456" | passwd --stdin lisi


2、修改配置文件
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES

3、常用的本地用户FTP配置项
local_enable=YES                                    # 是否允许本地系统用户访问
local_umask=022                                     # 本地用户所上传文件的权限掩码
local_root=/var/ftp                                   # 设置本地用户的FTP根目录
chroot_list_enable=YES                            	# 表示是否开启chroot的环境,默认没有开启
chroot_list_file=/etc/vsftpd/chroot_list        	
# 表示写在/etc/vsftpd/chroot_list文件里面的用户是不可以出chroot环境的。默认是可以的。
Chroot_local_user=YES                             	
# 表示所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的,和上面的相反。
local_max_rate=0                                    # 限制最大传输速率(字节/秒)0为无限制

4、添加用户到白名单
[[email protected] ~]# vim /etc/vsftpd/user_list 
zhangsan
lisi

5、重启服务
[[email protected] ~]# systemctl restart vsftpd 

6、登陆测试

Explicación detallada de las opciones del archivo de configuración de vsftpd

listen=YES                                          # 是否以独立运行的方式监听服务
listen_address=192.168.4.1                       	# 设置监听FTP服务的IP地址
listen_port=21                                      # 设置监听FTP服务的端口号
write_enable=YES                                    # 是否启用写入权限(上传,删除文件)
download_enable=YES                                # 是否允许下载文件
dirmessage_enable=YES                           	# 用户切换进入目录时显示.message文件
xferlog_enable=YES                                  # 启用日志文件,记录到/var/log/xferlog
xferlog_std_format=YES                             	# 启用标准的xferlog日志格式,禁用此项将使用vsftpd自己的格式
connect_from_port_20=YES                       		# 允许服务器主动模式(从20端口建立数据连接)
pasv_enable=YES                                     # 允许服务器被动模式
pasv_max_port=24600                                	# 设置被动模式服务器的最大端口号
pasv_min_port=24500                                 # 设置被动模式服务器的最小端口号
pam_service_name=vsftpd                          	# 用户认证的PAM文件位置
(/etc/pam.d/vsftpd.vu)
userlist_enable=YES                                 # 是否启用user_list列表文件
userlist_deny=YES                                   # 是否禁用user_list中的用户
max_clients=0                                       # 限制并发客户端连接数
max_per_ip=0                                        # 限制同一IP地址的并发连接数
tcp_wrappers=YES                                    # 是否启用tcp_wrappers主机访问控制
chown_username=root                                 # 表示匿名用户上传的文件的拥有人是root,默认关闭
ascii_upload_enable=YES                             # 表示是否允许用户可以上传一个二进制文件,默认是不允许的
ascii_download_enable=YES               # 这个是代表是否允许用户可以下载一个二进制文件,默认是不允许的
nopriv_user=vsftpd                                  # 设置支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户
async_abor_enable=YES                               # 设定支持异步传输功能
ftpd_banner=Welcome to Awei FTP servers   			# 设定Vsftpd的登陆标语
guest_enable=YES                         	 # 设置启用虚拟用户功能
guest_username=ftpuser         				  # 指定虚拟用户的宿主用户
virtual_use_local_privs=YES        			    # 设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf      			 # 设定虚拟用户个人Vsftp的配置文件存放路径

Supongo que te gusta

Origin blog.csdn.net/kakaops_qing/article/details/109295002
Recomendado
Clasificación