FTP(文件传输协议)是应用非常广泛的服务,配置简单,功能强大。在开始拓展知识的介绍之前先来简单的了解一下FTP的工作模式。
-
FTP拥有两种连接方式
-
管理接连模式:控制ftp服务(客户端使用随机高位端口,服务端使用21端口)
-
数据连接模式:由客户端决定pas(关闭被动模式)在输入就启用——passive
-
主动模式:服务端主动连接客户端(20端口) 客户端防火墙会阻碍服务的连接(随机端口)
-
被动模式:服务端等待客户端连接(随机端口) 服务端的防火墙会阻碍连接(随机端口)
-
最大支持1w5k的并发连接数
-
FTP针对的连接对象大体可分为三种:
匿名用户:登录无需密码,默认权限只能下载
授权用户:登录需要账号密码,权限稍高。
虚拟用户:为了解决授权用户造成的创建实际账号过多的问题。
接下来就根据这三种用户分别对其进行相关管理设置。
在进行设置之前需要了解,作为服务端的FTP服务,其软件包名为vsftpd
-
该服务的有关文件
-
配置文件
-
主配置文件
-
/etc/vsftpd/vsftpd.conf
-
如果打开会看见非常多的注释,如果可以看懂,那最好如果看不懂可进行如下操作:
-
sed -i '/^#/d' /etc/vsftpd/vsftpd.conf
-
文本编辑器:-i将修改写入文件,开头为#号 针对文件路径
-
以上命令可以去掉开头为#号的注释,方便查看
-
-
-
-
/etc/vsftpd/ftpusers
-
该文件下的用户不允许使用ftp登录
-
-
/etc/vsftpd/user_list 与ftpusers共同管理。就好比passwd与shadow一样
-
用户列表——该文件的这两行注释清晰的说明了其作用
-
If userlist_deny=NO, only allow users in this file 设置为no,只允许文件内的用户登录
-
# If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. 设置为yes,该文件内的用户不能登录使用ftp服务
-
该文件生效需要在主配置文件中添加if后的语句
-
yes表示该列表的用户不允许登录
-
no表示只允许该列表的用户登录
-
-
-
-
匿名用户——可在主配置文件中添加如下语句
-
匿名用户
-
该用户不许要密码使用ftp用户登录
-
-
标识1:匿名用户是否启用 -
标识2:匿名用户权限掩码
-
标识3:匿名用户是否能上传数据
-
标识4:匿名用户是否能创建目录
-
标识5:匿名用户是否有其他写入权(删除,修改)
-
标识6:指定匿名用户根目录(默认/var/ftp)
-
匿名用户登录ftp默认在指定的根目录下,匿名用户没有到其他目录的权限。
-
-
完成后重启服务,在客户端安装ftp软件包,直接用ftp加IP地址进行访问,进行相关操作。
授权用户
-
授权用户
-
该用户需要服务器有对应的用户才能使用账号密码登录
-
-
标识1:启用本地授权用户 -
标识2:写入权是否启用
-
标识3:授权用户权限掩码
-
标识4:将本地授权用户访问限制在根目录
-
标识5:启用本地授权用户在其根目录的写入权
-
标识6:指定本地授权用户的根目录
-
-
如果不加标识4,5.那么你的目录结构,数据将会被随意查看,这是极其危险的!!!
虚拟用户——该配置较为复杂
虚拟用户的存在是为了避免创建多个账号造成较大的安全隐患。
创建过程稍难,列出步骤仅供参考:
-
虚拟用户
-
第一步:创建文本格式的用户名和密码 奇数行为用户名,偶数行为密码
-
第二步:建立虚拟FTP用户的数据库文件
-
第三步:添加虚拟用户的映射账号
-
第三步:为虚拟用户建立PAM认证文件
-
第四步:修改配置文件添加虚拟用户的支持
-
Local_enable=YES #需要映射本地用户所以启用
-
Write_enable=YES ##启用上传写入权限
-
Guest_enable=YES ##开启虚拟用户
-
Anon_umask=022 ### 指定上次权限掩码
-
Guest_username=* ###指定映射的本地系统用户
-
Pam_serrivce_name=vsftpd.vu ##指定新的pam认证文件
-
User_config_dir=/*/*/*/ ###为不同的虚拟用户设置不同的权限
-
除了针对用户类别做修改外,还可以对监听做出修改,这样做的目的是FTP服务默认被防火墙拦截,如果开放服务,但仍然使用默认端口,则有一定的入侵风险,如果使用高位端口,则是随机的,防火墙策略不好添加,因此在此处进行限定。
依然是在主配置文件中添加语句:
-
在此例中,我将FTP服务的主动端口设置为2121,限制了被动开放的端口在20000到20010之间,这样防火墙的策略也就好添加了
-
开启端口监听功能
-
设置主动连接的监听端口
-
被动模式启用
-
被动模式最小的端口
-
被动模式最大的端口
-
被动端口用完即释放
-
一定要关闭ipv6的监听,否则服务无法正确启用。!!!
-
-
如果出现上传下载失败,可能是因为没有该文件,或者该目录下没有该文件,使用ftp时默认的下载上传位置,是登录前的工作目录,可使用lcd切换本地的工作目录,无需退出重进。
如果有任何疑问,欢迎留言,看见会详细解答,本文仅作参考使用。