Linux下配置FTP服务器实例详解

时间:2022-09-09 06:06:13

Linux下配置FTP服务器实例详解

摘要:本文通过在Red Hat 9.0中配置匿名用户和虚拟用户访问的FTP服务器,向读者详尽地诠释了Linux下FTP服务器配置的全部流程以及配置过程中要注意的一些问题。

关键词:匿名用户 虚拟用户 权限 vsftpd PAM认证

1 概述

Linux下可用的FTP服务器软件比较多,vsftpd安全易用,很多著名的站点都在使用vsftpd作为其FTP服务器。本文以vsftpd为例,对基于Linux的FTP服务器配置问题进行研究。

2 安装vsftpd服务组件

vsftpd所需组件包括:vsftpd*、pam*、db4*、db4-utils,可以使用rpm命令查看:

【root @dns root】#rpm-qa | grep vsftpd

vsftpd-1.1.3-8

【root @dns root】#rpm-qa | grep pam

pam-0.75-48

pam_krb5-1.60-1

pam-smb-1.1.6-7

pam-devel-0.75-48

【root @dns root】#rpm-qa | grep db4

db4-4.0.14-20

db4-utils-4.0.14-20

db4-java-4.0.14-20

db4-devel-4.0.14-20

【root @dns root】#

以上便是配置FTP服务器所需所有组件,若发现个别没有装,则要在光盘中查找到装好。

3 创建并设置FTP站点的主目录

我们的vsftpd组件安装好后,系统自动会生成一个目录,/var/ftp/pub,这个是linux系统中ftp站点的默认主目录,这里我们不用这个目录,我们自己为匿名用户和虚拟用户分别创建两个主目录如下:

【root @dns root】# mkdir /var/ftp/share

【root @dns root】#mkdir /var/ftp/soft

其中share作为匿名用户的主目录,只能读不能写,此处该目录文件夹我们为其设置权限为755,而soft目录作为虚拟用户访问的主目录,读写删除权限都要,我们为其设置权限777如下:

【root @dns root】#chmod 755 /var/ftp/share

【root @dns root】#chmod 777 /var/ftp/soft

4 创建虚拟用户

虚拟用户只能访问为其提供的FTP服务,不能像本地用户那样登录系统而访问系统的其他资源,因此我们一般架设FTP时都会使用虚拟用户而不是本地用户来访问服务器以确保整个服务器系统的安全。

4.1 建立虚拟用户数据库

使用vi命令建立一个文本文件vusers.txt,使用编辑命令编辑本文件,输入内容如下:

【root @dns root】#vi /etc/vsftpd/vusers.txt

mark

123

【root @dns root】#

此文本的格式是单数行表示用户名,偶数行表示密码口令,上面表示输入了用户mark,密码是123。然后将vusers.txt文件生成虚拟用户口令库文件并修改访问权限:

【root @dns root】#cd /etc/vsftpd

【root @dns vsftpd】#db_load-T-t hash-f vusers.txt vusers.db

【root @dns vsftpd】#chmod 600 /etc/vsftpd/vusers.db

【root @dns root】#vi /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

4.3 建立本地映射用户并设置宿限

建立用户virtual,此用户不用设置密码,因为该用户不会登录服务器,也不分配shell。

【root @dns root】#mkdir /var/market

【root @dns root】#useradd-d /var/market -s /sbin/nologin/virtual

【root @dns root】#chmod 755 /var/market

【root @dns root】#chown virtual /var/market

【root @dns root】#chown virtual /var/ftp/soft

【root @dns root】#chown virtual /var/ftp/share

5 配置主文件vsftpd.conf

安装了vsftpd服务组件后,系统会自动生成文件vsftpd.conf,是用命令vi /etc/vsftpd/vsftpd.conf对它进行编辑,一般要确保含有以下配置:

anonymous_enable=YES#允许匿名用户访问

anon_root=/var/ftp/share #匿名用户访问主目录

local_enable=YES

anon_umask=022

anon_world_readable_only=NO

write_enable=YES

guest_enable=YES #开启虚拟用户

guest_username=virtual #FTP虚拟用户对用的系统用户

pam_service_name=vsftpd.vu

user_config_dir=/etc/vsftpd/vusers_dir #虚拟用户配置文件存放位置

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

xferlog_file=/var/log/vsftpd.log

listen=YES

tcp_wrappers=YES

6 虚拟用户权限配置

在上面的配置文件中,我们只看到了匿名用户的主目录,没看到虚拟用户的权限配置,但是在上面的配置中有这么一行:

user_config_dir=/etc/vsftpd/vusers_dir

该目录就是用来存放虚拟用户访问目录及其权限的位置。现在我们把虚拟用户mark的配置文件放到此目录中来:

【root @dns root】# mkdir /etc/vsftpd/vusers_dir

【root @dns root】#cd / etc/vsftpd/vusers_dir

【root @dns vusers_dir】#touch mark

local_root=/var/ftp/soft #指定FTP登录路径

write_enable=YES #可写

anon_world_readable_only=NO #可读

anon_upload_enable=YES #可上传

anon_mkdir_write_eanble=YES #可创建

anon_other_write_enable=YES #可删除

这样虚拟用户mark就具有了读写、删除和创建目录的权限。最后我们在Linux系统的服务配置中启动vsftpd,这样我们的服务器就配置成功了。

7 结束语

FTP是网络中最重要、用途最广泛的应用服务之一,用户可以直接连接到FTP服务器上传与下载文件。作为保证服务器稳定运行的操作系统——Linux,是配置服务器时优选的操作系统。本文通过清晰详细的配置案例和具体的操作步骤较好地阐释了Linux下FTP服务器的配置问题。

参考文献:

[1]庄晓华.FTP用户隔离及应用[J].价值工程,2010(32).

[2]洪亮,石志芳.虚拟机安装Linux及网络设置[J].价值工程,2012(11).

[3]梁建国,张斌,王欣伟.基于vsftpd的安全FTP服务器的构建[J].计算机与网络,2009(16).

上一篇:电厂锅炉补给水预处理系统工艺浅析 下一篇:厦门港船舶供油作业海事管理现状分析及其对策...