LINUX下配置FTP服务器实例详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:本文通过在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
4.2 编辑vsftpd的pam认证
【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
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 @dns root】# mkdir /etc/vsftpd/vusers_dir
【root @dns root】#cd / etc/vsftpd/vusers_dir
【root @dns vusers_dir】#touch mark
使用vi命令编辑mark文件,内容如下:
local_root=/var/ftp/soft #指定ftp登录路径
anon_upload_enable=yes #可上传
这样虚拟用户mark就具有了读写、删除和创建目录的权限。最后我们在linux系统的服