1.部署 yum 软件仓库
1.1.使用本地 yum
挂载 umount /dev/sr0 mount /dev/sr0 /media/
mkdir /root/yum.bak
mv /etc/yum.repos.d /root/yum.bak
vim /etc/yum.repos.d/test.repo
[local-yum] #定义名称
name = local-yum #定义使用的yum
baseurl = file:///media/ #定义挂载的光盘路径
enabled = 1
gpgcheck = 0 #不要校验序列号
yum clean all #清理缓存
yum list #生成 yum 缓存
yum install -y vsftpd #安装软件
1.2.通过 ftp 搭建私有的 yum
服务器挂载光盘:
匿名访问时,看到光盘目录(也可以挂载到ftp目录下)
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #允许匿名访问
anon_root=/media
local_enable=NO
write_enable=YES #开放服务器的写权限
anon_umask=022
anon_upload_enable=YES #允许匿名上传
anon-mkdir_write_enable=YES #允许匿名用户创建目录
dirmessage_enable=YES
systemctl restart vsftpd
客户机:
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/yum.repo
[ftp]
name=ftp-yum
baseurl=ftp://服务器IP
enabled=1
gpgcheck=0
yum clean all
yum list
1.3.公网 yum
mkdir /root/yum.bak mv /etc/yum.repos.d/* /root/yum.bak cd /etc/yum.repos.d/ wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum list
2.一些命令
查询软件包:
yum list 软件名
yum info 软件名
yum search 关键词
查询软件包组:
yum grouplist
yum groupinfo
安装软件:
yum install 软件名
yum groupinstall 包组名
升级软件:
yum update
yum groupupdate
卸载软件:
yum remove 软件名
yum groupremove 包组名
3.FTP 文件传输服务
3.1.FTP 服务概述
FTP 连接及连接模式
控制连接:TCP 21,用于发送 ftp 命令信息
数据连接:TCP20,用于上传、下载数据
数据连接的建立类型:
主动模式:服务端从 20 端口主动向客户端发起连接(通过21端口连接,上传下载过20端口)
被动模式:服务端在指定范围内某个端口被动等待客户端连接(只启用21端口)
FTP 传输模式
文本模式:ASCII 模式,以文本序列传输数据
二进制模式:Binary 模式,以二进制序列传输数据
FTP 用户类型:匿名用户、本地用户、虚拟用户
常见 FTP 服务器类型
IIS、Serv-U
wu-ftpd、Proftpd
vsftpd(Very Secure FTP Daemon)
常见的 FTP 客户端程序
ftp 命令
CuteFTP、FlashFXP、LeapFTP、Filezilla
gftp、kuftp
3.2.vsftpd 服务基础
主程序:/usr/sbin/vsftpd
服务名:vsftpd
用户控制列表文件:
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件:
/etc/vsftpd/vsftpd.conf
3.2.1.常用的全局配置项
listen=YES:是否以独立运行的方式监听服务 listen_address=192.168.4.1:设置监听的IP 地址(只监听业务流)
listen_port=21:设置监听FTP 服务的端口号
write_enable=YES:是否启用写入权限(总开关)
download_enable=YES:是否允许下载文件
userlist_enable=YES:是否启用 user list列表文件
userlist_deny=YES:是否禁用 user list 中的用户
max_clients=0:限制并发客户端连接数(并发量,0表示无限制)
max_per_ip=0:限制同一 IP 地址的并发连接数
3.2.2.常用的匿名 FTP 配置项
anonymous_enable=YES:启用匿名访问
anon_umask=022:名用户所上传文件的权限掩码(反码,022:文件是644【666-022】,目录是755【777-022】)
anon_root=/var/ftp:匿名用户的 FTP 根目录
anon_upload_enable=YES:允许上传文件
anon_mkdir_write_enable=YES:允许创建目录
anon_other_write_enable=YES:开放其他写入权
anon_max_rate=0:限制最大传输速率(字节/秒),0表示不受限制
3.2.3.常用的本地用户 FTP 配置项
local_enable=YES:是否启用本地系统用户
local_umask=022:本地用户所上传文件的权限掩码
local_root=/var/ftp:设置本地用户的FTP 根目录
chroot local user=YES:是否将用户禁锢在主目录
local_max_rate=0:限制最大传输速率(字节/秒)
vsftpd 也支持 tcp_wrappers 的访问控制:tcp_wrapperd=YES
3.3.匿名访问上传 FTP 服务器
1.准备匿名 FTP 访问目录:/var/ftp 目录默认权限是不能拉满的,如果要拉满,要在里面创建子目录
使匿名用户 FTP 会该目录有写入权限:chown ftp /var/ftp/pub/(或者给 pub 目录开放777)
2.开放匿名用户配置,并启动 vsftpd 服务
vim /etc/vsftpd/vsftpd.conf anonymous_enable=YES #允许匿名访问 local_enable=NO write_enable=YES #开放服务器的写权限 anon_umask=022 anon_upload_enable=YES #允许匿名上传 anon-mkdir_write_enable=YES #允许匿名用户创建目录 dirmessage_enable=YES
3.想要使用本地登录 FTP,必须要有系统密码
4.设置白名单
vim /etc/vsftpd/user_list(配置只允许登录的用户名) vim /etc/vsftpd/vsftpd.conf(末尾添加) userlist_enable=YES
userlist_deny=NO
3.4.构建基于虚拟用户的 FTP 服务
创建账号数据
1.建立虚拟 FTP 用户的账号数据库文件
vim /etc/vsftpd/vusers.list(奇数行是用户名,下一行是上一行用户的密码)
jerry
123.com
tom
123.com
yum install -y pam
yum install -y libdb-utils
yum install -y libdb
cd /etc/vsftpd/
db_load -T -t hash -f vusers.list #转换
chmod 600 /etc/vsftpd/vusers.* #明文存储,所以权限为600
2.创建FTP根目录及虚拟用户映射的系统用户(映射账户权限,按照匿名账户权限来的)
useradd -d /var/ftproot -s /sbin/nologin virtual #映射账户的家目录
chmod 755 /var/ftproot/
3.建立支持虚拟用户的PAM认证文件
vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
添加虚拟用户支持
4.在 vsftpd.conf 文件中添加支持配置
vim /etc/vsftpd/vsftpd.conf(末尾修改)
local_enable=YES
write_enable=YES
anon_umask=022
allow_writeable_chroot=YES
pam_service_name=vsftpd.vu #指定新的 PAM 认证文件
guest_enable=YES #启用用户映射功能
guest_username=virtual #指定映射的系统用户名称
systemctl restart vsftpd
如果使用了白名单,需要把 virtual、jerry、tom 加入白名单
5.为个别虚拟用户建立独立的配置文件
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch jerry
touch tom
vim tom
annon_other_write_enable=YES
annon_mkdir_write_enable=YES
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
启动服务并测试
6.重新加载 vsftpd 配置
7.使用虚拟 FTP 账户访问测试