1.搭建yum

关闭防火墙

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld.service
vim /etc/sysconfig/selinux
# selinux=enforcing 改为 selinux=disabled
在虚拟机软件里选中光盘镜像
# 创建镜像文件夹
 mkdir -p /media/cdrom
# 将光盘挂载到 /media/cdrom 目录
 mount /dev/cdrom /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
# 虚拟机挂着光驱光驱时提示只读,用以下命令可解决该报错,
mount -o remount,rw /dev/cdrom /media/cdrom

备份repo文件

# 进入/etc/yum.repos.d/目录,备份原有的repo文件
cd /etc/yum.repos.d/
mkdir bak/
cp * bak/

创建新的repo文件

# 进入/etc/yum.repos.d/目录
cd /etc/yum.repos.d/
vi RHEL.repo
[rhel5]
name=rhel5
baseurl=file:///media/cdrom          
enabled=1
gpgcheck=0
# Esc :wq保存

更新yum源

yum clean al
yum update -y
yum makecache
yum install -y 

2.1、FTP安装

一般使用yum直接在线安装

# 在线安装FTP
 yum install -y vsftpd

安装完成后查看ftp状态

# 查看ftp状态 
 systemctl status vsftpd.service
 # 启动ftp状态 重启:restart,停止:stop,开机自启:enable,关闭开机自启:disable
 systemctl start vsftpd.service

2.2、FTP配置

配置文件路径:/etc/vsftpd/vsftpd.conf

# 编辑vsftpd.conf 
 vim /etc/vsftpd/vsftpd.conf
 # 显示行号
 :set nu
 # 修改配置12行,不允许匿名访问,默认YES允许
 anonymous_enable=NO
 #修改配置83、84行  允许ascii文件上传下载
 ascii_upload_enable=YES
 ascii_download_enable=YES
 # 修改配置87行
 ftpd_banner=Welcome to blah FTP service.
 #修改配置101,102,104行 将用户限制在为其配置的主目录
 chroot_local_user=YES
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list
 #添加下列内容到vsftpd.conf末尾
 use_localtime=YES
 # 监听端口
 listen_port=21
 idle_session_timeout=300
 # 允许写
 allow_writeable_chroot=YES
 data_connection_timeout=1
 virtual_use_local_privs=YES
 pasv_min_port=40000
 pasv_max_port=40010
 accept_timeout=5
 connect_timeout=1
 # ftp默认使用GMT时间与系统时间相差8小时
 use_localtime=YES
 # Esc :wq保存

3、FTP账号、组、目录配置

# 新建一个ftpuser组 
 groupadd ftpuser
 # 新建一个ftpuser账号,并且该账号不需要登录服务器,设定家目录在 /home/ftpuser
 useradd -g ftpuser -M -d /home/ftpuser -s /sbin/nologin ftpuser
 # 设置用户 ftpuser 的密码
 passwd ftpuser
 # 把 /home/ftpuser 的所有权给ftpuser
 chown -R ftpuser:ftpuser  /home/ftpuser
 # 在home目录下先创建文件夹,作为后续ftp账号的默认目录
 mkdir -p  /home/ftpuser
 # 设置目录权限为755
 chmod 755 -R /home/ftpuser

3.1、FTP登录用、密码设置

# 进入/etc/vsftpd/目录 
 cd /etc/vsftpd/
# 创建用户密码信息文件 
 vim vuser_passwd
 #编辑如下内容,创建ftp账户信息
 ftpuser
 123456
 # Esc :wq保存退出
 # 生成ftp用户数据文件
 db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
 # 将该目录的权限改成600
 chmod 600 /etc/vsftpd/vuser_passwd.db

 3.2、编辑pam认证文件

# 查看系统位数 
 getconf LONG_BIT
 # 备份pam认证文件
 mv  /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.bak
 # 新建pam认证文件
 vim /etc/pam.d/vsftpd
 # 根据自己的操作系统选2行,不要全部都填写哟
 # 注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。
 # 系统为32位:
 auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
 required pam_userdb.so db=/etc/vsftpd/vuser_passwd
 # 系统为64位:
 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
 account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
 # Esc :wq 保存内容

 3.3、创建chroot_list文件

# 进入目录/etc/vsftpd
 cd /etc/vsftpd
 #创建使当前配置的虚拟用户允许访问的文件列表
 vim chroot_list
 #写入FTP用户名
 ftpuser
 # Esc :wq 保存退出

 3.4、防火墙、SELinux等配置

#  SELINUX不对vsftp不做任何限制
 setsebool -P ftpd_full_access on
 # 防火墙设置 IPtables 的设置方式:
 vi /etc/sysconfig/iptables
 #编辑iptables文件,添加如下内容,开启21端口
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT
 #firewall 的设置方式,以下指令
 firewall-cmd --zone=public --add-service=ftp --permanent
 firewall-cmd --zone=public --add-port=21/tcp --permanent
 firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent

4、登录验证

Linux安装与配置FTP服务 _linux