Centos标准系统下搭建ftp服务器 下载本文

内容发布更新时间 : 2024/5/20 3:48:49星期一 下面是文章的全部内容请认真阅读。

Centos系统下搭建ftp服务器 一.安装服务

1.安装Vsftpd服务相关部件: yum install vsfptd* 2.安装PAM服务部件

yum install pam*

3.安装db4部件包 用来支持文件数据库

yum install db4* 二.建立系统账户(重点)

1.使用如下命令建立系统内真实存在的用户 overload 其中-s /sbin/nologin 这条命令是不允许这个账户登录vsftpd的服务中 因为这里的overload是要作为虚拟用户的宿主用户存在

useradd overload -s /sbin/nologin 2.使用如下命令编辑虚拟用户数据储存文件 login

vi /etc/vsftpd/login

编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“一行用户名,一行口令” 如下图

3.使用以下命令建立宿主用户的主要目录/var/ftp 并设定宿主用户主目录权限为宿主用户 mkdir /var/ftp/

chown -R overload.overload /var/ftp (授权命令) ll /var/ftp (查询/var/ftp权限)

4.在宿主用户主目录/var/ftp下建立和login内用户名相同的目录 并授权至宿主用户 mkdir /var/ftp/bangong

chown -R overload.overload /var/ftp/bangong mkdir /var/ftp/shichang

chown -R overload.overload /var/ftp/shichang

1 / 7

三.建立虚拟用户验证机制

1.使用下面的命令将login文件 生成db格式的数据文件 db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/login.db 参数说明

-T 允许应用程序能够将文本文件转译载入进数据库

-t 子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型 Hash 是数据库类型 -f 是指定文件

2.查看生成的db数据文件 ll /etc/vsftpd/login.db

(需要特别注意的是,以后再要添加虚拟用户的时候,只需要按照“一行用户名,一行口令”的格式将新用户名和口令添加进虚拟用户名单文件。但是光这样做还不够,不会生效的哦!还要再执行一遍“ db_load -T -t hash -f 虚拟用户名单文件 虚拟用户数据库文件.db ”的命令使其生效才可以! )

3.新建PAM服务配置文件 ts118 vi /etc/pam.d/ts118

添加如下两条配置命令

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/login account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/login (64位系统里面的lib目录要为/lib64) auth是指对用户的用户名口令进行验证。

accout是指对用户的帐户有哪些权限哪些限制进行验证。

sufficient表示充分条件,也就是说,一旦在这里通过了验证,那么也就不用经过下面剩下的验证步骤了。相反,如果没有通过的话,也不会被系统立即挡之门外,因为sufficient的失败不决定整个验证的失败,意味着用户还必须将经历剩下来的验证审核。

/lib/security/pam_userdb.so表示该条审核将调用pam_userdb.so这个库函数进行 db=/etc/vsftpd/login则指定了验证库函数将到这个指定的数据库中调用数据进行验证 四.Vsftpd服务的配置 1.编辑配置文件前先备份

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup 2.编辑配置文件

vi /etc/vsftpd/vsftpd.conf

这里我将原配置文件的修改完全记录,凡是修改的地方我都会保留注释原来的配置。其中加入我对每条配置项的认识,对于一些比较关键的配置项这里我做了我的观点,并且原本英语的说明我也不删除,供参考对比用。

------------------------------------------------------------------------------

# Allow anonymous FTP? (Beware - allowed by default if you comment this out). #anonymous_enable=YES anonymous_enable=NO 设定不允许匿名访问

#

# Uncomment this to allow local users to log in. local_enable=YES

2 / 7

设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。

#

# Uncomment this to enable any form of FTP write command. write_enable=YES 设定可以进行写操作。

#

# Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022

设定上传后文件的权限掩码。

#

# Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. #anon_upload_enable=YES anon_upload_enable=NO 禁止匿名用户上传。

#

# Uncomment this if you want the anonymous FTP user to be able to create # new directories.

#anon_mkdir_write_enable=YES anon_mkdir_write_enable=NO 禁止匿名用户建立目录。

#

# Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES 设定开启目录标语功能。

#

# Activate logging of uploads/downloads. xferlog_enable=YES 设定开启日志记录功能。

#

# Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES 设定端口20进行数据连接。

#

# If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using \# recommended!

#chown_uploads=YES chown_uploads=NO

设定禁止上传文件更改宿主。

3 / 7