基于匿名用户的ftp登录
在这里我就不对FTP的基本理论知识进行阐述,需要的可以在百度中查看。
首先明确搭建环境:
vmware workstation 10
rhel6.3
直接桥接 dhcp获取的IP
下来开始
Linux是vsftp包来建立他的FTP服务的所以首先来安装vsftp包我是通过yum来进行安装的
后台进程:vsftpd
类型:System V 服务
使用端口:20(ftp-data),21(ftp)
所需RPM包:vsftpd
配置文件:/etc/vsftpd/vsftpd.conf
vsftpd安装完成
进入配置文件目录
[root@wang ~]# cd /etc/vsftpd/
[root@wang vsftpd]# ll
total 20
-rw-------. 1 root root 125 Mar 2 2012 ftpusers
-rw-------. 1 root root 361 Mar 2 2012 user_list
-rw-------. 1 root root 4599 Mar 2 2012 vsftpd.conf
-rwxr--r--. 1 root root 338 Mar 2 2012 vsftpd_conf_migrate.sh
[root@wang vsftpd]#
接下来在下面目录中查看是否多了一个FTP用户
[root@mail vsftpd]# cat /etc/passwd |grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
/sbin/nologin 这个是虚拟用户使用的,不具有登陆系统的权限。
/var/ftp这个就是ftp用户的主目录
ftp和其他的用户有所不同他的目录不是在home下 ,匿名登录的用户就是ftp用户
查看主目录权限
[root@wang vsftpd]# ll -d /var/ftp/
drwxr-xr-x. 3 root root 4096 Dec 7 09:38 /var/ftp/
vsftp安装好后,默认就可以匿名登录,需要做的就是启动服务
[root@wang vsftpd]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[root@wang vsftpd]# chkconfig vsftpd on 并设为开机启动
在这有些需要关闭防火墙 要是不关闭的话可能无法通过本机进行访问
[root@wang vsftpd]# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[root@wang vsftpd]#
测试:
创建文件测试是否可以进行下载
下来在Linux上进行测试
安装ftp的客户端包lftp
[root@wang pub]# yum install lftp -y
cmd测试
编辑/etc/vsftpd/vsftpd.conf这个文件 我们先看看vsftpd.conf文件里面的一些解释。
这个配置文件很简单,而且每行命令上面都有注释来解释命令的用处
anonymous_enable=YES 是否允许匿名ftp(默认为YES),如否则选择NO,基于用户名与密码的访问
anon_upload_enable=YES 是否允许匿名ftp 用户上传(默认被注释即不支持)
chroot_list_enable=YES 是否将系统用户限制在自己的home目录下
chroot_list_file=/etc/vsftpd/chroot_list
如果chroot_list_enable=YES 那么在/etc/vsftpd/chroot_list 中列出的是被限制的用户的列表,这个和上面的连用。
ftpd_banner=Welcome to blah FTP service. 定制欢迎信息
local_enable=YES 是否允许本地用户登录
local_umask=022 默认的umask码
配置文件里面没有anon_umask,其实可以用这条, 权限掩码,比如umask是 022,你创建一个文件本来是666 就要 -022 = 644
其他的一些参数,大家了解下就好了
connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
chown_username=username
是否改变上传文件的属主, 如果是需要输入一个系统用户名, 你可以把上传的文件都改成root 属主
xferlog_file=/var/log/vsftpd.log ftp 传输日志的路径和名字默认是/var/log/vsftpd.log
xferlog_std_format=YES 是否使用标准的ftp xferlog 模式
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
ascii_upload_enable=YES 是否使用ascii码方式上传文件
ascii_download_enable=YES 是否使用ascii码方式下载文件
userlist_enable=YES 在/etc/vsftpd/user_list 文件中列出用户不能访问FTP 服务器
tcp_wrappers=YES 是否支持tcp_wrappers
下面我们开始配置,匿名用户上传,需要注意这几个地方
1、上传目录ftp用户必须有写入权限
2、服务器配置支持上传
3、selinux支持上传
首先修改目录权限,创建一个上传用的目录,叫upload,分配ftp用户所有,目录权限是755
[root@wang ftp]# vi /etc/vsftpd/vsftpd.conf
取消27和31行的注释,允许匿名用户上传文件 (注意:版本不一样文件的夯实会有所不同请注意!)
增加 anon_umask=022 否则匿名用户上传的文件不能下载
接下来修改SELinux
1 图形化修改
system-config-selinux
选择boolean ,点FTP ,第三条,允许匿名用户上传文件,别修改目录的上下文为他要求的。切记,选中后要等会才会出现勾,你别一直点,点一次就OK
2字符界面
首先查看SElinux中ftp的布尔值
修改布尔值 允许匿名上传文件
[root@wang ftp]# setsebool -P allow_ftpd_anon_write on
修改安全值
[root@wang ftp]# chcon -t public_content_rw_t upload/
在上传的时候还会出现权限问题者并不是文件的问题 我们可以给提高pub的权限
就可以实现上传我这里直接给的是777
[root@wang ftp]# chmod 777 pub/
至此匿名用户的ftp搭建就告一段落 接下来我会更新用户模式的ftp访问
文档中有不足和错误之处还请大家批评指正
本文档只做学习参考!请勿他用,谢谢!!!
冲哥哥作品