基础知识
实施环境
主机名称 | IP地址 | 用户 | 操作系统版本 |
---|---|---|---|
server | 192.168.31.128 | root | CentOS Linux release 7.9.2009 (Core) |
client1 | 192.168.31.129 | root | CentOS Linux release 7.9.2009 (Core) |
文件 | 作用 |
---|---|
/etc/vsftpd/vsftpd.conf | FTP配置文件 |
/etc/vsftpd/ftpusers | 管理用户登录FTP Server |
/etc/vsftpd/user_list | 与配置文件联合管理用户登录FTP Server |
/var/log/vsftpd.log | 日志文件:记录FTP连接情况 |
/var/log/xferlog | 日志文件:记录FTP上传下载情况 |
实施文档
配置基础环境
服务器端安装软件(server)
yum -y install vsftpd
启动服务
systemctl restart vsftpd
查看端口
netstat -lantu | grep 21
客户端(client1)安装软件
yum -y install ftp
服务器端(server)修改配置文件,是否允许匿名登陆=====>YES允许、NO不允许
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
systemctl restart vsftpd
客户端登录(client1)
ftp 192.168.31.128
匿名登陆(用户名ftp,密码默认是没有的)
Name (192.168.31.128:root): ftp
Password:
客户端(client1)修改文件传输模式,默认传输文件格式是binary(binary转换ascii)
ascii
修改文件传输模式(ascii转换binary)
binary
服务器(server)修改匿名用户家目录属主属组,匿名用户FTP家目录(在服务器上面的/var/ftp)
chown ftp. /var/ftp/pub
客户端(client1)修改工作模式,服务器默认工作方式是被动模式passive转换成主动模式port(passive转换port)
passive
客户端(client1)修改传工作模式,服务器默认工作方式是被动模式passive(port转换passive)
passive
匿名用户实验文档
服务器端(server)创建文件
cd /var/ftp/pub
echo "f1" > f1
客户端(client1)下载文件f1
ftp 192.168.31.128
cd pub
get f1
服务器端(server)修改配置文件
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES #允许匿名上传文件
anon_mkdir_write_enable=YES #允许匿名用户创建目录
anon_other_write_enable=YES #允许匿名用户删除目录
systemctl restart vsftpd
客户端(client1)进行验证
ftp 192.168.31.128
ftp
cd pub
put anaconda-ks.cfg
mkdir test
delete f1
rmdir test
实体用户登录
服务器端(server)创建普通用户
useradd dandan
passwd dandan
useradd tudou
passwd tudou
cd /home/dandan/
echo "dandan">f2
客户端(client1)普通用户登录
ftp 192.168.31.128
dandan
pwd
put anaconda-ks.cfg
get f2
mkdir dandan
rmdir dandan
delete f2
cd /etc
服务器端(server)限制普通用户切换目录
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #属性为全局性设置。设置为YES全部用户限制在主目录以下。设置为NO全部用户开放
chroot_list_enable=YES #是否启用vsftpd.chroot_list受限制的用户名单。YES启动,NO禁用
chroot_list_file=/etc/vsftpd/chroot_list #文件为白名单,名单内的chroot不会被限制。
allow_writeable_chroot=yes #允许受限制用户执行写入操作
vim /etc/vsftpd/chroot_list #设置白名单,将dandan用户允许登录。
dandan
systemctl restart vsftpd
客户端(client1)验证
ftp 192.168.31.128
dandan
exit
ftp 192.168.31.128
tudou
服务器端(server)禁止实体账户登录,设置黑名单。
vim /etc/vsftpd/ftpusers
tudou
客户端(client1)验证,登陆失败,用户tudou无法登录。
ftp 192.168.31.128
恢复环境,删除黑名单中刚刚设置的tudou用户。
vim /etc/vsftpd/ftpusers
删除tudou
服务器端(server)禁止实体账户登录,设置黑名单。
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES
vim /etc/vsftpd/user_list
tudou
客户端(client1)进行验证,用户tudou无法登录
ftp 192.168.31.128
tudou
服务器(server)实体账户登录,设置白名单。
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
systemctl restart vsftpd
客户端(client1)进行验证,只允许用户tudou登录,其他人无法登录
ftp 192.168.31.128
tudou
服务器端(server)实体账户都可以登录。
vim /etc/vsftpd/vsftpd.conf
#userlist_enable=YES
systemctl restart vsftpd
客户端(client1)进行验证,只允许所有用户登录。
ftp 192.168.31.128
tudou
exit
ftp 192.168.31.128
dandan
虚拟用户登录
服务器端(server)创建新的实体用户
useradd -d /xiaohua xiaohua
passwd xiaohua
chmod 777 /xiaohua
echo "aaa" > /xiaohua/f3
服务器端(server)配置存放虚拟账号和密码的库文件
vim /etc/vsftpd/users
gangdan
123
tiechui
123
db_load -T -t hash -f /etc/vsftpd/users /etc/vsftpd/vusers.db
服务器端(server)建立虚拟用户和实体用户映射关系
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=xiaohua
服务器端(server)编辑验证模板文件
cd /etc/pam.d/
cp vsftpd vsftpd.bak
cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
vim vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
systemctl restart vsftpd
客户端(client1)登陆验证
ftp 192.168.31.128
gangdan
mkdir dandan
rmdir dandan
get f3
delete f2
delete f3