前言、本章学习目标
- 了解vsftp服务用途
- 掌握配置vsftp服务器
- 掌握vsftp日常使用
一、什么是文件传输协议(VSFTP)
vsftpd一红帽企业版linux的默认ftp服务器
·不再由xinetd管理
·xinetd是一个非独立服务·有很多服务要依靠它实现”
·xinetd是一个daemon程序,所有结尾带d的程序都是daemon程序,也就是守护程序
守护程序分为2种处理模式:
第一个是stand alone状态的,表示该程序始终监听,一直处于运行状态,例如httpd
第二个是super daemon,它始终处于sleep状态,直到有人唤醒它,xinetd就是个superdaemon,但它的使命是将一个请求转给其他服务,也就是服务的管理者
·允许系统、匿名或虚拟(仅用于FTP服务)用户的访问
·匿名目录层次结构由vsftpd RPM提供
·/etc/vsftpd/vsftpd.conf是主配置文件
二、服务侧写
类型:系统V(SystemV)管理的服务
软件包:vsftpd
守护进程:/usr/sbin/vsftpd
脚本: /etc/init.d/vsftpd
端口: 21(ftp),20 (ftp-data)
配置文件: /etc/vsftpd/vsftpd.conf /etc/vsftpd/ftpusers/etc/pam.d/vsftpd
日志:/var/log/xferlog
相关软件包:tcp_wrappers,ip_conntrack_ftp,ip_nat_ftp
三、与ftp有关的配置文件
/etc/vsftpd/vsftpd.conf :vsftp主配置文件
/etc/pam.d/vsftpd:
这个是vsftpd使用PAM模块时的相关配置文件。主要用来作为身份认证之用,还有一些用户身份的抵挡功能,也是透过这个档案来达成的
/etc/vsftpd/ftpusers:
与上一个档案有关系,也就是PAM 模块(etc/pam.d/vsftpd)所指定的那个无法登入的用户配置文件
/etc/vsftpd/user_list:
这个档案是userli是否能够生效与vsftpd.conf内的两个参数有关,分别st_enable,userlist_deny,是vsftpd自定义的阻挡项目,在预设的情况下,你可以将不希望可登入vsftpd 的账号写入这里,不过这个档案的功能会依据vsftpd.conf配置文件内的user list_deny={YES}而不同
/etc/vsftpd/chroot_list:
这个档案预设是不存在的,所以你必须要手动自行建立。这个档案的主要功能是可以将某些账号的使用者chroot在他们的家目录下,但这个档案要生效与vsftpd.conf 内的[chroot _list enable,chroot_list_file] 两个参数有关。如果你想要将某些实体用户限制在他们的家目录下而不许到其他目录去,可以启动这个设定项目.
/usr/sbin/vsftpd 这就是vsftpd的主要执行档
/var/ftp/ 这个是vsftpd的预设匿名者登入的根目录
四、vsftpd.conf的主配置文件介绍
1.与匿名者有关的信息:
anonymous_enable=YES //允许匿名用户登录使用ftp
2.与实体用户有关的设定
local_enable=YES//允许本地用户登录
write_enable=YES //允许用户上传数据(包括档案与目录)
local_umask=022//建立新目录(755)与档案(644)的权限
3.与服务器环境有关的设定
dirmessage_enable=YES //若目录下有message 则会显示该档案的内容
xferlog_enable=YES //启动登录文件记录,记录于/var/log/xferlog
connect_from_port_20=YES //支持主动式联机功能
xferlog_std_format=YES //支持WuFTP的登录档格式
listen=YES //使用stand alone方式启动 vsftpd
pam_service_name=vsftpd //支持PAM模块的管理
userlist_enable=YES //支持/etc/vsftpd/user_list档案内的账号登入管控!
tcp_wrappers=YES //支持TCPWrappers的防火墙机制
五、ftp协议传输原理
使用端口
command port 21
data port 20
传输模式
主动模式(ACTIVE):服务端从20端口主动向客户端发起连接。
被动模式(PASSIVE):服务端在指定范围内的某个端口被动等待客户端发起连接。
一般都采用被动模式。主动模式存在安全隐患,客户机很容易发起DdoS攻击。
主动FTP:
命令连接:客户端>1023端口->服务器21端口
数据连接:客户端>1023端口<服务器20端口
被动FTP:
命令连接:客户端>1023端口->服务器21端口
数据连接:客户端>1023端口->服务器>1023端口
六、vsftpd服务器搭建实践
1、安装vsftp
yum install -y vsftpd
chkconfig vsftpd on
2、修改配置文件
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user =YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
local_umask=022
userlist_enable=YES
userlist_deny=NO
3、创建用户
useradd ftpuser -s /sbin/nologin -d /ftpdata/ftpuser
七、ftp相关典型问题
·问题描述
我们发现ftp用户的家目录在/var/ftp,就是这个/var/ftp的权限不对所致这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /var/ftp所致;
500 0OPS: vsftpd: refusing to run with writable anonymous root。
·问题分析:如设置/var/ftp权限为777 则所有人都有读写执行权限,任何人都可以删除其中的文件,假如有人上传病毒怎么办,这样安全隐患很大,所以一定不要把/var/ftp目录权限改成777。
八、本章实验
1、搭建一个vsftpd服务,并使用客户端登录上传下载测试。