ftp文件传输协议的部署

ftp服务

一、ftp

      FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

二、ftp实验

1、准备工作

首先需要配置好ip和yum源

ip的配置

yum源


在服务端首先vim  /etc/sysconfig/selinux
更改SELINUX=disabled
reboot (更改完成后一定要reboot)

getenforce   (出现Disabled即为成功)

2、开始实验

yum install vsftpd   -y           安装vsftp(ftp服务)软件

systemctl start vsftpd           开启ftp服务

systemctl   enable   vsftpd      开机自动开启ftp服务
firewall-cmd  --list-all              防火墙信息查看
firewall-cmd  --permanent  --add-service=ftp      添加火墙允许ftp服务通过
firewall-cmd  --reload       火墙重新加载
firewall-cmd   --list-all
客户端测试服务端是否已成功开启ftp服务(服务端ip172.25.254.213)

报错: 530是登录失败,能列出东西才可以登陆(密码错了,设置错了)
550是程序不允许
553是服务器文件系统不允许你写(权限过小)
500是权限过大

lftp  172.25.254.200
ls  (默认直接进入的为/var/ftp)
mkdir  /ftpdir/westosdir   -p(建立目录)
vim /etc/vsftpd/vsftpd.conf
匿名用户家目录修改
anon_root=/direcotry   (添加anon_root=/ftpdir)

此时匿名用户lftp默认进入目录更改为/ftpdir

匿名用户登陆限制

anonymous_enable=YES|NO        ##匿名用户登陆限制
useradd  westos            添加westos用户
passwd    westos           给westos用户设置密码

本地用户登陆设定

local_enable=YES|NO        ##本地用户登陆限制


write_enable=YES|NO        ##本地用户写权限限制



客户端实验  lftp  172.25.254.***   -u  student  (student用户使用lftp访问)

匿名用户上传
vim /etc/vsftpd/vsftpd.conf                编辑主配置文件
write_enable=YES                          允许本地用户上传写
anon_upload_enable=YES              允许你名用户上传       (这两个必须都满足逆名用户才可以上传)
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

匿名用户下载
添加anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载文件

匿名用户删除
添加anon_other_write_enable=YES|NO    ##yes表示匿名用户可以删除文件

匿名用户建立目录
anon_mkdir_write_enable=YES|NO       ##yes表示可以删除

匿名用户上传文件默认权限修改

添加anon_umask=xxx   (777-022=755,内核预留权限111,所以此时文件权限为644) 


最大上传速率

anon_max_rate=102400
本地用户家目录修改
local_root=/directory

本地用户上传文件权限

local_umask=xxx  (777-077=700,内核预留权限1,此时文件权限600)



限制本地用户浏览/目录
所有用户被锁定到自己的家目录中
chroot_local_user=YES        本地用户开启将锁定在自己家目录中

chmod u-w /home/*



用户黑名单建立(此黑名单建立表明再次很名单里的本地用户将只能被锁定在自己家目录中)
chroot_local_user=NO
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list


vim    /etc/vsftpd/chroot_list

student

表示student用户被锁定在自己家目录


用户白名单建立(此名单表明,只有在此名单中的用户才可以浏览其他地方,而其他用户只能被锁定在自己家目录中)

chroot_local_user=YES
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list


vim    /etc/vsftpd/chroot_list

student

表示只有student用户不被锁定在自己家目录




限制本地用户登陆

vim /etc/vsftpd/ftpusers        ##用户黑名单(再此名单中的本地用户将不能使用ftp服务登陆)



vim /etc/vsftpd/user_list        ##用户临时黑名单




用户白名单设定

vim  /etc/vsftpd/vsftpd.conf


添加userlist_deny=NO

/etc/vsftpd/user_list            ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

westos


ftp虚拟用户的设定
(创建虚拟帐号身份)
vim /etc/vsftpd/userdb  ##文件名称任意   创建虚拟用户并并编写其密码)
user1
123
user2
123
user3
123

db_load -T -t hash -f /etc/vsftpd/userdb      /etc/vsftpd/ userdb.db     将编写的/etc/vsftpd/userdb文件进行加密

vim /etc/pam.d/ftpuser        ##文件名称任意   
account        required    pam_userdb.so    db=/etc/vsftpd/userdb
auth        required    pam_userdb.so    db=/etc/vsftpd/userdb

vim /etc/vsftpd/vsftpd.conf
添加pam_service_name=ftpuser(此时当有用户使用ftp服务时会访问ftpuser这个文件里面的内容)

guest_enable=YES

guest_username=ftp      (虚拟用户使用ftp用户进行登陆访问)

chmod u-w /home/*


虚拟帐号家目录独立设定
mkdir /vftpdir

mkdir  /vftpdir/user{1..3}

touch /vftpdir/user1/user1file

touch /vftpdir/user2/user2file

touch /vftpdir/user3/user3file

vim /etc/vsftpd/vsftpd.conf

pam_service_name=ftpuser(此时当有用户使用ftp服务时会访问ftpuser这个文件里面的内容)

guest_enable=YES

guest_username=ftp      (虚拟用户使用westos用户方式进行登陆访问)

local_root=/vftpdir/$USER      (设置用户家目录)

user_sub_token=$USER          (设置上面所写的$USER为shell中的意思)


虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

mkdir   user{1..3}/pub

chgrp  westos   user{1..3}/pub

chmod  775  user{1..3}



当我们想让虚拟用户中部分用户拥有某些功能时

首先关掉主配置文件中的功能此时对所有虚拟用户都没有此功能

vim /etc/vsftpd/vsftpd.conf

添加  user_config_dir=/etc/vsftpd/conf_dir

mkdir   /etc/vsftpd/conf_dir   -p

此时需要给那个用户开放某种功能只需编写某个虚拟用户的文件写入开启功能即可

vim /etc/vsftpd/conf_dir/user2

anon_upload-enable=YES      ####上传文件


猜你喜欢

转载自blog.csdn.net/xdmaidou/article/details/80259492