配置FTP服务

18章配置FTP服务

 

 

FTP(文件传输协议,简称“文传协议”)用于在因特网上控制文件双向传输。它同时也是一个应用程序,用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,以访问服务器上的大量程序和信息。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或在本地计算机的文件传送到远程计算机,FTP方便传输数据。

 

18.1 使用vsftpd搭建FTP服务

18.1.1 安装vsftpd

使用yum工具安装vsftpd包,如下所示:

 

这里安装了两个软件包,同时也会把依赖的包安装上。其中db4-utils包用来生成密码库文件。

18.1.2 建立账号

首先建立与虚拟账号相关联的系统账号,如下所示:

 

接着建立与虚拟账户相关的文件,如下所示

 

test1

123456

test2

Abcdef

该文加的奇数行为用户名,偶数行为上一行的用户密码。

然后更改该文件的权限,提升安全级别,如下所示:

 

vsftpd使用的密码文件不是明文的,需要生成对应的库文件,如下所示:

 

最后建立与虚拟账号相关的目录以及配置文件,

 

18.1.3 创建和用户对应的配置文件

用户的配置文件是单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致,如下图所示

# vim test1

 

其中,local_roottest1账号的家目录,anonymous_enable用来限制是否允许匿名账号登录(若为NO,表示不允许匿名账号登录),write_enable=YES表示可写,local_umask指定umask值,anon_upload_enable表示是否允许匿名帐号上传文件anon_mkdir_write_enable表示是否允许匿名账号可写。

创建test2账号的步骤和test1一样,如下所示:

 

在最开头添加两行

 

库文件路径为/lib64/security/pam_userdb.so

 

18.1.4 修改全局配置文件/etc/vsftpd/vsftpd.conf

修改用户的配置文件后还不可用,还需要修改vsftpd的一些全局配置文件。

首先编辑vsftpd.conf文件,如下所示:

vim /etc/vsftpd/vsftpd.conf

修改如下内容:

anonymous_enable=YES 改为 anonymous_enable=NO

#anon_upload_enable=YES 改为 anon_upload_enable=NO

将#anon_mkdir_write_enable=YES anon_mkdir_write_enable=NO

再增加如下内容

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

然后启动vsftpd服务,执行如下命令:

 

整个过程配置过程有点繁琐,但是并不复杂

 

//查看进程是否存在

 

//安装lftp客户端软件

 

使用lftp成功登录vsftpd,并且ls列出test1用户家目录下面的aming.txt,其中1001virftp用户的uidgid

 

18.2 安装配置pure-ftpd

pure-ftpd为另外一款比较小巧实用的FTP软件

18.2.1 安装pure-ftpd

# yum install -y epel-release

# yum install -y pure-ftpd

 

18.2.2 配置pure-ftpd

在启动pure-ftpd之前,需要先修改配置文件/etc/pure-ftpd/pure-ftpd.conf。查看该配置文件,其中需要把PureDB/etc/pure-ftpd/pureftpd.pdb前面的#删除,然后启动pure-ftpd,启动之前需要关闭vsftpd,因为有端口冲突,

 

看到相关进程说明启动成功,如果没有正常启动,需通过/var/log/messages日志查看原因。

 

18.2.3 建立账号

为了安全,pure-ftpd使用的账号并非Linux的系统账号,而是虚拟账号。首先创建一个账号:

 

 

 

 

其中,-u选项将虚拟用户ftp_user1与系统用户pure-ftpd关联一起,也就是说,使用ftp_user1账号登录FTP后,会以pure-ftp的身份来读取和下载文件,-d选项后面的目录为ftp-user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/ftp/

然后创建用户信息数据库文件,这一步最关键。

# pure-pw mkdb

其中,pure-mkdb还可以列出当前的FTP账号以及删除某个账号。例如在创建一个账号:

 

如果想删除账号,执行如下命令:

 

 

18.2.4 测试pure-ftpd

 

登陆后,使用ls命令可以查看当前目录都有什么文件,使用put命令可以把系统的文件上传到FTP服务器上。

posted @ 2020-12-08 10:12  哆啦丢了梦  阅读(87)  评论(0编辑  收藏  举报