Chinaunix首页 | 论坛 | 博客
  • 博客访问: 672075
  • 博文数量: 134
  • 博客积分: 3158
  • 博客等级: 中校
  • 技术积分: 1617
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-30 22:36
文章分类

全部博文(134)

文章存档

2012年(2)

2011年(28)

2010年(68)

2009年(35)

2008年(1)

我的朋友

分类: LINUX

2009-07-15 14:44:13

linux下架设vsftpd服务器

1.Linux下很多服务器为什么要用vsftpd

   vsftpd “very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 LinuxBSDSolaris HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等

 

。查看是否安装了vsFTPd软件
[root@linuxsir001 root]# rpm -qa | grep vsftpd
如果没有任何显示,说明没有把vsFTPd安装上,如果出现的是下面的这样的提示,就证明已经安装上了。

[root@linuxsir001 root]# rpm -qa | grep vsftpd
vsftpd-1.1.3-8

 

 

2. 安装服务器程序;

程序下载地址:ftp://vsftpd.beasts.org/users/cevans/,目前最新版本为2.0.3,源程序文件名为vsftpd-2.0.3.tar.gz

1.安装之前的准备:

安装之前我们应该看看用户“nobody”和目录“/usr/share/empty”是否存在,如果不存在需要新建这个用户和目录。

[root@localhost root]# useradd nobody

[root@localhost root]# mkdir /usr/share/empty

如果要允许匿名访问,还需要创建ftp用户,并将其主目录设置为/var/ftp。在RedHat Linux 9.0中这些都已默认设置好了,只需要创建一个/var/ftp目录即可。

[root@localhost root]# mkdir /var/ftp

为了安全,目录“/var/ftp”不应该属于用户“ftp”,也不应该有写权限。在此,我们做如下设置:

[root@localhost root]# chown root.root /var/ftp

[root@localhost root]# chmod 755 /var/ftp

 

以管理员身份登录Linux系统,将vsftpd-2.0.3.tar.gz复制到/root目录下。

[root@localhost root]# tar xzvf vsftpd-2.0.3.tar.gz

[root@localhost root]# cd vsftpd-2.0.3

[root@localhost vsftpd-2.0.3]# make

[root@localhost vsftpd-2.0.3]# make install

3.安装后续工作

由于采用源代码方式安装,很多必要的配置文件没有复制到系统中,需要手动复制。

复制配置文件:

[root@localhost vsftpd-2.0.3]# cp vsftpd.conf /etc

复制pam验证文件:(多数使用vsftpd的用户在用源代码安装后都会遇到这样的问题:匿名用户可以登录,而本地用户无论怎样设置都无法登录,原因就在于vsftpd采用了PAM验证的方式,需要复制一个验证文件本地用户才能访问。)

[root@localhost vsftpd-2.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

vsftpd的配置

vsftpd服务器的配置文件为/etc/vsftpd.conf,其配置选项比较多,在此我只选择几个常用的配置选项介绍。

 可能服务器在 /etc/vsftpd/vsftpd.conf

1.禁止匿名用户访问。

anonymous_enable=NO

2.允许本地用户登录并允许其上传文件。

local_enable=YES

write_enable=YES

要使上述选项生效,必须复制一个pam验证文件到/etc/pam.d,并改名为ftp。当然也可以改为其他名称,但必须修改pam_service_name的值,默认为ftp

3.将本地用户锁定在主目录中,不允许切换到上一级目录中。

chroot_local_user=YES

4.禁止某些用户通过ftp登录服务器。

如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。

vsftpd.conf中有三个选项控制:

userlist_deny=YES/NO

userlist_enalbe=YES

userlist_file=/etc/vsftpd.user_list

如果userlist_deny=YES/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。

我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户占一行。

 

6.设置本地用户上传的文件或文件夹的umask值。

local_umask=022(默认值为077

umask的值设为022表示,上传的如果是文件将权限改为644,如果是文件夹将权限改为755。在上传网页时,如果设置为077,就会出现用户没有权限(Permission denied)访问网页的问题,所以建议将umask的值设为022

 

执行: 执行/etc/rc.d/init.d/xinetd restart

下面介绍vsftp 如何添加用户密码:

如果要以系统中存在的普通用户登入FTP,也没有什么可以设置的,添加一个用户就行。比如我要添加beinan这个用户,就要用下面的办法

[root@linuxsir001 root]# adduser beinan
[root@linuxsir001 root]# passwd beinan
Changing password for user beinan.
New password:
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 root]#

这样的话,就在/home目录中出现一个beinan的用户目录:如下:

[root@linuxsir001 root]# ls /home/
beinan

 

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