10-Linux中FTP服务的配置

一、创建匿名访问的FTP服务

1、使用场景

学校学生下载老师上传的文件,但是这个匿名账户只有下载权限没有删除写入修改权限。在本文章中我们要实现匿名访问,修改FTP默认目录,创建“download”目录要求只允许匿名下载,创建“upload”允许用户上传下载文件改名和文件删除。

2、实现目标

匿名用户使用ftp服务启动账户的身份访问FTP,如果需要上传需要ftp账户能够在文件夹中有写入权限。

更改FTP配置文件允许匿名用户登录ftp服务。

运行匿名用户上传。

更改匿名用户ftp根目录 /var/ftproot/。

在FTP根目录下创建两个文件夹upload 允许匿名上传

download只允许下载不允许上传

匿名用户上传后的文件权限是644 权限掩码为022。

3、创建匿名FTP根目录

注意:为匿名用户创建新的ftp根目录,注意根目录权限不能更改,否则匿名用户不能登录。切记切记!

创建ftproot文件夹

mkdir /var/ftproot

查看ftproot的权限

得出以下结果

创建允许用户上传的目录

更改upload文件夹的权限,才能允许匿名用户上传

创建只允许用户下载的目录

注意检查download文件夹权限匿名用户能不能上传(正常创建文件夹默认是不允许上传的)

得出以下结果

4、更改配置文件

重命名配置文件

去掉注释行产生一个新的配置文件

根据需求编辑配置文件

[vsftpd.conf]

保存后重启vsftp服务

5、测试

在XP上访问ftp服务器,发现不需要输入账户密码直接登录,看到两个文件夹,打开upload,可以上传文件和文件夹,可以修改上传的文件名,删除上传的文件。但是download文件,不能上传,只能下载。

附:常见的匿名用户相关设置

二、通过修改配置文件来禁用FTP被动模式(跟据需要去设置)

[vsftpd.conf]

注释:

pasv_enable=yes (Default: YES )设置是否允许pasv模式

pasv_promiscuous=no (Default: NO )是否屏蔽对pasv进行安全检查,(当有安全隧道时可禁用)

pasv_max_port=10240 (Default: 0 (use any port) ) pasv使用的最大端

pasv_min_port=1024 (Default: 0 (use any port) ) pasv使用的最小端

pasv_address (Default: (none - the address is taken from the incoming connected socket) ) pasv模式中服务器传回的ip地址

三、配置启用了SELinux的服务器允许匿名访问FTP(跟据需要去设置)

1、编辑SELinux配置文件改成启用状态

[config]

2、重启Linux

3、设置SELinux打开匿名访问开关

查看SELinux是否允许匿名上传

可以看到是关闭off状态

开启匿名上传功能

四、设置ftp目录文件类型

1、更改upload文件夹对所有人开放读写权限

2、设置FTP根目录文件类型,允许匿名能够打开

3、设置upload文件类型,允许匿名能够读写。

五、配置本地用户登录FTP

1、关闭SELinux(参见前边文章)

2、创建两个用户并设置密码

3、在每个人的主目录下创建一个文件。用来测试登录ftp后默认被定位到自己的主目录。

4、修改配置文件使FTP支持本地用户登录

[vsftpd.conf]

5、保存重启vsFTP服务

6、验证

在Windows客户端中,默认使用匿名登录,右击空白处,点击登录,可以切换访问FTP的用户身份。如果用zhang的账号密码登录,可以看到zhang.txt,能够说明,访问的是自己的主目录。如果用wang的账号密码登录,可以看到访问的是wang的主目录。

六、禁止Linux用户访问FTP

0、前言

vsFTP通过user_list控制哪些Linux用户能够访问ftp,哪些用户拒绝访问ftp。更改vsFTP配置文件,启用Linux用户列表user_list,并设置列表中的用户拒绝访问FTP。注意:如果userlist_deny=NO,则意味着只允许user_list列表中的用户能够访问FTP。

1、修改配置文件

[vsftpd.conf]

2、编辑user_list,在文件后边添加zhang

3、验证

在Windows客户端上登录zhang用户,看看能否登录,如果已经不能登录FTP了,说明配置正确

PS:还有一个文件,ftpusers,该文件中的用户拒绝登录ftp

七、将FTP用户定位到同一个目录

1、创建目录

2、修改文件夹权限

3、修改配置文件

在文件上加一行

4、重启服务

八、配置启用了SELinux的服务器允许本地用户访问FTP(跟据需要去设置)

1、开启SELinux

2、重启服务器

3、重启服务器后进行如下设置

九、配置虚拟用户登录FTP服务

1、检查SELinux和iptables是否关闭

2、查看是否已经安装了数据库

如果这两个有显示证明有

如果没有安装运行以下命令

3、创建用户列表(文件名可以随便给)

[vusers.list]

注释:

db_load应该是linux下创建虚拟账户:

选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。

指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。

-f 参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码

hash就是使用hash码加密

5、建立FTP访问的根目录及虚拟用户对应的系统帐户

建立账户,该账户无需设置密码及登录shell 该账户的宿主目录作为所有虚拟用户登录后的共同FTP根目录。

更改FTP根目录权限。

建立测试文件。

6、建立PAM认证文件(PAM配置文件主要用户为程序提供用户认证控制)

[vsftpd.virtual]

注意:

64位系统要写

32位系统要写

7、修改vsftpd配置文件

[vsftpd.conf]

8、重启服务

补充:关于virtual_use_local_privs参数

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,

anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

9、验证

在Windows客户端中使用刚刚创建的账户登录进行增删改查操作

十、为虚拟用户设置不同的访问权限

1、实现目标

为FTP虚拟用户设置不同的FTP访问权限,具体要求如下:

zhangyuyjia /var/zhangyujia 上传下载

zhangyj /var/zhangyj 只能够下载

2、为每个虚拟用户创建独立的目录,改变所有的文件皆有其拥有者

3、为虚拟用户创建独立的配置文件

添加

添加

4、更改vsftp配置文件

[vsftpd.conf]

PS:切记,每次配置完vsftpd.conf后一定要重启服务!!!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180124G0844S00?refer=cp_1026

扫码关注云+社区