Linux 中的ftp服务

1.ftp的启用

首先我们需要在我们已经搭建好的共享yum源下安装vsftpd软件 yum install vsftpd -y

开启vsftpd服务  systemctl start vsftpd

Linux 中的ftp服务

然后设置开机启动systrmctl enable vsftpd

Linux 中的ftp服务

设置防火墙永久开放ftp服务firewall-cmd --permanent --add-service=ftp

然后设置重启后生效firewall-cmd --reload

Linux 中的ftp服务

测试 用lftp登陆172.25.254.213 并且能够查看其内容,如图

Linux 中的ftp服务

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

然后尝试用匿名用户去登陆

Linux 中的ftp服务

Linux 中的ftp服务

local_enable=YES NO             本地用户是否可以登陆(YES表示可以,NO 表示不可以)

write_enable=YES  NO        本地用户是否可写(YES表示可写,NO表示不可以)

如图,配置文件为可以让本地用户登陆,有可写的权限

Linux 中的ftp服务

 Linux 中的ftp服务

如上图,我们可以在本地用户的家目录里建立目录

4.匿名用户

1)匿名用户可写

我们先将匿名用户的默认登陆的目录下的pub目录的权限改为775:chmod 775 //var/ftp/pub

然后将其所有组改为ftp:chgrp ftp /var/ftp/pub

编辑ftp的配置文件vim /etc/vsftpd/vsftpd.conf如图

Linux 中的ftp服务

anon_upload_enable=YES 表示匿名用户可上传

然后重启vsftpd服务

Linux 中的ftp服务

2)匿名用户可下载

anon_world_readable_only=NO,设置参数值为NO表示匿名用户可以下载

Linux 中的ftp服务

3)匿名用户建立目录

anon_mkdir_writer_enable=YES,设置参数为YES匿名用户就可以建立目录

Linux 中的ftp服务

4)匿名用户是否可以删除和重命名

anon_other_writer_enable=YES设置参数为YES匿名用户就可以删除和重命名目录

Linux 中的ftp服务

5)匿名用户使用的用户身份修改

chown_uploads=YES

chown_username=student

我们将其用户身份修改为student

Linux 中的ftp服务

我们在测试之前我们可以查看student 和ftp的uid如图,student的uid为1000,而ftp的uid为14

Linux 中的ftp服务

然后我们在pub下上传/etc/group目录,和以前上传的目录进行对比如下图,我么你可以看到以前上传的目录的uid为14,而修改之后的uid为1000,那么就是说,用户身份修改成功。

Linux 中的ftp服务

6)最大上传速率(可以限制上传速率)

anon_max_rate=xxx

7)最大连接数(可以限制最大连接数)

max_clients=xxx

5.本地用户

1)本地用户家目录修改

我们先建立一个/directory目录,然后修改权限为777,然后在ftp的配置文件中加入下图内容

Linux 中的ftp服务

然后以student的身份用lftp登陆,创建一个目录,我们都知道默认登陆的是student的家目录,student用户以前的家目录时/home/student 而现在改为/directory ,我们通过下图可以看到,我们创建的目录出现在了/directory里 而/home/student里的目录时我们没修改前建立的目录

Linux 中的ftp服务

2)本地用户上传文件权限

我们配置文件中的local_umask=022,那么就是说我们默认上传文件的权限为644如下图,我们先上传一个/etc/passwd文件观察其权限

Linux 中的ftp服务Linux 中的ftp服务

然后我们在配置文件中把022改为002,再去上传文件,如下图,我们可以看到上传的group文件的权限为664

Linux 中的ftp服务

3)限制本地用户浏览目录

所有用户被琐定到自己的家目录中

正常情况下我们的student用户是可以自由去切换目录的

Linux 中的ftp服务

然后再配置文件中添加如图所示的命令

Linux 中的ftp服务

chmod u-w /home/*

Linux 中的ftp服务

 

用户黑名单建立

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文件,如下图

Linux 中的ftp服务

 

加密db_load -T -t hash -f  /etc/vsftpd/file /etc/vsftpd/file.db

然后再编辑/etc/pam.d/www,如下图

Linux 中的ftp服务

我们在配置文件中修改pam_service_name=www,再添加guest_enable=YES,如图

Linux 中的ftp服务

然后,我们就可以登陆我们设定的虚拟用户了,如下图

Linux 中的ftp服务

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