摘要:本文通过在redhat9.0中配置匿名用户和虚拟用户访问的ftp服务器,向读者详尽地诠释了linux下ftp服务器配置的全部流程以及配置过程中要注意的一些问题。 关键词:匿名用户虚拟用户权限vsftpdpam认证 1概述 linux下可用的ftp服务器软件比较多,vsftpd安全易用,很多著名的站点都在使用vsftpd作为其ftp服务器。本文以vsftpd为例,对基于linux的ftp服务器配置问题进行研究。 2安装vsftpd服务组件 vsftpd所需组件包括:vsftpd*、pam*、db4*、db4-utils,可以使用rpm命令查看: 【root@dnsroot】#rpm-qa|grepvsftpd vsftpd-1.1.3-8 【root@dnsroot】#rpm-qa|greppam pam-0.75-48 pam_krb5-1.60-1 pam-smb-1.1.6-7 pam-devel-0.75-48 【root@dnsroot】#rpm-qa|grepdb4 db4-4.0.14-20 db4-utils-4.0.14-20 db4-java-4.0.14-20 db4-devel-4.0.14-20 【root@dnsroot】# 以上便是配置ftp服务器所需所有组件,若发现个别没有装,则要在光盘中查找到装好。 3创建并设置ftp站点的主目录 我们的vsftpd组件安装好后,系统自动会生成一个目录,/var/ftp/pub,这个是linux系统中ftp站点的默认主目录,这里我们不用这个目录,我们自己为匿名用户和虚拟用户分别创建两个主目录如下: 【root@dnsroot】#mkdir/var/ftp/share 【root@dnsroot】#mkdir/var/ftp/soft 其中share作为匿名用户的主目录,只能读不能写,此处该目录文件夹我们为其设置权限为755,而soft目录作为虚拟用户访问的主目录,读写删除权限都要,我们为其设置权限777如下: 【root@dnsroot】#chmod755/var/ftp/share 【root@dnsroot】#chmod777/var/ftp/soft 4创建虚拟用户 虚拟用户只能访问为其提供的ftp服务,不能像本地用户那样登录系统而访问系统的其他资源,因此我们一般架设ftp时都会使用虚拟用户而不是本地用户来访问服务器以确保整个服务器系统的安全。 4.1建立虚拟用户数据库 使用vi命令建立一个文本文件vusers.txt,使用编辑命令编辑本文件,输入内容如下: 【root@dnsroot】#vi/etc/vsftpd/vusers.txt mark 123 【root@dnsroot】# 此文本的格式是单数行表示用户名,偶数行表示密码口令,上面表示输入了用户mark,密码是123。然后将vusers.txt文件生成虚拟用户口令库文件并修改访问权限: 【root@dnsroot】#cd/etc/vsftpd 【root@dnsvsftpd】#db_load-t-thash-fvusers.txtvusers.db 【root@dnsvsftpd】#chmod600/etc/vsftpd/vusers.db 4.2编辑vsftpd的pam认证 【root@dnsroot】#vi/etc/pam.d/vsftpd.vu authrequiredpam_userdb.sodb=/etc/vsftpd/vusers accountrequiredpam_userdb.sodb=/etc/vsftpd/vusers 4.3建立本地映射用户并设置宿主权限 建立用户virtual,此用户不用设置密码,因为该用户不会登录服务器,也不分配shell。 【root@dnsroot】#mkdir/var/market 【root@dnsroot】#useradd-d/var/market-s/sbin/nologin/virtual 【root@dnsroot】#chmod755/var/market 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 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 6虚拟用户权限配置 在上面的配置文件中,我们只看到了匿名用户的主目录,没看到虚拟用户的权限配置,但是在上面的配置中有这么一行: user_config_dir=/etc/vsftpd/vusers_dir 该目录就是用来存放虚拟用户访问目录及其权限的位置。现在我们把虚拟用户mark的配置文件放到此目录中来: 【root@dnsroot】#mkdir/etc/vsftpd/vusers_dir 【root@dnsroot】#cd/etc/vsftpd/vusers_dir 【root@dnsvusers_dir】#touchmark 使用vi命令编辑mark文件,内容如下: local_root=/var/ftp/soft#指定ftp登录路径 anon_upload_enable=yes#可上传 这样虚拟用户mark就具有了读写、删除和创建目录的权限。最后我们在linux系统的服务配置中启动vsftpd,这样我们的服务器就配置成功了。 7结束语 ftp是网络中最重要、用途最广泛的应用服务之一,用户可以直接连接到ftp服务器上传与下载文件。作为保证服务器稳定运行的操作系统——linux,是配置服务器时优选的操作系统。本文通过清晰详细的配置案例和具体的操作步骤较好地阐释了linux下ftp服务器的配置问题。