FTP部署与使用
1.1 环境检查
[root@www ~]# cat /etc/redhat-release #系统版本,6系列等区别不大,都可以 CentOS Linux release 7.5.1804 (Core) [root@www ~]# uname -r 3.10.0-862.9.1.el7.x86_64 [root@www ~]# systemctl status firewalld #关闭防火墙 ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@www ~]# getenforce #检查selinux是否关闭 Disabled
1.2 安装并配置
#直接粘贴配置就可以使用
[root@www ~]# yum -y install vsftpd #直接yum安装 [root@www ~]# cd /etc/vsftpd/ [root@www vsftpd]# cp vsftpd.conf vsftpd.conf.bak #编辑配置文件前一定记得备份,养成好习惯 [root@www ~]# vim /etc/vsftpd/vsftpd.conf #编辑主配置文件 #开启匿名 anonymous_enable=no #--------------------本地用户权限设置------------------------------ #本地账户可以登录 local_enable=YES #本地帐户登陆后可以删除和修改文件 write_enable=NO #允许锁定的用户有写的权限 allow_writeable_chroot=yes #当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录 local_root=/data/sprixin #ftp上本地文件权限 local_umask=022 #本地用户上传档案后的档案权限,与chmod 所使用的数值相同。默认值为0666 file_open_mode=0755 pam_service_name=vsftpd #--------------------控制用户是否允许切换到上级目录--------------- #设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。 chroot_list_enable=no #用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。 chroot_list_file=/etc/vsftpd.chroot_list #用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。 chroot_local_user=YES #---------------------欢迎语设置----------------------------------- #访问ftp时的说明文件 dirmessage_enable=NO #设置目录消息文件,可将要显示的信息写入该文件。默认值为.message。 message_file=.message #当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明. banner_file=/etc/vsftpd/banner #---------------------日志文件设置--------------------------------- #启用上传和下载的日志S xferlog_enable=YES #使用标准的日志格式 xferlog_std_format=yes #日志路径 xferlog_file=/var/log/vsftpd.log #如果启用此选项,所有的FTP请求和响应都会被记录到日志中,默认日志文件在/var/log/vsftpd.log。启用此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。 #log_ftp_protocol=YES #---------------------FTP工作方式与端口设置------------------------- #启用ftp数据端口的数据连接 connect_from_port_20=YES #设置FTP服务器建立连接所监听的端口,默认值为21。 listen_port=21 #将客户端的数据连接端口改在50000—60000之间 #在PASV工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默认值为0。 pasv_min_port=50000 # 在PASV工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为0。 pasv_max_port=60000 #若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式 pasv_enable=YES #----------------------与连接相关的设置------------------------------ #设置vsftpd服务器是否以standalone模式运行 listen=YES #以下只有在standalone模式运行才有效 # (ftp的最大连接数) max_clients=200 # (每ip的最大连接数) max_per_ip=0 #设置每个与FTP服务器的连接,是否以不同的进程表现出来 setproctitle_enable=YES #------------------------访问控制------------------------------------ #两种控制方式:一种控制主机访问,另一种控制用户访问。 tcp_wrappers=YES #配合系统的文件进行访问控制,类似简易防火墙,限制访问(/etc/hosts.allow,/etc/hosts.deny) userlist_enable=NO #是否启用用户控制文件 userlist_file=/etc/vsftpd.user_list #控制用户访问FTP的文件,里面写着用户名称。一个用户名称一行。 userlist_deny=NO #若设置为YES,则vsftpd.user_list文件中的用户不允许访问FTP,若设置为NO,则只有vsftpd.user_list文件中的用户才能访问FTP。 #-----------------------访问速率------------------------------------ #本地用户使用的最大传输速度,单位为B/s,0 表示不限制速度。预设值为0。 #下载速度9M local_max_rate=10000000 #-----------------------超时时间设置------------------------------- # (用户会话空闲后10分钟) idle_session_timeout=600 # (将数据连接空闲2分钟断) data_connection_timeout=120 # (将客户端空闲1分钟后断) accept_timeout=60 # (中断1分钟后又重新连接) connect_timeout=60 #----------------------数据传输模式设置---------------------------- #FTP在传输数据时,可以使用二进制方式,也可以使用ASCII模式来上传或下载数据。 ascii_upload_enable=NO #设置是否启用ASCII 模式上传数据。默认值为NO。 ascii_download_enable=NO #设置是否启用ASCII 模式下载数据。默认值为NO。 #-----------------------其他设置----------------------------------------- #显示用户名和组名 text_userdb_names=YES #不可以查看当前目录下子目录中的文件 ls_recurse_enable=NO #如果设置为NO,所有的文件都不能下载到本地,文件夹不受影响。默认值为YES。 download_enable=NO
#创建ftp用户
[root@www vsftpd]# useradd ftpuser -s /sbin/nologin #禁止登录系统 [root@www vsftpd]# passwd ftpuser #设置ftpuser密码,我这里是123456输入两次 Changing password for user ftpuser. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.
#将ftp用户加入user_list允许访问
[root@www vsftpd]# echo ftpuser >>/etc/vsftpd/user_list [root@www vsftpd]# echo ftpuser >>/etc/vsftpd/chroot_list
#启动vsftpd
[root@www vsftpd]# systemctl start vsftpd [root@www vsftpd]# netstat -lntup|grep 21 #检查是否监听 tcp6 0 0 :::21 :::* LISTEN 13837/vsftpd
1.3 使用浏览器访问或者ftp工具
浏览器输入:ftp://IP地址 输入账号:ftpuser 密码:123456