Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26739
  • 博文数量: 3
  • 博客积分: 145
  • 博客等级: 入伍新兵
  • 技术积分: 134
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-18 23:43
文章分类
文章存档

2012年(3)

我的朋友

分类: LINUX

2012-10-26 09:11:53

rhel5中搭建ftp服务器

一、安装vsftpd:使用光盘安装即可。

rpm  –Uvh  vsftpd*rpm

vsftpd安装完成之后,默认的主配置文件为/etc/vsftpd/vsftpd.conf.下面按自上而下的顺序介绍此文件的参数设定。

vi      /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

#允许匿名访问,即允许anonymous账号访问ftp服务

local_enable=YES

#允许使用本机用户账号登录

write_enable=YES

#用户可以读写

local_umask=022

#默认掩码位022,即默认创建的文件权限位755

dirmessage_enable=YES

#若目录下存在.message文件,则显示该文件内容

xferlog_enable=YES

#默认上传/下载的日志被记录在/var/log/vsftpd.log

connect_from_port_20=YES

#20端口连接,默认状况下,20ftp的数据传输端口

xferlog_std_format=YES

#使用标准格式登记上传/下载记录

listen=YES

#当此项设定为YES的时候,vsftpd运行于standalone模式下。默认为开启。

pam_service_name=vsftpd

#列出与vsftpd相关的pam文件

userlist_enable=YES

#当此项设定为YES的时候,启动配置文件/etc/vsftpd.user_list。此时有两种情况:

      此时若没有userlist_deny=NO,/etc/vsftpd.user_list中的用户不可以访问vsftpd服务器

      此时若存在userlist_deny=NO,则仅接受/etc/vsftpd.user_list中存在的用户的登录请求(同时这些用户不存在于/etc/vsftpd.ftpusers中)

#当此项设定为NO,不会启用配置文件/etc/vsftpd.user_list

tcp_wrappers=YES

#启用tcp wrapper支持

 

二、匿名vsftpd的搭建

匿名vsftpd的搭建非常简单。前面已经介绍了vsftpd的安装,安装后需要启动服务,命令如下:

service     vsftpd       start

为了使该服务在每次开机时自动运行,需要下面的命令:

chkconfig          --level 2345     vsftpd on

之后,将下面的允许匿名用户访问的参数设定好:

anonymous_enable=YES

重启vsftpd的服务:

service     vsftpd       restart

最后,将iptables中的tcp端口2021打开。这样一个匿名的vsftpd服务器就搭建好了,匿名用户将只能访问/var/ftp下面的文件和目录。

三、仅允许系统用户访问的服务器的设定

安装和启动部分略过。接下来位 vsftpd.conf的设定:

vi      /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

#不允许匿名访问

local_enable=YES

write_enable=YES

local_umask=022

#启动系统用户访问,可读写文件,并且掩码为022

 

uerlist_enable=YES

userlist_deny=NO

#仅接受/etc/vsftpd/user_list中存在的用户的登录请求

#同时这些用户不存在于/etc/vsftpd/ftpusers

#编辑这两个文件,前者相当于白名单,后者相当于黑名单

pasv_enable=YES

#port_enbale=YES

pasv_min_port=9001

pasv_max_port=9200

#被动模式,传输端口为9001~9200

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

#编辑/etc/vsftpd/chroot_list,其中的用户将不能访问ftp根目录以上的目录

user_localtime=YES

dirmessage_enable=YES

xferlog_enable=YES

#connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

tcp_wrappers=YES

重新启动vsftpd服务:

Service vsftpd restart

这样一个只允许系统用户访问的ftp服务器就搭建好了。

四、 vsftpd虚拟用户

在客户端访问vsftpd服务时,根据vsftpd的设定,一般可以使用匿名或者系统账户。那么,如果我们想创建一些用户,并使这些用户仅仅能访问vsftpd,而不可以登录系统,那么我们就需要创建虚拟用户,而这些虚拟用户仅能访问vsftpd。什么是虚拟用户?虚拟用户和系统实体用户的区别是:实体用户在/etc/passwd中对应信息,而虚拟用户只是针对vsftpd/etc/passwd文件无关。下面介绍如何添加虚拟用户。

首先要确认如下包已安装。

Rpm –qa | grep db4

db4-devel-4.3.29-10.el5

db4-utils-4.3.29-10.el5

db4-4.3.29-10.el5

接下来,需要创建虚拟用户的用户名和密码。创建一个文档,假定这个文件位/tmp/id.txt,内容如下:

lee

hello

baby

love

其中单数行为用户名,双数行为密码。如:lee为用户名,hello为密码。

生成用户账号的数据库文件并设定数据文件权限,最后删除/tmp/id.txt:

db_load –T –t hash –f /tmp/id.txt /etc/vsftpd/vsftpd_id.db

chmod 600 /etc/vsftpd/vsftpd_id.db

         下面设定vsftpd.conf文件,内容如下

         vi      /etc/vsftpd/vsftpd.conf

pasv_enable=YES

pasv_min_port=9001

pasv_max_port=9200

#被动模式,传输端口为9001~9200

anonymous_enable=NO

#禁止匿名用户访问

local_enable=YES

#允许本机账户访问

write_enable=YES

local_umask=022

virtual_use_local_privs=YES

#虚拟用户权限与本机相同

guest_enable=YES

#允许使用虚拟用户

guest_username=ftp

#虚拟用户登录后,用户身份为ftp

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

pam_service_name=vsftpd.virtual

#设定PAM文件名称,这个PAM文件指定了验证顺序

user_sub_token=$USER

#基于模板,自动生成虚拟用户的家目录

local_root=/home/vsftpd/$USER

#用户上传目录

chroot_local_user=YES

hide_ids=YES

#隐藏文件的所有组和用户信息

use_localtime=YES

dirmessage_enable=YES

xferlog_enable=YES

xferlog_std_format=YES

listen=YES

userlist_enable=YES

tcp_wrappers=YES

接着建立PAM文件/etc/pam.d/vsftpd.virtual,内容如下:

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

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

session  required       pam_loginuid.so

下面建立相关的目录:

mkdir /home/vsftpd

mkdir –p /home/vsftpd/{lee,baby}

chown –R ftp:ftp /home/vsftpd

重启vsftpd服务:

Service     vsftpd restart

如果设置正确,则虚拟机用户可以登录服务器。输出如下:

[root@localhost ~]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): xyz

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

至此,ftp服务器搭建结束。O(_)O

 

阅读(2308) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~