First测试FTP
1、安装vsftp服务
rpm -q vsftpd
显示:package vsftpd is not installed
yum install vsftpd -y
su root
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
vim /etc/yum.repos.d/base.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/cdrom/AppStream
enabled=1
gpgcheck=0
[报错,然后进行yum 源配置
参见,这里centos8 阿里源 Errors during downloading metadata for repository ‘BaseOS‘:问题解决
yum install vsftpd -y
完成
systemctl stop firewalld
setenforce 0
2、启动vsftp服务
systemctl start vsftpd
systemctl enable vsftpd
显示:
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
3、关闭vsftp服务
systemctl disable vsftpd
显示:
Removed symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service.
systemctl stop vsftpd
4、测试vsftp服务
vim /etc/vsftpd/vsftpd.conf
设置anonymous_enable=YES
systemctl restart vsftpd
然后打开客户端(另一台centos8)下载ftp进行测试
su root
yum install ftp -y
ftp 192.168.112.135(服务端IP)
输入: anonymous
回车(不需要输入密码,直接回车)
**
sencond&third 配置匿名用户模式
**
再打开服务端
vim /etc/vsftpd/vsftpd.conf
设置
anonymous_enable=YES
修改
anon_upload_enable=YES
anon_mkdir_write_enable=YES
添加
anon_umask=022
anon_other_write_enable=YES
此上
把/var/ftp/pub 目录所有者改为用户 ftpgjz
chown -R ftpgjz /var/ftp/pub
systemctl stop firewalld
setenforce 0
systemctl restart vsftpd
然后在客户端匿名登录 此时有权限对文件进行修改
ftp 192.168.112.135
注意:exit可退出ftp
服务端开启防火墙,允许FTP流量
systemctl start firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
Four配置本地用户模式
vim /etc/vsftpd/vsftpd.conf
设置
anonymous_enable=NO (可以不改)
local_enable=YES
local_umask=022
write_enable=YES
local_root=/var/ftp
systemctl restart vsftpd
客户端本地用户身份登录
ftp 192.168.112.133
root是不行的(无权限)
ftpgjz(服务端用户)
打开服务端限制用户权限
vim /etc/vsftpd/vsftpd.conf
修改
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
此上
将用户名ftpgjz添加到/etc/vsftpd/chroot_list
echo ftpgjz >> /etc/vsftpd/chroot_list
systemctl restart vsftpd
此时用户ftpgjz权限收到限制
扩展任务:配置虚拟用户模式
再打开服务端
yum install pam * libdb-utils libdb * --skip-broken -y
添加虚拟用户ftp1和ftp2及对应密码
vim /etc/vsftpd/ftpusers.txt
ftp1
123
ftp2
123
将明文文件转化为数据库文件
cd /etc/vsftpd/
db_load -T -t hash -f ftpusers.txt vuser.db
chmod 600 vuser.db
rm -f ftpuser.txt
useradd -d /var/ftproot -s /sbin/nologin vusergjz
chmod -Rf 755 /var/ftproot/
创建认证pam
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vim /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
修改参数
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=vusergjz
allow_writeable_chroot=YES
pam_service_name=vsftpd
local_umask=022
systemctl restart vsftpd
记得开启防火墙和selinux
systemctl start firewalld
setenforce 1
systemctl enable firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
客户端使用虚拟用户登录
补充:yum源配置也可参考这里:
【已解决】Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist
参考:
1、【已解决】Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist
2、centos8 阿里源 Errors during downloading metadata for repository ‘BaseOS‘:问题解决