您的位置:首页 > 编程语言 > PHP开发

vsftp 服务器的搭建

2010-01-16 10:42 218 查看
一、基础知识:
1、ftp的工作方式有两种:主动方式(Standard模式)和被动方式(Passive模式),具体的工作原理可以在网上搜索一下!大把这种资料。
2、ftp 传输要用到两个连接,一个控制连接(服务端默认为21号端口),一个数据连接(服务端默认为21号端口)。
3、VSFTP 的简介
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。涉及到安全方面,本实验主要是通过VSFTP提供的三种认证方式进行介绍:匿名用户方式,本地用户方式,虚拟用户方式。
二、实验目的
1、通过匿名用户可以访问服务器,可实现下载,但无法上传、创建文件夹、修改文件活文件夹、并且只能够在固定的目录下,不可浏览其他目录
2、通过本地用户进行登录,通过身份验证的用户可以访问服务器。并按照不同的用户需求设计不同的权限。
3、通过虚拟用户进行登录,通过身份验证的用户可以访问服务器。并按照不同的用户需求设计不同的权限。这种方法更为的安全。
三、实验环境
Vmware虚拟机,CentOS 5。
四、实验过程
1、搭建vsftp服务器
这里讲的是从tar包安装。你也可以选择rpm安装或者是yum安装。
1) 下载tar包。可以在http://vsftpd.beasts.org/下载源码包。
2) 安装vsftp包
tar –zxvf vsftpd-2.2.0.tar.gz
cd vsftpd-2.2.0
make
useradd nobody
mkdir /usr/share/empty/
mkdir /var/ftp/
user -d /var/ftp/ ftp
useradd -d /var/ftp/ ftp
chmod og-w /var/ftp/
make install
cp vsftpd.8 /usr/local/man/man8/
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.conf /etc
通过以上的命令完成了vsftp安装。
2、下面进行试验
1)实验前我首先必须了解vsftp的相关的配置文件以及配置参数的相关含义。
/etc/vsftpd.conf 主配置文件
主要的配置参数有:

参数
说明
listen_address=ip address
指定侦听IP
listen_port=port_value
指定侦听端口,默认21
anonymous_enable=YES
是否允许使用匿名帐户
local_enable=YES
是否允许本地用户登录
nopriv_user=ftp
指定vsftpd服务的运行帐户,不指定时使用ftp
write_enable=YES
是否允许写入
anon_upload_enable=YES
匿名用户是否可上传文件
anon_mkdir_write_enable=YES
匿名用户是否建立目录
dirmessage_enable=YES
进入每个目录是显示欢迎信息,在每个目录下建立.message文件在里面写欢迎信息
xferlog_enable=YES
上传/下载文件时记录日志
connect_from_port_20=YES
是否使用20端口传输数据(是否使用主动模式)
chown_uploads=YES
chown_username=whoever
修改匿名用户上传文件的拥有者
xferlog_file=/var/log/vsftpd.log
日志文件
xferlog_std_format=YES
使用标准文件日志
idle_session_timeout=600
会话超时,客户端连接到ftp但未操作
data_connection_timeout=120
data_connection_timeout=120
async_abor_enable=YES
是否允许客户端使用sync等命令
ascii_upload_enable=YES、ascii_download_enable=YES
是否允许上传/下载二进制文件
chroot_local_user=YES
限制所有的本地用户在自家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
指定不能离开家目录的用户,将用户名一个一行写在/etc/vsftpd/chroot_list文件里,使用此方法时必须chroot_local_user=NO
ls_recurse_enable=YES
listen=YES
是否允许使用ls -R等命令
开启ipv4监听
listen_ipv6=YES
开启ipv6监听
pam_service_name=vsftpd
使用pam模块控制,vsftpd文件在/etc/pam.d目录下
userlist_enable=YES
此选项被激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsftpd查到该用户名在列表中,vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步聚
userlist_deny=YES
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入密码的提示。NO,只允许在文件中的用户登录FTP服务器
tcp_wrappers=YES
是否允许tcp_wrappers管理
local_root=/home/ftp

所有用户的根目录,,对匿名用户无效

anon_max_rate
匿名用户的最大传输速度,单位是Byts/s
local_max_rate
本地用户的最大传输速度,单位是Byts/s
download_enable= YES
是否允许下载
这些是常用的常数,很容易理解。如果想了解更多相关vsftp的参数及说明。可以到vsftp官网查看相关文档。

3) 通过对以上参数的了解。我开始搭建符合实验目标的ftp服务器

1、 以匿名登录:默认搭建好的服务器就是一个匿名登录的服务器,可下载但无法上传文件、创建修改文件夹。我通过修改anon_upload_enable、anon_mkdir_write_enable参数使匿名用户也具有相应的权限。建议还是不要修改这个参数。在XP客户机命令窗输入 ftp 192.168.1.188 要求输入用户名及密码。我用anonymous 或者ftp账号进行显示登录成功。

2、 以本地用户登录。要满足以下要求:用户登录时显示一些登录欢迎的消息,用户可以实现上传、下载、修改目录创建目录。
实现方法:修改以下参数
anonymous_enable=NO
local_enable=YES
write_enable=YES
ftpd_banner=Welcome to my ftp server.
pam_service_name=ftp
ftp 192.168.1.188 时,出现
Connected to 192.168.1.188.
220 Welcome to my ftp server.
User (192.168.1.188:(none)):
用在系统中创建的用户rofee,可以进行登录。
但发现却无法上传、下载、修改目录创建目录,仔细的查看了配置文件。配置没有出现错误。最后发现rofee用户的家目录属于是root用户,root群。执行chown rofee.rofee /var/rofee修改rofee家目录的属性后。即可实现以上的权限。

3、 以虚拟用户登录。
新建一个虚拟用户所用的本地用户,所有虚拟用户都是通过这个用户来通过验证。
mkdir /var/ftp/vuser
useadd –d /var/ftp/vuser vuser
修改/etc/pam.d/vsftpd 配置文件
修改后的配置文件如下
#%PAM-1.0
session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include system-auth
#account include system-auth
#session include system-auth
#session required pam_loginuid.so
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser
新建一个虚拟用户登录用账号口令的文件vuser.txt(奇行为账号,偶行为口令)比如:
baobao
12345
junlew
54321
保存该文件。对该文件生成数据库文件
db_load –T –t hash –f /etc/vuser.txt /etc/vuser.db
最后修改主配置文件/etc/vsftpd/vsftpd.conf,在末尾加上几条
guest_enable=YES //开启虚拟用户方式
guset_username=vuser //虚拟用户映射的本地用户。
pam_service_name=vsftpd //提供的认证方式,该文件位于/etc/pam.d下。
还有很多选项,这里没有列出。按照默认的即可。
重启vsftp服务,通过baobao 口令12345来登录成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲 vsftp