ftp是常用的最老的网络传输协议之一,在REDHAT ENTERPRISE Linux 7中,为系统提供了通过网络与远程服务器进行传输的简单方法。ftp服务器包的名称为VSFTPD(Very Secure File Transfer Protocol Damon)。默认/目录为/var/ftp
首先关闭内核防火墙,设置防火墙策略允许ftp服务
setenforce 0 | vim /etc/sysconfig/selinux 中设置SElinux=disable ##关闭内核防火墙 ,设置完后需要reboot firewall-config ##打开图形界面,选择permanent,ftp然后reload firewalld安装vsftpd yum install vsftpd -y systemctl start vsftpd systemctl enable vsftpd lftp ip ##能登陆并且显示,表示安装成功 匿名登陆成功!
/var/ftp ##默认发布目录 /etc/vsftpd ##配置目录 /etc/vsftpd/vsftpd.conf
1>vim /etc/vsftpd/vsftpd.conf 12 anonymous_enable=YES|NO ##匿名用户登陆限制,YES允许匿名用户登陆,NO拒绝匿名用户登录 2>systemctl restart vsftpd 匿名用户无法登陆,而本地用户是可以登陆的
vim /etc/vsftpd/vsftpd.conf 12 anonymous_enable=YES 19 write_enable=YES 29 anon_upload_enable=YES ##上传 匿名用户上传失败 查看目录权限发现,只有root用户有w的权限,为了安全,将/var/ftp/pub的组更改为ftp,然后更改目录权限,更改完之后,匿名用户就可以上传
chgrp ftp /var/ftp/pub chmod 775 /var/ftp/pub1>mkdir /westos ##创建家目录 2>cp /etc/passwd /westos 3>vim /etc/vsftpd/vsftpd.conf anon_root=/westos ##修改匿名用户家目录 4>systemctl restart vsftpd 匿名登陆进入/westos
vim /etc/vsftpd/vsftpd.conf anon_umask=xxx ##匿名用户上传文件的默认权限 设置 anon_umask=022,上传文件的权限为644
anon_mkdir_write_enable=YES|NO
添加anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载,系统默认匿名用户不能下载文件
anon_other_write_enable=YES|NO ##默认NO,不可删除,当更改为YES后,匿名用户可删除/var/ftp/pub/的文件
chown_uploads=YES chown_username=student ##改变所有人
anon_max_rate=102400 ##默认单位为字节
max_clients=2
local_enable=YES|NO ##本地用户登陆限制 write_enable=YES|NO ##本地用户写权限限制 本地用户默认是可以登陆的 设置本地用户无法登陆local_enable=NO
本地用户登陆时默认进入其家目录 local_root=/westos
local_umask=xxx 修改local_umask=002,上传/etc/group,group的权限变为664
1.所有用户被锁定到自己的家目录中 chroot_local_user=YES chmod u-w /home/student ##之前权限太大,需要缩小 默认本地用户是可以访问/的 将用户锁定在自己的家目录
2.用户黑名单(访问/)建立 chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list ##默认无此名单 在黑名单中加入student,student无法访问/ linux用户可以访问/
3.用户白名单建立 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list 将student用户加入白名单后,只有student用户可以访问/ linux用户不能访问/
vim /etc/vsftpd/ftpusers ##用户永久黑名单 vim /etc/vsftpd/user_list ##用户临时黑名单 将student用户加入永久黑名单 将student加入临时黑名单后,student无法登陆 用户白名单设定 1>vim /etc/vsftpd/vsftpd.conf userlist_deny=NO 2>vim /etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp 将student用户加入白名单,测试结果:
当同时将student加入白名单与永久黑名单后,其他用户无法登陆
1>vim /etc/vsftpd/ftpvuser ##(文件名称任意)创建虚拟用户信息文件 user1 ##用户 123 ##密码 user2 123 user3 123
2>db_load -T -t hash -f /etc/vsftpd/ftpvuser ftpvuser.db ##加密虚拟帐号文件
3>vim /etc/pam.d/ckvsftpd ##(文件名称任意)创建认证文件 account required pam_userdb.so db=/etc/vsftpd/loginusers auth required pam_userdb.so db=/etc/vsftpd/loginusers
4>vim /etc/vsftpd/vsftpd.conf ##设置配置文件 pam_service_name=ckvsftpd guest_enable=YES
vim /etc/vsftpd/vsftpd.conf guest_username=ftpuser chmod u-w /home/ftpuser ##500错误 设置 guest_username=student,tfpvuser直接登陆到student的家目录
vim /etc/vsftpd/vsftpd.conf local_root=/ftpvuserhome/ USERusersubtoken= USER
1>mkdir /ftpvuserhome 2>chmod g+s /ftpvuserhome 3>mkdir /ftpvuserhome/user{1..3} 4>touch /ftpvuserhome/user1/file{1..3}
vim /etc/vsftpd/vsftpd.conf local_root=/ftpvuserhome/ USERusersubtoken= USER lftp -u user1进入自己的家目录
1>vim /etc/vsftpd/vsftpd.conf ##设置配置文件,添加虚拟用户权限配置目录 user_config_dir=/etc/vsftpd/vuserconf 2> mkdir /etc/vsftpd/vuserconf ##创建配置目录
3>vim /etc/vsftpd/vuserconf/user1##创建指定用户配置文件,设定独立权限 在此文件中设定配置文件中的所有参数,此文件的优先级高 设置user1的有上传的独立权限,shell下执行结果