FTP Server服务
作用:提供文件共享服务
===============================================================================
FTP基础
ftp:文件传输协议 软件包:vsftpd 配置文件:/etc/vsftp/vsftpd.conf
ftp端口:控制端口21/tcp;数据端口20/tcp(主动模式)
================================================================================
vsftpd配置
=centos7======
yum -y install vsftpd
touch /var/ftp/ftp.txt
systemctl start vsftpd
systemctl enable vsftpd
关闭防火墙
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setenforce 0或者/etc/selinux/conf(disabled)
================================================================================
FTP客户端
ftp默认共享目录:/var/ftp
yum - y install lftp wget
ls:查看目录;get:下载文件;mirror:下载目录;lcd:切换本地目录;put:上传
wget ftp://192.168.10.10/ftp.txt
lftp liu@ 192.168.10.10
=================================================================================
配置文件修改参数注释
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP 地址设置要监听的 IP 地址
listen_port=21 设置 FTP 服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO]
userlist_deny=[YES|NO] 设置用户列表为“允许”还是“禁止”操作
max_clients=0 最大客户端连接数,0 为不限制
max_per_ip=0 同一 IP 地址的最大连接数,0 为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的 umask 值
anon_root=/var/ftp 匿名用户的 FTP 根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒),0 为不限制
local_enable=[YES|NO] 是否允许本地用户登录 FTP
local_umask=022 本地用户上传文件的 umask 值
local_root=/var/ftp 本地用户的 FTP 根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在 FTP 目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒),0 为不限制
锁定本地用户:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
锁定所有本地用户:
chroot_list_user=YES
=======================================================================================
匿名配置(只能下载)
1、使用yum安装 vsftpd
yum -y install ftp vsftpd
2、启动服务
systemctl start vsftpd
3、关闭防火墙
setenforce 0
systemctl stop firewalld 《临时关闭防火墙》
4、修改配置文件
vi /etc/vsftp/vsftpd.conf
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的 umask 值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录
5、重启服务
可以在Linux或Windows下测试了
======================================================================================
本地用户配置(上传和下载)
1、使用yum安装 vsftpd
yum -y install ftp vsftpd
2、启动服务
systemctl start vsftpd
3、配置防火墙规则,允许22端口通过
firewall-cmd --zone=public --add-port=21/tcp --permanent
4、关闭selinux
getsebool -a | grep ftp
输入命令 " setsebool -P ftpd_full_access on " 和 " setsebool -P tftp_home_dir on “进行修改
5、修改配置文件
vi /etc/vsftp/vsftpd.conf
anonymous_enable=NO 禁止匿名访问模式
local_enable=YES 允许本地用户模式
write_enable=YES 设置可写权限
local_umask=022 本地用户模式创建文件的 umask 值
userlist_enable=YES 启用“禁止用户名单”,名单文件为 ftpusers 和 user_list
userlist_deny=YES 开启用户作用名单文件功能
local_root= 指定本地用户目录(默认是在用户的家目录下)
6、创建登录用户,并配置用户密码
useradd testftp
passwd testftp (输入两次密码)
可以在Linux或Windows下测试了
虚拟用户模式
安装vsftp服务
yum -y install vsftpd
1、创建FTP认证的用户数据库文件
-
创建用户
cd /etc/vsftpd/
vim vuser.list
使用bash算法将原始的明文信息文件转化成数据库文件
db_load -T -t hash -f vuser.list vuser.db
file vuser.db
chmod 600 vuser.db
rm -f vuser.list
2、用于存储文件的根目录以及虚拟用户映射的系统本地用户
-
创建用户
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/
3、建立用户支持虚拟用户的PAM文件
-
新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
4、设置虚拟用户不同的权限
设置用户
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 【禁止匿名开放模式】
local_enable=YES
guest_enable=YES 【开启虚拟用户模式】
guest_username=virtual 【指定虚拟用户账户】
allow_writeable_chroot=YES 【允许对禁锢的 FTP 根目录执行写入操作,而且不拒绝用户的登录请求】
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu 【pam_service_name=vsftpd.vu】
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir 【定义这两个虚拟用户不同权限的配置文件所存放的路径】
systemctl restart vsftpd [^重载服务]
systemctl enable vsftpd
5、关闭防火墙,重新加载服务
setenforce 0
systemctl stop firealld
可以在Linux或Windows下测试了
TFTP
作用:简单传输协议是一种基于 UDP 协议在客户端和服务器之间进行简单文件传输的协议
1、安装TFTP包
yum -y install tftp-server tftp
2、在xinetd服务程序中开启
vim /etc/xinetd.d/tftp
disable = no
3、启动服务并设置防火墙允许UPD协议的69端口
~]# systemctl restart xinetd
~]# systemctl enable xinetd
~]# firewall-cmd --permanent --add-port=69/udp
~]# firewall-cmd --reload
4、tftp的参数
? 帮助信息
put 上传文件
get 下载文件
verbose 显示详细的处理信息
status 显示当前的状态信息
binary 使用二进制进行传输
ascii 使用 ASCII 码进行传输
timeout 设置重传的超时时间
quit 退出