匿名访问模式

2025-11-11 03:24:14

1、[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

anon_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_enable=YES

write_enable=YESlocal_umask=022 

dirmessage_enable=YES 

xferlog_enable=YES 

connect_from_port_20=YES 

xferlog_std_format=YES 

listen=NO 

listen_ipv6=YES 

pam_service_name=vsftpd 

userlist_enable=YES 

tcp_wrappers=YES

确认参数填写正确后保存并退出vsftpd服务程序的主配置文件,还需要重启vsftpd服务程序来让新的配置服务参数生效,并且在生产环境中或者红帽RHCSA、RHCE、RHCA认证考试中也记得一定要把配置过的服务程序加入到开机启动项中,以保证下次服务器重启后依然能够为用户正常提供ftp文件传输服务:

[root@linuxprobe ~]# systemctl restart vsftpd 

[root@linuxprobe ~]# systemctl enable vsftpd 

ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service

2、这样就可以在客户端上面使用ftp命令连接到远程的FTP服务器上面了,FTP服务的匿名开放模式的帐号统一为anonymous,密码为空。匿名模式登陆到FTP服务器后默认所在位置为/var/ftp目录,咱们可以切换至里面的pub目录中,然后尝试创建一个新的目录文件来检验是否已经有了写入权限:

[root@linuxprobe ~]# ftp 192.168.10.10 

Connected to 192.168.10.10 (192.168.10.10).

220 (vsFTPd 3.0.2) 

Name (192.168.10.10:root): anonymous

331 Please specify the password. 

Password:此处敲击回车即可

230 Login successful. 

Remote system type is UNIX. 

Using binary mode to transfer files. 

ftp> cd pub

250 Directory successfully changed. 

ftp> mkdir files 

550 Permission denied.

3、刚刚已经把iptables防火墙策略清空,而且也在vsftpd服务程序的主配置文件中添加了允许匿名用户创建目录和写入文件的权限,那么为什么还会被拒绝呢?建议同学们先不要往下面看,思考后用自己的方法尝试解决下这个问题,长期这样您的Linux系统排错能力就一定会练出来的。

回想起前面操作的细节,FTP服务的匿名开放模式是默认登陆到了/var/ftp目录中,查看下这个目录的权限后才发现原来只有root管理员用户才有写入权限的,怪不得会提示写入出错呢,咱们只需要把目录的所有者身份改成系统帐户ftp即可,这样就应该可以了吧~

[root@linuxprobe ~]# ls -ld /var/ftp/pub 

drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub 

[root@linuxprobe ~]# chown -Rf ftp /var/ftp/pub 

[root@linuxprobe ~]# ls -ld /var/ftp/pub 

drwxr-xr-x. 3 ftp root 16 Jul 13 14:38 /var/ftp/pub 

[root@linuxprobe ~]# ftp 192.168.10.10 

Connected to 192.168.10.10 (192.168.10.10). 

220 (vsFTPd 3.0.2) 

Name (192.168.10.10:root): anonymous

331 Please specify the password. Password:此处敲击回车即可

230 Login successful. 

Remote system type is UNIX. 

Using binary mode to transfer files. 

ftp> cd pub

250 Directory successfully changed. 

ftp> mkdir files 

550 Create directory operation failed.

4、又报错了!!此时再次使用ftp命令登入到FTP服务器主机后依然会提示写入操作失败,但细心的同学一定发现报错信息已经产生了变化,在刚刚没有写入权限的时候提示说权限拒绝(Permission denied.)所以刘遄老师说怀疑是权限的问题,但现在是提示创建目录的操作失败(Create directory operation failed.)那么同学们应该也能马上意识到是SELinux服务在限制这个操作了吧,查看下所有与ftp相关的SELinux域策略有那些吧:

[root@linuxprobe ~]# getsebool -a | grep ftp 

ftp_home_dir --> off 

ftpd_anon_write --> off 

ftpd_connect_all_unreserved --> off 

ftpd_connect_db --> off 

ftpd_full_access --> off

ftpd_use_cifs --> off 

ftpd_use_fusefs --> off 

ftpd_use_nfs --> off 

ftpd_use_passive_mode --> off 

httpd_can_connect_ftp --> off 

httpd_enable_ftp_server --> off 

sftpd_anon_write --> off 

sftpd_enable_homedirs --> off 

sftpd_full_access --> off 

sftpd_write_ssh_home --> off 

tftp_anon_write --> off 

tftp_home_dir --> off

5、根据策略的名称和经验可以猜测出是哪一条规则策略,在设置的时候请记得使用-P参数来让配置过的策略永久生效,保证在服务器重启后依然能够顺利写入文件,大家可以分别尝试下创建目录文件、对文件进行改名以及删除目录文件等等操作。最后,恭喜同学们完成了这个实验课程,刘遄老师建议您在进行一次实验课程前还原虚拟机到最初始的状态,以免多个实验配置参数之间产生冲突。

[root@linuxprobe ~]# setsebool -P ftpd_full_access=on 

[root@linuxprobe ~]# ftp 192.168.10.10 

Connected to 192.168.10.10 (192.168.10.10). 

220 (vsFTPd 3.0.2) 

Name (192.168.10.10:root): anonymous

331 Please specify the password. 

Password:此处敲击回车即可

230 Login successful. 

Remote system type is UNIX. 

Using binary mode to transfer files. 

ftp> cd pub 

250 Directory successfully changed. 

ftp> mkdir files 

257 "/pub/files" created 

ftp> rename files database 

350 Ready for RNTO. 

250 Rename successful. 

ftp> rmdir database 

250 Remove directory operation successful. 

ftp> exit221 Goodbye.

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢