vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特色。vsftpd 是一个 UNIX 类操做系统上运行的服务器的名字,它能够运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个彻底免费的、开放源代码的ftp服务器软件,支持不少其余的 FTP 服务器所不支持的特征。数据库
很是高的安全性需求、带宽限制、良好的可伸缩性、可建立虚拟用户、支持IPv六、速率高 小巧轻快,安全易用。
[root@localhost ~]# yum install vsftpd -y ##安装服务 [root@localhost ~]# cd /etc/vsftpd/ ##此目录是配置文件目录 [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# systemctl start vsftpd ##开启vsftpd服务 [root@localhost vsftpd]# systemctl stop firewalld.service ##关闭防火墙 [root@localhost vsftpd]# setenforce 0 ##关闭加强功能 [root@localhost vsftpd]# ls /var/ftp/ ##切换到ftp目录下 pub [root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt ##添加一个文本文件
C:\Users\xy007>ftp 192.168.13.140 ##访问ftp服务 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): ftp ##匿名访问 331 Please specify the password. 密码: ##密码无 回车 230 Login successful. ftp> pwd ##查看当前路径 257 "/" ##ftp服务的根目录 ftp> ls -a ##查看目录中的内容 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. . .. pub test.txt ##服务器中的文件 226 Directory send OK. ftp: 收到 25 字节,用时 0.00秒 25000.00千字节/秒。 ftp> get test.txt ##下载文件到本地(在哪一个磁盘的访问就下载到哪里,能够切换磁盘来下载e:) 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for test.txt (13 bytes). 226 Transfer complete. ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。 ftp> put test1.txt ##在c盘中建立一个test1.txt而后上传到Linux中 200 PORT command successful. Consider using PASV. 550 Permission denied. ##此时是权限受限的
[root@localhost ftp]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim vsftpd.conf ##在配置文件中查找开启下列选项 anonymous_enable=YES ##开启匿名用户 local_enable=YES ##本地用户 write_enable=YES ##写入权限 local_umask=022 ##本地用户反掩码 anon_upload_enable=YES ##上传权限开启 anon_mkdir_write_enable=YES ##开启建立目录而且可以写入 anon_other_write_enable=YES ##添加一个other的重命名和删除的权限 [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务 [root@localhost vsftpd]# cd /var/ftp/ ##切换到ftp目录下 [root@localhost ftp]# ls pub test.txt [root@localhost ftp]# ls -l 总用量 4 drwxr-xr-x. 2 root root 6 10月 31 2018 pub -rw-r--r--. 1 root root 13 11月 5 19:14 test.txt [root@localhost ftp]# chmod 777 pub ##将pub目录权限给最大,注意不能直接给ftp权限最大
C:\Users\xy007>ftp 192.168.13.140 ##访问ftp服务 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): ftp 331 Please specify the password. 密码: 230 Login successful. ftp> cd pub/ ##切换到pub目录下 250 Directory successfully changed. ftp> put test1.txt ##上传文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 发送 13 字节,用时 0.03秒 0.41千字节/秒。 ftp> by ##退出 221 Goodbye. ##你也可使用delete删除文件
[root@localhost ftp]# cd /var/ftp/pub ##切换到pub目录下 [root@localhost pub]# ls ##查看上传的文件 test1.txt
[root@localhost pub]# useradd zhangsan ##建立用户并设置用户密码 [root@localhost pub]# passwd zhangsan [root@localhost pub]# useradd lisi ##建立用户并设置用户密码 [root@localhost pub]# passwd lisi
C:\Users\xy007>ftp 192.168.13.140 ##登陆ftp服务 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): zhangsan ##使用本地用户 331 Please specify the password. 密码: 230 Login successful. ftp> ls / ##查看用户/下的目录文件,直接到系统根目录下 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. /bin /boot /dev /etc /home /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var 226 Directory send OK. ftp: 收到 126 字节,用时 0.02秒 7.88千字节/秒。
[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf ##修改配置文件 chroot_local_user=YES ##开启限制本地访问系统目录模块 allow_writeable_chroot=YES ##添加写的权限 [root@localhost pub]# systemctl restart vsftpd ##重启服务
C:\Users\xy007>ftp 192.168.13.140 ##访问ftp 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): zhangsan ##用户zhangsan 331 Please specify the password. 密码: 230 Login successful. ftp> cd / ##切换到系统根目录 250 Directory successfully changed. ftp> ls ##查看发现仍是在用户的家目录中,访问不到系统的其余目录了,加强了安全性 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK.
[root@localhost pub]# cd /etc/vsftpd/ ##切换到vsftpd配置文件目录 [root@localhost vsftpd]# vim vsftpd.conf userlist_enable=YES ##确认user-list开启 [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# echo "zhangsan" >> user-list ##将zhangsan用户添加到列表中 [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
C:\Users\xy007>ftp 192.168.13.140 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): zhangsan ##使用zhangsan登陆 530 Permission denied. 登陆失败。 ##直接拒绝登陆 ftp>
[root@localhost ftp]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim vsftpd.conf ##配置vsftpd配置文件 userlist_enable=YES userlist_deny=NO ##添加列表容许 [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
C:\Users\xy007>ftp 192.168.13.140 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): zhangsan ##用zhangsan去登陆 331 Please specify the password. 密码: 230 Login successful. ##登陆成功 ftp> by 221 Goodbye. C:\Users\xy007>ftp 192.168.13.140 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): lisi ##用lisi去登陆 530 Permission denied. 登陆失败。 ##登陆失败
[root@localhost vsftpd]# cd /etc/vsftpd/ ##切换到配置文件目录下 [root@localhost vsftpd]# vim vuser ##建立虚拟用户文件 lisa ##奇数行为用户名 123123 ##偶数行为密码 tom 123123
[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db ##将vuser转换成数据库文件 ##T转换,t类型,f指定文件 [root@localhost vsftpd]# chmod 600 vuser ##安全起见,不让别人看到,设置权限 [root@localhost vsftpd]# chmod 600 vuser.db
[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser ##建立系统用户,指定家目录,不能登陆 [root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu ##编译pam认证模块 auth required pam_userdb.so db=/etc/vsftpd/vuser ##识别转换过的数据库文件 account required pam_userdb.so db=/etc/vsftpd/vuser ##链接的密码服务
[root@localhost vsftpd]# vim vsftpd.conf ##修改配置文件 ##大G到末行 #pam_service_name=vsftpd ##注释 ##添加下面三行内容 guest_enable=YES ##开启来宾用户访问 guest_username=vuser ##使用vuser用户名 pam_service_name=vsftpd.vu ##pam模块 [root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
C:\Users\xy007>ftp 192.168.13.140 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): tom ##使用虚拟用户tom登陆 331 Please specify the password. 密码: 230 Login successful. ftp> put test1.txt ##上传一个文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。 ##查看文件的权限为600 [root@localhost vsftpd]# ls -l /opt/vuser/ 总用量 4 -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt
[root@localhost vsftpd]# vim vsftpd.conf ##大G末行添加 user_config_dir=/etc/vsftpd/vu_dir ##单独用户配置文件夹 [root@localhost vsftpd]# mkdir vu_dir ##建立文件夹 [root@localhost vsftpd]# cd vu_dir/ [root@localhost vu_dir]# vim lisa ##在配置文件夹里建立用户配置文件 anon_umask=022 ##指定上传文件的权限 [root@localhost vu_dir]# systemctl restart vsftpd ##重启服务
C:\Users\xy007>ftp 192.168.13.140 链接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用户(192.168.13.140:(none)): lisa ##使用lisa登陆 331 Please specify the password. 密码: 230 Login successful. ftp> put 111.txt ##上传文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。 [root@localhost vu_dir]# ls -l /opt/vuser/ ##查看上传文件的权限 总用量 8 -rw-r--r--. 1 vuser vuser 13 11月 5 22:58 111.txt ##lisa上传文件权限644 -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt ##tom上传文件权限600