本文共 3360 字,大约阅读时间需要 11 分钟。
FTP是File Transfer Protocol (文件传输协议)的简称,用于internet上控制文件的双向传输。
FTP也是一个应用程序,基于不同操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两种概念:下载和上传FTP工作于应用层,监听tcp21号端口,是一种c/s架构的应用程序。
搭建ftp服务
1.安装wget 删掉本地源
[root@hyj ~]# yum install wget -y[root@hyj ~]# cd /etc/yum.repos.d/[root@hyj yum.repos.d]# lsCentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repoCentOS-CR.repo CentOS-Media.repoCentOS-Debuginfo.repo CentOS-Sources.repo[root@hyj yum.repos.d]# rm -rf ./*[root@hyj yum.repos.d]# ls2.从网上下载网络源
[root@hyj yum.repos.d]# wget [root@hyj ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo [root@hyj ~]# yum clean all3.下载安装扩展源[root@hyj ~]# yum install epel-release -y4下载安装vsftpd[root@hyj ~]# yum install vsftpd -yvsftpd虚拟用户配置
1.创建文本格式的用户名,密码列表,例如添加两个用户hejie,zhengran,密码分别为123,456[root@hyj ~]# echo 'hejie' >> /etc/vsftpd/vu.list[root@hyj ~]# echo '123' >> /etc/vsftpd/vu.list[root@hyj ~]# echo 'zhengran' >> /etc/vsftpd/vu.list[root@hyj ~]# echo '456' >> /etc/vsftpd/vu.list[root@hyj ~]# cat /etc/vsftpd/vu.listhejie123zhengran456//这里的用户名和密码是一一对应的,前面是账号,后面跟的是密码
//安装db4工具,将刚创建的文本格式用户名、密码文件使用db4工具装换成数据库文件//-T 表示转换,-t表示加密方式,使用hash算法加密[root@hyj ~]# yum install db4* -y[root@hyj ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db[root@hyj ~]# ls /etc/vsftpd/ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vu.db vu.list//为提高虚拟用户账号文件的安全性,应该将文件权限设置为600,避免数据外泄
[root@hyj ~]# chmod 600 /etc/vsftpd/vu.[root@hyj ~]# ll /etc/vsftpd/vu.-rw-------. 1 root root 12288 Aug 12 18:24 /etc/vsftpd/vu.db-rw-------. 1 root root 23 Aug 12 18:18 /etc/vsftpd/vu.list//添加虚拟用户账号、创建ftp根目录。例如将要使用的ftp根目录设置为/var/ftproot,映射账号的名称为vftp,可进行如下操作
[root@hyj ~]# useradd -d /var/ftproot -s /sbin/nologin vftp[root@hyj ~]# chmod 755 /var/ftproot/[root@hyj ~]# ll /var/ftproot/ -ddrwxr-xr-x. 2 vftp vftp 62 Aug 12 18:31 /var/ftproot///为虚拟用户建立PAM认证
[root@hyj ~]# vi /etc/pam.d/vsftpd#%PAM-1.0auth required pam_userdb.so db=/etc/vsftpd/vuaccount required pam_userdb.so db=/etc/vsftpd/vu//修改vsftpd配置文件
[root@hyj ~]# cat >> /etc/vsftpd/vsftpd.conf << EOFguest_enable=YES //是否开启虚拟用户
guest_username=vftp //虚拟用户是谁user_config_dir=/etc/vsftpd/vusers_dir // 授权ftp虚拟用户所在目录allow_writeable_chroot=YES //允许被禁锢的用户家目录有写权限EOF
//有了上述配置后,就可以在/etc/vsftpd/vusers_dir目录中为每个虚拟用户分别建立配置文件了
例如,若要使虚拟用户tom能够上传文件,创建目录,而jerry只有默认的下载权限[root@hyj ~]# mkdir /etc/vsftpd/vusers_dir[root@hyj ~]# ll /etc/vsftpd/total 32-rw-------. 1 root root 125 Aug 3 2017 ftpusers-rw-------. 1 root root 361 Aug 3 2017 user_list-rw-------. 1 root root 5133 Aug 12 18:49 vsftpd.conf-rwxr--r--. 1 root root 338 Aug 3 2017 vsftpd_conf_migrate.sh-rw-------. 1 root root 12288 Aug 12 18:24 vu.db-rw-------. 1 root root 23 Aug 12 18:18 vu.listdrwxr-xr-x. 2 root root 6 Aug 12 19:14 vusers_dir//设置hejie用户可上传文件,创建目录
[root@hyj ~]# echo 'anon_upload_enable=YES' >> /etc/vsftpd/vusers_dir/hejie[root@hyj ~]# echo 'anon_mkdir_enable=YES' >> /etc/vsftpd/vusers_dir/hejie//设置zhengran用户只有默认的下载权限,只需创建一个名为zhengran的空文件即可root@hyj ~]# touch /etc/vsftpd/vusers_dir/zhengran//关闭防火墙 启动服务 查看端口起来没
[root@hyj ~]# systemctl start vsftpd[root@hyj ~]# ss -antlState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :22 : LISTEN 0 100 127.0.0.1:25 : LISTEN 0 32 :::21 ::: LISTEN 0 128 :::22 ::: LISTEN 0 100 ::1:25 :::转载于:https://blog.51cto.com/13729085/2161080