7、yum 仓库服务与 PXE 网络装机

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 账户访问测试

posted @ 2024-04-11 17:11  落落的学习  阅读(21)  评论(0编辑  收藏  举报