Linux 中的ftp服务
1.ftp的启用
首先我们需要在我们已经搭建好的共享yum源下安装vsftpd软件 yum install vsftpd -y
开启vsftpd服务 systemctl start vsftpd
然后设置开机启动systrmctl enable vsftpd
设置防火墙永久开放ftp服务firewall-cmd --permanent --add-service=ftp
然后设置重启后生效firewall-cmd --reload
测试 用lftp登陆172.25.254.213 并且能够查看其内容,如图
2.ftp的基本信息
访问数据端口:21
数据传输端口:>1024随机端口
访问方式
lftp 172.25.254.213 ##匿名登陆 匿名用户登陆会默认登陆在/var/ftp
lftp 172.25.254.213 -u student ##用户登录 本地用户登陆就默认登陆在本地用户的家目录下 /home/student
配置文件: /etc/vsftpd/vsftpd.conf
3. ftp的安全部署(在/etc/vsftpd.conf中)
anonymous_enable=YES NO 匿名用户是否可以登陆(YES表示可以,NO 表示不可以)如图我们将其改为NO
然后尝试用匿名用户去登陆
local_enable=YES NO 本地用户是否可以登陆(YES表示可以,NO 表示不可以)
write_enable=YES NO 本地用户是否可写(YES表示可写,NO表示不可以)
如图,配置文件为可以让本地用户登陆,有可写的权限
如上图,我们可以在本地用户的家目录里建立目录
4.匿名用户
1)匿名用户可写
我们先将匿名用户的默认登陆的目录下的pub目录的权限改为775:chmod 775 //var/ftp/pub
然后将其所有组改为ftp:chgrp ftp /var/ftp/pub
编辑ftp的配置文件vim /etc/vsftpd/vsftpd.conf如图
anon_upload_enable=YES 表示匿名用户可上传
然后重启vsftpd服务
2)匿名用户可下载
anon_world_readable_only=NO,设置参数值为NO表示匿名用户可以下载
3)匿名用户建立目录
anon_mkdir_writer_enable=YES,设置参数为YES匿名用户就可以建立目录
4)匿名用户是否可以删除和重命名
anon_other_writer_enable=YES设置参数为YES匿名用户就可以删除和重命名目录
5)匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
我们将其用户身份修改为student
我们在测试之前我们可以查看student 和ftp的uid如图,student的uid为1000,而ftp的uid为14
然后我们在pub下上传/etc/group目录,和以前上传的目录进行对比如下图,我么你可以看到以前上传的目录的uid为14,而修改之后的uid为1000,那么就是说,用户身份修改成功。
6)最大上传速率(可以限制上传速率)
anon_max_rate=xxx
7)最大连接数(可以限制最大连接数)
max_clients=xxx
5.本地用户
1)本地用户家目录修改
我们先建立一个/directory目录,然后修改权限为777,然后在ftp的配置文件中加入下图内容
然后以student的身份用lftp登陆,创建一个目录,我们都知道默认登陆的是student的家目录,student用户以前的家目录时/home/student 而现在改为/directory ,我们通过下图可以看到,我们创建的目录出现在了/directory里 而/home/student里的目录时我们没修改前建立的目录
2)本地用户上传文件权限
我们配置文件中的local_umask=022,那么就是说我们默认上传文件的权限为644如下图,我们先上传一个/etc/passwd文件观察其权限
然后我们在配置文件中把022改为002,再去上传文件,如下图,我们可以看到上传的group文件的权限为664
3)限制本地用户浏览目录
所有用户被琐定到自己的家目录中
正常情况下我们的student用户是可以自由去切换目录的
然后再配置文件中添加如图所示的命令
chmod u-w /home/*
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
限制本地用户登陆
vim /etc/vsftpd/ftpusers 用户黑名单
vim /etc/vsftp/user_list 用户临时黑名单
用户可以登陆ftp
6.ftp虚拟用户的设定
创建虚拟帐号身份)
vim /etc/vsftpd/file 编辑/etc/vsftpd/file文件,如下图
加密db_load -T -t hash -f /etc/vsftpd/file /etc/vsftpd/file.db
然后再编辑/etc/pam.d/www,如下图
我们在配置文件中修改pam_service_name=www,再添加guest_enable=YES,如图
然后,我们就可以登陆我们设定的虚拟用户了,如下图
7.虚拟帐号家目录独立设定
vim /etc//vsftpdvsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
mkidr /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhpome/ftpuser{1..3}
8.虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconnf