Linux之vsftpd服务总结
FTP即文件传输协议,是一种在互联网中进行文件传输的协议,
基于C/S模式,默认使用20、21端口,20是数据端口,21是命令端口,
FTP协议有两种工作模式,即主动模式和被动模式,默认为被动模式;
vsftpd是一款运行在Linux系统中的FTP服务程序,
主配置文件是/etc/vsftpd/vsftpd.conf,
允许用户以三种认证模式登陆到FTP服务器;
ftp是Linux系统中以命令行方式来管理FTP传输服务的客户端工具;
1.匿名开发模式
任何人都可以无需密码验证而直接登录到FTP服务器,默认开启,最不安全,
账号统一为anonymous,密码为空,
默认访问目录是/var/ftp;
注意防火墙策略,目录权限,SELinux限制等;
2.本地用户模式
通过Linux系统本地账号密码进行认证,若被破解则可以控制整台服务器,
注意用户名单ftpusers和user_list的限制;
3.虚拟用户模式
为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,
这些账户在服务器系统实际是不存在的,仅供FTP服务程序认证使用,最安全的模式;
1)创建用于FTP认证的用户文件,奇数行为账户名,偶数行为密码,
用db_load命令用hash算法将原始明文文件转换成数据库文件vuser.db,并降低文件权限600;
2)创建vsftpd服务用于存储文件的根目录/var/ftproot以及虚拟用户映射的系统本地用户ftproot,
这个本地用户用于新建文件等,最好设置为nologin,修改根目录权限755;
3)创建用于支持虚拟用户的PAM文件
PAM是一种安全认证机制,系统管理员可以轻易调整服务程序的认证方式,
新建文件为vsftpd.vu,db参数为虚拟账户数据库文件vuser.db的路径;
4)修改vsftpd主配置文件
开启虚拟用户模式并指定虚拟用户名
通过pam_service_name参数将PAM认证文件的名称改为vsftpd.vu;
5)为虚拟用户设置不同的权限
创建一个目录,分别以登录账户为文件名创建文件,并写入相关权限,
在主配置文件中通过参数user_config_dir参数指定该目录路径;
6)可在客户端用不同虚拟账号登录并验证权限;
TFTP是简单文件传输协议
是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议,
使用端口号为69,无需认证,不可靠,注意防火墙限制,
可传输琐碎小文件,根目录为/var/lib/tftpboot,
使用xinetd服务程序来管理,客户端用tftp;