Linux_29_Linux-Vsftpd
Vsftpd
FTP(File Transfer Protocol):文件传输协议
1)属于TCP/IP协议(基于C/S模式)
2)默认占用20端口(传输数据)和21端口(传输命令)
FTP工作模式分为以下两种:
1)主动模式:FTP服务器主动向客户端发起连接请求;
2)被动模式:FTP服务器等待客户端发起连接请求(默认工作模式);
vsftpd(very secure ftp daemon):非常安全的FTP守护进程
1)基于FTP协议开发,运行在Linux系统上的FTP服务程序
vsftpd三种认证模式:
1)匿名开放模式:所有人均可访问并登录FTP服务器(无需身份验证);
2)本地用户模式:基于Linux系统本地用户的认证模式;
3)虚拟用户模式:基于独立的用户数据库文件,创建虚拟用户
//虚拟用户信息在Linux系统上不存在(安全性最高)
//为管理虚拟用户对本地文档的属性权限,需创建映射虚拟用户的本地用户
配置
vsftpd安装指令:yum install -y vsftpd
如:在系统中安装vsftpd

配置防火墙指令:
1)iptables -F
2)service iptables save
//iptables中默认禁止FTP传输协议的端口号
/etc/vsftpd/vsftpd.conf:vsftpd服务的主配置的文件
1)常用的配置参数如下:
| 参数 | 说明 |
|---|---|
| 全局性参数 | |
| listen=YSE/NO | 是否以独立运行的方式监听服务 |
| listen_address=IP | 指定监听的IP地址 |
| listen_port=端口号 | 指定监听端口号 |
| download_enable=YES/NO | 是否允许下载文档 |
| userlist_enable=YES/NO userlist_deny=YES/No | 允许/拒绝/etc/vsftpd/user_list文件内的用户登录 |
| max_clients=N | 指定最大客户端连接数为N (0为无限制) |
| max_per_ip=N | 指定一个IP的最大连接数为N (0为无限制) |
| 匿名开放模式参数 | |
| anonymous_enable=YES/NO | 是否允许匿名用户登录 |
| anon_root=目录路径 | 指定匿名用户的FTP根目录 |
| anonymous_upload_enable=YES/NO | 是否允许匿名用户上传文件 |
| anon_mask=umask值 | 指定匿名用户上传文件的umask值 |
| anon_max_rate=N | 指定匿名用户的最大传输速率为N (0为无限制) |
| anon_mkdir_write_enable=YES/NO | 是否允许匿名用户创建目录 |
| anon_other_write_enable=YES/NO | 是否配置匿名用户全部权限 |
| 本地用户模式参数 | |
| local_enable=YES/NO | 是否允许本地用户登录 |
| local_root=目录路径 | 指定本地用户的FTP根目录 |
| local_mask=umask值 | 指定本地用户上传文件的umask值 |
| local_max_rate=N | 指定本地用户的最大传输速率为N (0为无限制) |
| chroot_local_user=YES/NO | 是否限制本地用户权限在FTP目录 |
| 虚拟用户模式参数 | |
| guest_enable=YES/NO | 是否允许虚拟用户登录 |
| guest_username=本地用户 | 指定映射虚拟用户的本地用户 |
| user_config_dir=目录路径 | 指定虚拟用户权限配置文件的目录 |
| pam_service_name=PAM文件路径 | 指定PAM验证文件 (默认为/etc/pam.d/vsftpd) |
//配置虚拟用户模式使用的是匿名开放模式参数
如:查看/etc/vsftpd/vsftpd.conf文件

ftp:Linux系统中以命令行界面管理FTP传输服务的客户端工具
ftp安装指令:yum install -y ftp
如:在系统中安装ftp

匿名开放模式
匿名开放模式:vsftpd服务默认模式
1)登录用户名统一为“anonymous”密码为空
2)默认登录访问的是/var/ftp目录(可通过配置匿名根目录修改)
如:配置匿名开发模式的FTP服务器
1)配置vsftpd服务的主配置文件/etc/vsftpd/vsftpd.conf;

2)配置根目录下默认目录pub的属主;

//不能更改/var/ftp目录,否则无法登录FTP服务器
3)配置SELinux策略;

4)登录192.168.121.128服务器,尝试增、删、改和查权限

ftp命令:通过身份验证登录FTP服务器
指令格式:ftp FTP服务器IP
ftp命令登录FTP服务器后,常用命令如下:
| 命令 | 说明 |
|---|---|
| 基础命令 | |
| ls | 列出当前目录下的文档 |
| pwd | 列出当前工作目录 |
| cd 目录路径 | 切换工作目录 |
| status | 列出FTP连接状态 |
| quit | 退出FTP服务器 |
| 文档命令 | |
| rename 原文件名 新文件名 | 重命名指定文件 |
| delete 文件路径 | 删除指定文件 |
| mdelete | 删除多个文件 |
| mkdir 目录路径 | 创建指定目录 |
| rmdir 目录路径 | 删除指定目录 |
| 上传/下载命令 | |
| ascii | 指定默认以ASCII码方式传输文件 |
| binary | 指定默认以二进制方式传输文件 |
| get 目的文件路径 本地文件路径 | 下载单个文件 |
| mget 文件路径 | 下载多个文件 |
| put 本地文件路径 目的文件路径 | 上传单个文件 |
| mput 文件路径 | 上传多个文件 |
本地用户模式
本地用户模式:基于Linux系统本地用户的认证模式
拒绝登录
FTP服务器的黑名单:/etc/vsftpd/userlist_deny和/etc/vsftpd/ftpusers
//系统管理员和系统用户需同时写入这两个文件
如:查看/etc/vsftpd/userlist_deny文件

//默认设置为:userlist_enable=YES,userlist_deny=YES
如:查看/etc/vsftpd/ftpusers文件

如:配置本地用户模式的FTP服务器
1)配置vsftpd服务的主配置文件/etc/vsftpd/vsftpd.conf;

2)配置/etc/vsftpd/userlist_deny和/etc/vsftpd/ftpusers文件中;
//根据userlist_enable和userlist_deny参数配置
3)配置SELinux策略;

4)登录192.168.121.128服务器,尝试增、删、改和查权限

虚拟用户模式
虚拟用户模式:基于独立的用户数据库文件,创建虚拟用户
db_load命令:将明文文件加密并生成db数据库
指令格式:db_load 选项
| 选项 | 含义 |
|---|---|
| -T | 应用程序可调用该数据库 |
| -t | 指定加密方式 一般为hash(哈希加密算法) |
| -f | 指定需加密文件 |
//被加密的文件必须为奇数行为用户名,偶数行为密码(明文)
如:创建用户数据库文件
1)编写可登录的用户名和密码数据库文件;

//编写格式:奇数行为用户名,偶数行为密码(明文)
2)加密数据库文件,并保存至/etc/vsftpd目录下(配置权限);

3)删除原始数据库文件(提高安全性)

如:配置虚拟用户模式的FTP服务器
1)创建虚拟用户所映射的系统本地用户;

//该本地用户的家目录作为存储文件的根目录(虚拟用户登录后默认位置)
2)利用加密数据库文件配置PAM认证;

3)为不同虚拟用户配置权限;

4)配置vsftpd服务的主配置文件/etc/vsftpd/vsftpd.conf;

5)配置SELinux策略;

6)mwl1和mwl2用户登录192.168.121.128服务器,尝试增、删、改和查权限

TFTP
TFTP(Trivial File Transfer Protocol):简单文件传输协议(基于UDP协议)
1)默认占用69端口
2)不需要客户端的身份/权限认证
//由Linux系统中xinetd服务管理(默认禁用)
3)tftp的根目录为/var/lib/tftpboot,且内部命令和ftp一致
TFTP安装指令:yum install tftp-server tftp
如:在系统中安装TFTP

通过修改xinetd服务中的tfp配置文件/etc/xinetd.d/tftp开启TFTP服务
如:开启系统中的TFTP服务

配置防火墙指令:firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload









