vsftpd服务器配置与使用 您所在的位置:网站首页 vsftpd服务器提供的主要功能 vsftpd服务器配置与使用

vsftpd服务器配置与使用

#vsftpd服务器配置与使用| 来源: 网络整理| 查看: 265

1、ftp简介

网络文件的共享主流的主要有三种,分别为ftp、nfs、samba

ftp用于internet上的控制文件的双向传输

上传和下载的操作

下载 上传 将主机中的内容拷贝到计算机上 将文件从计算机拷贝到主机上 2、ftp构架

FTP工作应用层,其监听端口为tcp的21,其是一种C/S架构的应用程序,其有多种客户端工具

客户端工具 服务端软件 ftp wu-ftpd Iftp,Iftpget proftpd wget.curl pureftp filezilla vsftpd gftp ServU 3、ftp数据连接模式 3.1、连接模式分类

ftp有两种数据连接模式:命令连接和数据连接

命令连接模式:是指文件管理命令,始终在线的持久性连接,直到用户退出登录为止(相当于通过命令连接ftp并且操作)

数据连接模式:是指数据传输,按需创建及其关闭

3.2、数据传输格式和传输模式

数据传输格式有一下两种:

文件传输 二进制传输

数据传输:

主动模式:由服务器端创建数据连接 被动模式:由客户端创建数据连接

说白了,就是客户端上传为被动

4、ftp的配置文件 文件位置 说明 /etc/vsftpd 配置文件目录 /etc/vsftpd 配置文件目录 /etc/vsftpd/vsftpd.conf 主配置文件

vsftp常见配置文件参数:

参数 作用 anoymous_enable=YES 启动匿名用户 anon_upload_enable=YES 允许匿名用户上传 anon_mkdir_write_enable=YES 允许用户创建目录,但是不能删除 anon_other_write_enable=YES 允许匿名用户创建和删除目录 local_enable=YES 启用本地用户登录 write_unask=022 ftp上传默认遮掩码 chroot_list_user=YES 禁锢所有本地ftp用户于其家目录中 chroot_list_enable=YES 开启禁锢文件列表,需要chroot_list_file一起使用 chroot_list_file=/etc/vsftpd/chroot_list 禁锢文件路径,在文件里面的用户将禁锢在其家目录中 allow_writeable_chroot=YES 被禁锢用户的家目录有写的权限 xferlog_enabel=YES 是否传输日志(记录ftp传输过程) xferlog_enable=/var/log/xferlog 日志储存位置 chown_uploads=YES 是否改变上传文件的属主功能 chown_username=whoever 指定上传文件属主该为那个用户 pam_server_name=vsftp 指定vsftpd使用/etc/pam.d下的那个pam配置文件进行用户认证 userlist_enable=YES 是否启用控制用户登录列表文件:默认为:/etc/vsftpd/user_list文件 userlist_deny=YES 是否拒绝userlist指定的列表文件存在的用户登录ftp max_clients=# 最大连接数 max_per_ip 同时ip请求数 anon_max_rate 匿名最大传输速录 local_max_rate 本地最大传输速率 message_file 访问目录时可以查看目录信息 data_connection_timeout=120 设置传输超时时间 idle_session_timeout=600 默认不活跃session时间 dirmessage_enable 启用某目录下的,message描述信息 5、安装vsftpd [root@localhost ~]# yum install -y vsftpd Loaded plugins: product-id, search-disabled-repos, subscription- : manager This system is not registered with an entitlement server. You can use subscription-manager to register. name | 3.6 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package vsftpd.x86_64 0:3.0.2-25.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ====================================================================== Package Arch Version Repository Size ====================================================================== Installing: vsftpd x86_64 3.0.2-25.el7 name 171 k Transaction Summary ====================================================================== Install 1 Package Total download size: 171 k Installed size: 353 k Downloading packages: vsftpd-3.0.2-25.el7.x86_64.rpm | 171 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : vsftpd-3.0.2-25.el7.x86_64 1/1 Verifying : vsftpd-3.0.2-25.el7.x86_64 1/1 Installed: vsftpd.x86_64 0:3.0.2-25.el7 Complete! #启动ftpd [root@localhost ~]# systemctl status vsftpd ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2020-04-01 03:41:21 EDT; 27s ago Process: 1383 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID: 1384 (vsftpd) CGroup: /system.slice/vsftpd.service └─1384 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf Apr 01 03:41:21 localhost.localdomain systemd[1]: Starting Vsftpd f... Apr 01 03:41:21 localhost.localdomain systemd[1]: Started Vsftpd ft... Hint: Some lines were ellipsized, use -l to show in full. [root@localhost ~]# #查看端口 [root@localhost ~]# ss -antl | grep 21 LISTEN 0 32 :::21 :::* [root@localhost ~]# vsftp虚拟用户设置 #配置网络仓库和下载依赖 [root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo --2020-04-01 03:57:17-- http://mirrors.163.com/.help/CentOS7-Base-163.repo Resolving mirrors.163.com (mirrors.163.com)... 59.111.0.251 Connecting to mirrors.163.com (mirrors.163.com)|59.111.0.251|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1572 (1.5K) [application/octet-stream] Saving to: ‘CentOS7-Base-163.repo’ 100%[=======================================================================>] 1,572 --.-K/s in 0s 2020-04-01 03:57:19 (95.2 MB/s) - ‘CentOS7-Base-163.repo’ saved [1572/1572] [root@localhost yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo [root@localhost yum.repos.d]# set 's/^enabled=.*/enabled=1/g' CentOS7-Base-163.repo [root@localhost yum.repos.d]# yum repolist Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to ......... [root@localhost yum.repos.d]# yum -y install epel-release [root@localhost yum.repos.d]# yum -y install vsftpd #创建用户列表,奇数行为用户,偶数行为密码 [root@localhost yum.repos.d]# printf "lzj\n123\n" >> /etc/vsftpd/vu.list [root@localhost yum.repos.d]# printf "lal\n345\n" >> /etc/vsftpd/vu.list [root@localhost yum.repos.d]# cat /etc/vsftpd/vu.list lzj 123 lal 345 [root@localhost yum.repos.d]# #下载db4工具 [root@localhost yum.repos.d]# yum install -y db4* #将刚创的密码表转换成数据库 [root@localhost yum.repos.d]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db #提高虚拟账户的安全性,设置文件权限为600 [root@localhost yum.repos.d]# chmod 600 /etc/vsftpd/vu* [root@localhost yum.repos.d]# ll /etc/vsftpd/vu* -rw-------. 1 root root 12288 Apr 1 04:26 /etc/vsftpd/vu.db -rw-------. 1 root root 16 Apr 1 04:14 /etc/vsftpd/vu.list [root@localhost ~]# vim /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vu account required pam_userdb.so db=/etc/vsftpd/vu [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #修改vsftpd配置文件,添虚拟用户支持 guest_enable=YES guest_username=vftp #为不同的虚拟用户建立不同的配置文件 user_config_dir=/etc/vsftpd/vuser_dir allow_writeable_chroot=YES #创建主用户 [root@localhost ~]# useradd -d /var/ftproot/ -s /sbin/nologin vftp #让lzj用户可读可写可上传 [root@localhost ~]# printf "anon_upload_enable=YES" >> /etc/vsftpd/vuser_dir/lzj #允许上传 [root@localhost ~]# printf "anon_mkdir_write_enable=YES" >> /etc/vsftpd/vuser_dir/lzj #允许写但不允许删 #建立其他用户配置文件 [root@localhost ~]# touch /etc/vsftpd/vuser_dir/lal #查看端口 [root@localhost ~]# ss -antl | grep 21 LISTEN 0 32 :::21 :::* [root@localhost ~]# cd /var [root@localhost var]# touch ftproot/{1,2,3} #客户端 [root@localhost ~]# lftp -u lzj,123 192.168.135.145 lftp [email protected]:~> ls#刚开始别以为报错,只是加载慢过一会就好了 Interrupt lftp [email protected]:~> lftp [email protected]:~> ls -rw-r--r-- 1 0 0 0 Apr 04 06:25 1 -rw-r--r-- 1 0 0 0 Apr 04 06:25 2 -rw-r--r-- 1 0 0 0 Apr 04 06:25 3 lftp [email protected]:/> mkdir 123 mkdir ok, `123' created lftp [email protected]:/> ls -rw-r--r-- 1 0 0 0 Apr 04 06:25 1 drwx------ 2 1000 1000 6 Apr 04 06:29 123 -rw-r--r-- 1 0 0 0 Apr 04 06:25 2 -rw-r--r-- 1 0 0 0 Apr 04 06:25 3 lftp [email protected]:/> put 123 put: /root/123: No such file or directory lftp [email protected]:/> put geshi.sh 35 bytes transferred lftp [email protected]:/> ls -rw-r--r-- 1 0 0 0 Apr 04 06:25 1 drwx------ 2 1000 1000 6 Apr 04 06:29 123 -rw-r--r-- 1 0 0 0 Apr 04 06:25 2 -rw-r--r-- 1 0 0 0 Apr 04 06:25 3 -rw------- 1 1000 1000 35 Apr 04 06:32 geshi.s 配置匿名用户 #下载ftp服务 [root@localhost ~]# yum install -y vsftpd #修改主配置文件,在最后一行添加 [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf anon_upload_enable=YES #允许匿名用户上传 anon_mkdir_write_enable=YES #允许匿名用户写和创建文件夹 #重启服务 [root@localhost ~]# systemctl restart vsftpd #停止防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 #查看共享目录 [root@localhost ~]# ls /var/ftp/ 01.sh 1 1234 2 3 4 pub 新建文本文档.txt 新文件夹 新文件夹 (2) [root@localhost ~]# #客户端 [root@localhost ~]# lftp -u ftp 192.168.135.145 Password: lftp [email protected]:~> ls -rw------- 1 14 50 78 Apr 03 06:22 01.sh -rw-r--r-- 1 0 0 0 Apr 03 06:15 1 drwx------ 2 14 50 6 Apr 03 06:22 1234 -rw-r--r-- 1 0 0 0 Apr 03 06:15 2 -rw-r--r-- 1 0 0 0 Apr 03 06:15 3 -rw-r--r-- 1 0 0 0 Apr 03 06:15 4 drwxr-xr-x 2 0 0 6 Oct 30 2018 pub -rw------- 1 14 50 55 Apr 03 05:51 新建文本文档.txt drwx------ 2 14 50 6 Apr 03 05:51 新文件夹 drwx------ 2 14 50 6 Apr 03 05:51 新文件夹 (2) lftp [email protected]:~> exit [root@localhost ~]# ls anaconda-ks.cfg geshi.sh httpd-2.4.38 httpd-2.4.38.tar.bz2 mysql-community-release-el7-5.noarch.rpm [root@localhost ~]# lftp -u ftp 192.168.135.145 Password: lftp [email protected]:~> get 1 #下载 lftp [email protected]:/> mkdir 12309 #报错原因没有将服务端的共享目录设置为777 mkdir: Access failed: 550 Create directory operation failed. (12309) lftp [email protected]:/> lftp [email protected]:/> mkdir 12309 mkdir ok, `12309' created lftp [email protected]:/> ls -rw------- 1 14 50 78 Apr 03 06:22 01.sh -rw-r--r-- 1 0 0 0 Apr 03 06:15 1 drwx------ 2 14 50 6 Apr 03 07:35 12309 drwx------ 2 14 50 6 Apr 03 06:22 1234 -rw-r--r-- 1 0 0 0 Apr 03 06:15 2 -rw-r--r-- 1 0 0 0 Apr 03 06:15 3 -rw-r--r-- 1 0 0 0 Apr 03 06:15 4 drwxr-xr-x 2 0 0 6 Oct 30 2018 pub -rw------- 1 14 50 55 Apr 03 05:51 新建文本文档.txt drwx------ 2 14 50 6 Apr 03 05:51 新文件夹 drwx------ 2 14 50 6 Apr 03 05:51 新文件夹 (2) lftp [email protected]:/> 配置系统用户 #下载ftp服务 [root@localhost ~]# yum install -y vsftpd #修改主配置文件,在最后一行添加 [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf chroot_local_user=YES #禁锢用户 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #禁锢用户列表 #创建系统用户和/etc/vsftpd/chroot_list [root@localhost data]# useradd chroot1 -d /data [root@localhost data]# echo "123" | passwd --stdin chroot1 [root@localhost data]# echo "chroot1" > /etc/vsftpd/chroot_list #重启并且关闭防火墙和selinux [root@localhost data]# systemctl restart vsftpd [root@localhost data]# systemctl stop firewalld [root@localhost data]# setenforce 0 [root@localhost data]# touch 1 2 3 4 #客户端 [root@localhost ~]# lftp -u chroot1,123 192.168.135.145 lftp [email protected]:~> ls lftp [email protected]:~> ls -rw-r--r-- 1 0 0 0 Apr 03 07:59 1 -rw-r--r-- 1 0 0 0 Apr 03 07:59 2 -rw-r--r-- 1 0 0 0 Apr 03 07:59 3 -rw-r--r-- 1 0 0 0 Apr 03 07:59 4 lftp [email protected]:~>


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有