vsftp配置大全

vsftp配置大全---超完整版

https://www.360docs.net/doc/c117367001.html,/viewthread.php?tid=561183 一、前言

Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如https://www.360docs.net/doc/c117367001.html,,https://www.360docs.net/doc/c117367001.html,,https://www.360docs.net/doc/c117367001.html,.等。Vsftpd的实现有三种方式

1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问

2、本地用户形式:以/etc/passwd中的用户名为认证方式

3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP 的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。

二、获取最新版的Vsftp程序

Vsftp官方下载:ftp://https://www.360docs.net/doc/c117367001.html,/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录# cd /home/xuchen

# tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序

# cd vsftpd-2.0.3

三、三种方式的实现

1、匿名用户形式实现

# vi builddefs.h \\编辑builddefs.h 文件,文件内容如下:

#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H

#undef VSF_BUILD_TCPWRAPPERS

#define VSF_BUILD_PAM

#undef VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */

将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL # make //直接在vsftpd-2.0.3里用make编译

# ls -l vsftpd

-rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功

创建必要的帐号,目录:

# useradd nobody //可能你的系统已经存在此帐号,那就不用建立

# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立

# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立

# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立

# chown root:root /var/ftp

# chmod og-w /var/ftp

请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:

# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano

# install -m 644 vsftpd.8 /usr/share/man/man8

# install -m 644 vsftpd.conf.5 /usr/share/man/man5

# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf

这样就安装完成了,那么我们开始进行简单的配置

# vi /etc/vsftpd-ano.conf ,将如下三行加入文件

listen=YES

listen_port=21

tcp_wrappers=YES

anon_root=/var/ftp //设置匿名用户本地目录,和ftp用户目录必须相同

listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它(vsftpd 推荐使用standalone方式)

# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & //以后台方式启动vsftpd

注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES 后多了个空格,那我启动时就出现如下错误:

500 OOPS: bad bool value in config file for: listen

测试搭建好的匿名用户方式

# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.3)

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): ftp

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>; pwd

257 "/"

ftp>; quit

221 Goodbye.

#

OK,已经完成了,very nice.

高级配置

细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)

为什么呢?因为vsftpd 是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。

# mkdir /var/ftp/pub

# chmod -R 777 /var/ftp/pub

为了测试方便,我们先建立一个名为kill-ano的脚本,是为了杀掉FTP程序的

#!/bin/bash

a=`/bin/ps -A | grep vsftpd-ano | awk '{print $1}'`

kill -9 $a

那么现在大家看看我的匿名服务器配置文件吧

anonymous_enable=YES //允许匿名访问,这是匿名服务器必须的

write_enable=YES//全局配置可写

no_anon_password=YES //匿名用户login时不询问口令

anon_umask=077//匿名用户上传的文件权限是-rw----

anon_upload_enable=YES//允许匿名用户上传文件

anon_mkdir_write_enable=YES//允许匿名用户建立目录

anon_other_write_enable=YES//允许匿名用户具有建立目录,上传之外的权限,

如重命名,删除

dirmessage_enable=YES//当使用者转换目录,则会显示该目录下的.message信息

xferlog_enable=YES//记录使用者所有上传下载信息

xferlog_file=/var/log/vsftpd.log//将上传下载信息记录到/var/log/vsftpd.log中

xferlog_std_format=YES //日志使用标准xferlog格式

idle_session_timeout=600//客户端超过600S没有动作就自动被服务器踢出

data_connection_timeout=120//数据传输时超过120S没有动作被服务器踢出

chown_uploads=YES

chown_username=daemon//上传文件的属主

ftpd_banner=Welcome to https://www.360docs.net/doc/c117367001.html, FTP service. //FTP欢迎信息

anon_max_rate=80000//这是匿名用户的下载速度为80KBytes/s

check_shell=NO//不检测SHELL

现在再测试,先kill掉再启动FTP程序

# ./kill-ano

# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf &

上传一个文件测试一下,怎么样?OK了吧,下载刚上传的那个文件,恩?不行,提示550 Failed to open file.

传输已失败!

传输队列已完成

1 个文件传输失败

没有关系,你记得咱们设置了anon_umask=077了吗?所以你下载不了,如果你到服务器上touch 一个文件(644),测试一下,是可以被下载下来的,好了,匿名服务器就说到这里了。

2、本地用户形式实现

# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录

# make clean //清除编译环境

# vi builddefs.h \\继续编辑builddefs.h 文件,文件内容如下:

#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H

#define VSF_BUILD_TCPWRAPPERS

#define VSF_BUILD_PAM

#define VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */

将以上define VSF_BUILD_PAM行的define改为undef,支持tcp_wrappers,不支持PAM 认证方式,支持SSL,记住啊,如果支持了PAM认证方式,你本地用户是不能登陆的。

# make //直接在vsftpd-2.0.3里用make编译

# ls -l vsftpd

-rwxr-xr-x 1 root root 84712 Jun 6 18:56 vsftpd //可执行程序已被编译成功

创建必要的帐号,目录:

# useradd nobody //可能你的系统已经存在此帐号,那就不用建立

# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立

# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立

# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立

# chown root:root /var/ftp

# chmod og-w /var/ftp

请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:

# install -m 755 vsftpd /usr/local/sbin/vsftpd-loc

# install -m 644 vsftpd.8 /usr/share/man/man8

# install -m 644 vsftpd.conf.5 /usr/share/man/man5

# install -m 644 vsftpd.conf /etc/vsftpd-loc.conf

这样就安装完成了,那么我们开始进行简单的配置

# vi /etc/vsftpd-loc.conf ,将如下三行加入文件

listen=YES

listen_port=21

tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它(vsftpd推荐使用standalone方式),注意事项请参看匿名用户的配置。

anonymous_enable=NO

local_enable=YES //这两项配置说不允许匿名用户登陆,允许本地用户登陆

# /usr/local/sbin/vsftpd-loc /etc/vsftpd-loc.conf & //以后台方式启动vsftpd

测试搭建好的匿名用户方式,先测试root用户吧:)

# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.3)

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): root

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>; pwd

257 "/root"

ftp>; quit

221 Goodbye.

我们看到root用户可以登陆到ftp,他的登陆目录就是自己的主目录。

再测试一个系统用户,那我们先建立一个用户名叫xuchen的

# useradd xuchen

# passwd xuchen

Changing password for user xuchen.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

建立好了,让我们开始测试吧!!

# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.3)

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): xuchen

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>; pwd

257 "/home/xuchen"

ftp>; quit

221 Goodbye.

我们看到xuchen用户可以登陆到ftp,他的登陆目录也是自己的主目录。哈哈,又完成了!

高级配置

细心的朋友可能已经看出来如果我们不支持PAM认证方式,那么本地用户就可以登陆,而默认编译的vsftpd支持PAM认证方式,所以是不支持本地用户登陆的。恩,从这点说,这也是vsftp安全的一个表现----禁止本地用户登陆。

我们登陆后进行测试,传一个文件上去,得,失败了,那下载个文件下来吧,恩,这是成功的(见图2),而且我们发现我们可以进入到系统根目录(见图3),这样很危险。

那么改配置文件吧,为了测试方便,我们先建立一个名为kill-loc的脚本,也是为了杀掉FTP程序的

#!/bin/bash

a=`/bin/ps -A | grep vsftpd-loc | awk '{print $1}'`

kill -9 $a

现在提供我的本地用户验证服务器配置文件(在匿名里写过的注释我就不在这里写了)listen=YES

listen_port=21

tcp_wrappers=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022 //本地用户文件上传后的权限是-rw-r-r

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

connect_from_port_20=YES

chroot_local_user=YES //限制用户在自己的主目录

#local_root=/ftp //你可以指定所有本地用户登陆后的目录,如果不设置此项,用户都会登陆于自己的主目录,就跟咱们前面测试的结果是一样的

local_max_rate=500000 //本地用户的下载速度为500KBytes/s

idle_session_timeout=600

data_connection_timeout=120

nopriv_user= nobody //设定服务执行者为nobody,vsftpd推荐使用一个权限很低的用户,最好是没有家目录(/dev/null),没有登陆shell(/sbin/nologin),系统会更安全ftpd_banner=Welcome to https://www.360docs.net/doc/c117367001.html, FTP service.

check_shell=NO

userlist_enable=YES

userlist_deny=YES

userlist_file=/etc/vsftpd.denyuser

以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.denyuser中,一行一个帐号如果我把xuchen这个用户加到vsftpd.denyuser里,那么登陆时会出现如下错误:# ftp 127.0.0.1

Connected to 127.0.0.1.

220 Welcome to https://www.360docs.net/doc/c117367001.html, FTP service.

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): xuchen

530 Permission denied.

Login failed.

呵呵,有意思吧,自己测试吧,本地用户登陆方式就介绍到这里吧!

3、虚拟用户形式实现(db及mysql形式)

# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录

# make clean //清除编译环境

# vi builddefs.h \\继续编辑builddefs.h 文件,文件内容如下:

#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H

#define VSF_BUILD_TCPWRAPPERS

#undef VSF_BUILD_PAM

#define VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */

将以上define VSF_BUILD_PAM行的undef改为define,支持tcp_wrappers,支持PAM 认证方式,支持SSL,和匿名用户形式是一样的。

# make //直接在vsftpd-2.0.3里用make编译

# ls -l vsftpd

-rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd //可执行程序已被编译成功

创建必要的帐号,目录:

# useradd nobody //可能你的系统已经存在此帐号,那就不用建立

# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立

# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立

# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立

# chown root:root /var/ftp

# chmod og-w /var/ftp

请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:

# install -m 755 vsftpd /usr/local/sbin/vsftpd-pam

# install -m 644 vsftpd.8 /usr/share/man/man8

# install -m 644 vsftpd.conf.5 /usr/share/man/man5

# install -m 644 vsftpd.conf /etc/vsftpd-pam.conf

这样就安装完成了,那么我们开始进行简单的配置

对于用DB库存储用户名及密码的方式来说:

(1)查看系统是否有相应软件包

# rpm –qa | grep db4

db4-devel-4.2.52-7.1

db4-4.2.52-7.1

db4-utils-4.2.52-7.1

(2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如

# vi /home/logins.txt

xuchen

12345

(3)建立数据库文件并设置文件属性

# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db

# chmod 600 /etc/vsftpd_login.db

(4)建立认证文件

# vi /etc/pam.d/ftp 插入如下两行

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

(5)建立一个虚拟用户

useradd -d /home/vsftpd -s /sbin/nologin vsftpd

ls -ld /home/vsftpd

drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/

(6)编写配置文件(注意事项请参看匿名用户的配置,这里不再赘述)

# vi /etc/vsftpd-pam.conf

listen=YES

listen_port=21

tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)

listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制

它(vsftpd推荐使用standalone方式)

anonymous_enable=NO

local_enable=YES //PAM方式此处必须为YES,如果不是将出现如下错误:

500 OOPS: vsftpd: both local and anonymous access disabled!

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_username=vsftpd //这两行的意思是采用虚拟用户形式

virtual_use_local_privs=YES //虚拟用户和本地用户权限相同

pasv_enable=YES //建立资料联机采用被动方式

pasv_min_port=30000 //建立资料联机可以使用port 范围上界,0表示任意。默认0。

pasv_max_port=30999//建立资料联机可以使用port 范围下界,0表示任意。默认0。(7)启动程序

# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf &

(8)测试连通及功能

# vi /home/vsftpd/test //建立一个文件,内容如下

1234567890

# chown vsftpd.vsftpd /home/vsftpd/test

# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.3)

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): xuchen

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>; pwd

257 "/"

ftp>; size test

213 11

ftp>; quit

221 Goodbye.

OK,用户名为xuchen,密码为12345可以连接到FTP服务器,看不到文件列表,但可以下载已知文件名的文件,不能上传文件,非常安全吧!!

如果我们需要用户看到文件,怎么办?也好办,在配置文件中加入如下语句:anon_world_readable_only=NO //匿名登入者不能下载可阅读档案,默认值为YES 如果需要让用户上传文件和下载文件分开,建议如下这么做

# vi /home/logins.txt

xuchen

12345

upload

45678

//首先建立虚拟用户upload,密码为45678

# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db //更新数据文件

# mkdir /home/vsftpd/upload

# vi /etc/vsftpd-pam.conf 加入如下语句

user_config_dir=/etc/vsftpd_user_conf

# mkdir /etc/vsftpd_user_conf

# vi /etc/vsftpd_user_conf/upload 文件内容如下

local_root=/home/vsftpd/upload

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# chmod 700 /home/vsftpd/upload

# chown vsftpd.vsftpd /home/vsftpd/upload/

这样,xuchen用户可以下载/home/vsftpd里的文件及upload里的文件,而upload用户可以上传和下载/home/vsftpd/upload文件夹的东西,但不能到/home/vsftpd里下载文件,很简单得实现了分用户上传和下载

对于用Mysql库存储用户名及密码的方式来说:

就是把用户名和密码放在mysql库里,实现起来也相当简单

(1)建立一个库并设置相应权限

# mysql –p

mysql>;create database ftpd;

mysql>;use ftpd;

mysql>;create table user(name char(20) binary,passwd char(20) binary);

mysql>;insert into user (name,passwd) values ('test1','12345');

mysql>;insert into user (name,passwd) values ('test2','54321');

mysql>;grant select on https://www.360docs.net/doc/c117367001.html,er to ftpd@localhost identified by '123456';

mysql>;flush privileges; 刷新权限设置

mysql>;quit

(2)下载libpam-mysql进行安装编译

下载地址如下:

https://www.360docs.net/doc/c117367001.html,/sourceforge/pam-mysql/pam_mysql-0.5.tar.gz

假设我们把它放在了/home/xuchen目录下

# cd /home/xuchen

# tar xzvf pam_mysql-0.5.tar.gz

# cd pam_mysql

# make

# cp pam_mysql.so /lib/security

(3)建立PAM认证信息

# vi /etc/pam.d/ftp ,内容如下

auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0

account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0

注意:

crypt= n

crypt=0: 明文密码

crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)

crypt=2: 使用MYSQL中的password()函数加密

crypt=3:表示使用md5的散列方式

(4)建立本地虚拟用户

# useradd -d /home/ftpd -s /sbin/nologin ftpd

(5)下面就差修改vsftpd.conf文件了,我把我的提供给大家参考吧:)

# vi /etc/vsftpd-pam1.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

chroot_local_user=YES

guest_enable=YES

guest_username=ftpd

listen=YES

listen_port=21

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30999

anon_world_readable_only=NO

virtual_use_local_privs=YES

#user_config_dir=/etc/vsftpd_user_conf

可以看出,和前面的用db库来验证没有多大区别,其实就是一个东西,一个用mysql 来验证,一个用db库,我个人比较倾向于用db库来验证,在这个环境下,相对于Mysql 来说,安全系数更高一点。

(6)# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam1.conf & //以后台方式启动

(7)测试连通

# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.3)

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): test1

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>; pwd

257 "/"

ftp>; quit

221 Goodbye.

看,成功了!!这样就实现了mysql的认证方式,很简单吧??

4、为FTP增加磁盘配额,从而避免恶意用户用垃圾数据塞满你的硬盘

我首先要说的是这个功能是系统自带的,而不是vsftp 的功能之一,千万别搞混了。好了,我们先假设我们的系统用户ftpd的主目录是/home/ftpd,它是建立在/home分区中,那么如果我们要对ftpd用户进行磁盘限额,那我们需要修改/etc/fstab中根分区的记录,将/home 分区的第4个字段改成defaults,usrquota,如下:

LABEL=/home /home ext3 defaults,usrquota 1 2

# reboot //重新启动系统使设置生效

也可以用

# mount -o remount /dev/sda6 ///dev/sda6的挂接点就是/home,这样可以不用启动系统。这里我还要说明一下,如果我们对一个组进行磁配额,那我们需要增加参数grpquota,例如LABEL=/home /home ext3 defaults,grpquota 1 2

也可以

LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2

你想怎么限制都可以,自己组合参数吧。

# quotacheck -avu

说明:a-自动开启挂载文件系统的配额,v-显示信息,u-启用用户配额or g-启用组配额# edquota ftpd //为用户ftpd设置磁盘配额

OR

# edquota -g grp //为组grp设置磁盘配额

系统会自动打开配额文件,如下:

Disk quotas for user ftpd (uid 502):

Filesystem blocks soft hard inodes soft hard

/dev/sda6 424 0 0 13 0 0

第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数,单位为KB。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period),默认七天的超越。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为0,那个限度就不会被设置。我设置了硬块限度为1KB,是为了测试方便。

# quotaon -avu //打开磁盘配额监控进程,u是用户g是组,这里没设置g参数要校验用户的配额是否被设置,我们可以使用以下命令:

# quota ftpd

Disk quotas for user ftpd (uid 502):

Filesystem blocks quota limit grace files quota limit grace

/dev/sda6 424* 0 1 13 0 0

# edquota –t(-g)来设置过渡期(grace period)//当然只针对软限制而言和另一个edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem Block grace period Inode grace period

/dev/sda6 7days 7days

按你的需要修改后存盘退出

用以下命令显示磁盘配额使用状态

# repquota -a 或repquota /dev/sda6(用户配额)

# repquota -g -a 或repquota -a /dev/sda6 (组的配额)

如果一切按照你的意思实施了,那么我们就进行测试了!如下图4

我们传了一个>;1k的文件,没有成功,这样我们就成功的为用户ftpd增添了磁盘配额,要是哪一天你不想加磁盘配额了,怎么办?参看如下命令:

取消某个文件系统的配额限制

#quotaoff -vug /dev/sda6 //删除home分区的磁盘限额

#删除/etc/fstab中设置配额的部分

修改软配额的最大超越时间

注意:

/,/boot/,/proc,/mnt/cdrom等不要使用配额,没用。而且磁盘配额不适合FAT和FAT32系统。以后当新设置了某个用户的配额,可以使用如下命令,马上生效。

# quotacheck -auvgm --是不尝试重新挂载文件系统

备注:1、vsftpd配置参数详细整理

#接受匿名用户

anonymous_enable=YES

#匿名用户login时不询问口令

no_anon_password=YES

#匿名用户主目录

anon_root=(none)

#接受本地用户

local_enable=YES

#本地用户主目录

local_root=(none)

#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录deny_email_enable=YES

#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录

check_shell=YES

#若启用此选项,userlist_deny选项才被启动

userlist_enable=YES

#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录userlist_deny=NO

#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)

passwd_chroot_enable=NO

#定义匿名登入的使用者名称。默认值为ftp。

ftp_username=FTP

#################用户权限控制###############

#可以上传(全局控制).

write_enable=YES

#本地用户上传文件的umask

local_umask=022

#上传文件的权限配合umask使用

#file_open_mode=0666

#匿名用户可以上传

anon_upload_enable=NO

#匿名用户可以建目录

anon_mkdir_write_enable=NO

匿名用户其它的写权利(更改权限?)

anon_other_write_enable=NO

如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。

anon_world_readable_only=YES

#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名

#guest_enable=NO

所有匿名上传的文件的所属用户将会被更改成chown_username

chown_uploads=YES

匿名上传文件所属用户名

chown_username=lightwiter

#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录

chroot_list_enable=YES

#允许使用"async ABOR"命令,一般不用,容易出问题

async_abor_enable=YES

管控是否可用ASCII 模式上传。默认值为NO。

ascii_upload_enable=YES

#管控是否可用ASCII 模式下载。默认值为NO。

ascii_download_enable=YES

#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty secure_chroot_dir=/usr/share/empty

###################超时设置##################

#空闲连接超时

idle_session_timeout=600

#数据传输超时

data_connection_timeout=120

#PA VS请求超时

ACCEPT_TIMEOUT=60

#PROT模式连接超时

connect_timeout=60

################服务器功能选项###############

#开启日记功能

xferlog_enable=YES

#使用标准格式

xferlog_std_format=YES

#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.

#log_ftp_protocol=NO

#允许使用pasv模式

pasv_enable=YES

#关闭安全检查,小心呀.

#pasv_promiscuous+NO

#允许使用port模式

#port_enable=YES

#关闭安全检查

#prot_promiscuous

#开启tcp_wrappers支持

tcp_wrappers=YES

#定义PAM 所使用的名称,预设为vsftpd。

pam_service_name=vsftpd

#当服务器运行于最底层时使用的用户名

nopriv_user=nobody

#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)

pasv_address=(none)

#################服务器性能选项##############

#是否能使用ls -R命令以防止浪费大量的服务器资源

#ls_recurse_enable=YES

#是否使用单进程模式

#one_process_model

#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式

listen=YES

#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。

text_userdb_names=NO

#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果

use_localtime=NO

#测试平台优化

#use_sendfile=YES

################信息类设置################

#login时显示欢迎信息.如果设置了banner_file则此设置无效

ftpd_banner=欢迎来到湖南三辰Fake-Ta FTP 网站.

#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容

dirmessage_enable=YES

#显示会话状态信息,关!

#setproctitle_enable=YES

############## 文件定义##################

#定义不能更改用户主目录的文件

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

#定义限制/允许用户登录的文件

userlist_file=/etc/vsftpd/https://www.360docs.net/doc/c117367001.html,er_list

#定义登录信息文件的位置

banner_file=/etc/vsftpd/banner

#禁止使用的匿名用户登陆时作为密码的电子邮件地址

banned_email_file=/etc/vsftpd.banned_emails

#日志文件位置

xferlog_file=/var/log/vsftpd.log

#目录信息文件

message_file=.message

############## 目录定义#################

#定义用户配置文件的目录

user_config_dir=/etc/vsftpd/userconf

#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.

local_root=webdisk #此项设置每个用户登陆后其根目录为/home/username/webdisk

#匿名用户登陆后的根目录

anon_root=/var/ftp

#############用户连接选项#################

#可接受的最大client数目

max_clients=100

#每个ip的最大client数目

max_per_ip=5

#使用标准的20端口来连接ftp

connect_from_port_20=YES

#绑定到某个IP,其它IP不能访问

listen_address=192.168.0.2

#绑定到某个端口

#listen_port=2121

#数据传输端口

#ftp_data_port=2020

#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。

pasv_max_port=0

#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。

pasv_min_port=0

##############数据传输选项#################

#匿名用户的传输比率(b/s)

anon_max_rate=51200

#本地用户的传输比率(b/s)

local_max_rate=5120000

########################################

别外,如果要对每个用户进行单独的控制,只需要在user_config_dir中建立username文件,内容为数据传输和用户权利里面设置个人的合适的选项,用户自定义文件同样适合用pam支持的虚拟用户

附: FTP 数字代码的意义

110 重新启动标记应答。

120 服务在多久时间内ready。

125 数据链路埠开启,准备传送。

150 文件状态正常,开启数据连接端口。

200 命令执行成功。

202 命令执行失败。

211 系统状态或是系统求助响应。

212 目录的状态。

213 文件的状态。

214 求助的讯息。

215 名称系统类型。

220 新的联机服务ready。

221 服务的控制连接埠关闭,可以注销。

225 数据连结开启,但无传输动作。

226 关闭数据连接端口,请求的文件操作成功。

227 进入passive mode。

230 使用者登入。

250 请求的文件操作完成。

257 显示目前的路径名称。

331 用户名称正确,需要密码。

332 登入时需要账号信息。

350 请求的操作需要进一部的命令。

421 无法提供服务,关闭控制连结。

425 无法开启数据链路。

426 关闭联机,终止传输。

450 请求的操作未执行。

451 命令终止:有本地的错误。

452 未执行命令:磁盘空间不足。

500 格式错误,无法识别命令。

501 参数语法错误。

502 命令执行失败。

503 命令顺序错误。

504 命令所接的参数不正确。

530 未登入。

532 储存文件需要账户登入。

550 未执行请求的操作。

551 请求的命令终止,类型未知。

552 请求的文件终止,储存位溢出。

553 未执行请求的的命令,名称不正确。

安装篇

===============

这个文件详细介绍了如何从VSFTPD的.tar.gz分发包开始,建立和安装并运行VSFTPD。

1)建立VSFTPD

先进入解压.tar.gz文件后产生的目录内。如下:

cd vsftpd-2.0.1

编辑"builddefs.h"以操作compile-time设定。(tcp_wrappers build,等)

输入make,回车(如果它不工作请发邮件通知我这将产生一个二进制文件,可以验证一下。如下:

[chris@localhost vsftpd]$ ls -l vsftpd

-rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd

2)满足VSFTPD安装所需的一些条件

VSFTPD默认设置需要一个"nobody"用户,如果这个用户不存在,那么添加它。如下:[root@localhost root]# useradd nobody

useradd: user nobody exists

VSFTPD默认设置需要一个空目录:/usr/share/empty.增加这个目录,如果它还不存在的话。如下:

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

mkdir: cannot create directory `/usr/share/empty': File exists

如果容许匿名用户(anonymous),那么你将需要一个"ftp"用户和其home目录(这个home 目录不属于“ftp”用户,而且“ftp"用户也对其没有写权限)在你的系统中存在。

以下命令用来创建一个"ftp"用户,如果它还不存在的话。

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

[root@localhost root]# useradd -d /var/ftp ftp

(即使你的"ftp"用户已经存在,完成以下这两步也是很有好处的:)

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

[root@localhost root]# chmod og-w /var/ftp

3)安装VSFTPD的配置、执行和帮助文件。

输入"make install"后会将二进制文件和帮助文件拷贝到适当的目录。

你也可以手工拷贝这些文件:

cp vsftpd /usr/local/sbin/vsftpd

cp vsftpd.conf.5 /usr/local/man/man5

cp vsftpd.8 /usr/local/man/man8

"make install"不会拷贝默认的配置文件,所以建议你手工拷贝:

cp vsftpd.conf /etc

daidong注:根据你系统版本的不同,也可能是cp vsftpd.conf /etc/vsftpd

4)测试(无inetd影响)

VSFTPD能运行在独立模式(standalone)或者通过inetd(xinetd)来启动。

你能通过inetd来运行vsftpd以更好地控制它。但我们在首次运行时不这么做,以便检查系统是否现在配置正常。

编辑/etc/vsftpd.conf(daidong注:也可能是/etc/vsftpd/vsftpd.conf),并在最下面加入以下这一行:

listen=YES

这将告诉VSFTPD不要从inetd启动。

OK,现在试着启动FTP。以ROOT登录。

确定你没有运行其他FTP服务(否则VSFTPD不能占用FTP所需的21端口)。

运行那个二进制文件,如下:

[root@localhost root]# /usr/local/sbin/vsftpd &

[1] 2104

如果一切正常,那么你将连上FTP服务器,如下:

[chris@localhost chris]$ ftp localhost

Connected to localhost (127.0.0.1).

220 (vsFTPd 1.1.1)

Name (localhost:chris): ftp

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>; ls

227 Entering Passive Mode (127,0,0,1,229,133)

150 Here comes the directory listing.

d--x--x--x 2 0 0 4096 Jan 14 2002 bin

d--x--x--x 2 0 0 4096 Apr 21 20:52 etc

drwxr-xr-x 2 0 0 4096 Apr 21 20:52 lib

drwxr-sr-x 2 0 50 4096 Jul 26 22:58 pub

226 Directory send OK.

ftp>;

5)从inetd或者类似方式启动(官方推荐使用standalone方式)

你也许想通过inetd或者类似方式启动VSFTPD,因为这能给你更多的感受。例如xinetd 就有很多的设置。

(注意:VSFTPD的内在机制屏蔽了xinetd的大多数的有用的设置)。

如果使用标准的"inetd",你需要编辑/etc/inetd.conf,在其中加入以下一行:

ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd

(确定你删除或者注释掉一些已存在的FTP服务配置行。如果你没有安装tcp_wrappers,或者不想使用它们,那么请去掉/usr/sbin/tcpd part).

inetd需要指定并重新载入它的配置文件:kill -SIGHUP `pidof inetd`

如果你想使用"xinetd",请参阅我们提供的范例/EXAMPLE/INTERNET_SITE/README. 而其他范例文件将告诉你如何调配出更强大的xinetd功能。

6)为本地登录配置PAM文件(可选)

如果你在一台激活了PAM的设备上运行VSFTPD,你需要提供一个/etc/pam.d/ftp 文件。否则非匿名用户将无法登录服务器。

(注:如果你的PAM版本比较老,那么这个文件也许是/etc/pam.conf).

做为一个标准设置,你可以拷贝一个已提供的范例文件,如下:

cp RedHat/vsftpd.pam /etc/pam.d/ftp

7)自定义你的配置文件

完成以上的配置后,建议你安装一个配置文件。默认的配置文件位置是/etc/vsftpd.conf. 在VSFTPD软件分发包内有一个范例配置文件。

你可以拷贝其为/etc/vsftpd.conf以做进一步修改。

cp vsftpd.conf /etc

(daidong注:也可能是cp vsftpd.conf /etc/vsftpd ).

这个默认配置即不容许本地登录也不容许匿名用户上传,也许你希望更改这个配置。

其它

===================

测试平台(已通过)

-流行的,功能完善的平台都能测试通过。在以下平台的较新版本,VSFTPD工作得很好。在其大部分较早的版本下,也运行正常。

- RedHat Linux

- RedHat Enterprise Linux

- Solaris / GNU tools (Solaris 8 or newer)

- SuSE Linux

- Debian Linux

- OpenBSD

- FreeBSD

- NetBSD

- HP-UX / GNU tools

- IRIX / GNU tools

- Mac OS X (note; older versions have setgroups() problem. 10.3.4 reported OK)

虚拟用户1

=============

这个例子示范了如何为虚拟用户设置VSFTPD/PAM。

虚拟用户是一个在系统中并不作为一个登录实体而存在的用户。使用虚拟用户比使用真实的用户更安全,因为这个账号只能用于FTP服务器。

虚拟用户经常用来提供给不大可信任的用户访问某些资源,而这些资源通常是其他普通用户不能访问的。

1)创建虚拟用户数据库

我们将使用pam_userdb来认证虚拟用户。这需要提供一个“db"格式(一种通用数据库

VSFTP配置文件详解

# 是否允许匿名登录FTP服务器,默认设置为YES允许 # 用户可使用用户名ftp或anonymous进行ftp登录,口令为用户的E-mail地址。 # 如不允许匿名访问则设置为NO anonymous_enable=YES # 是否允许本地用户(即linux系统中的用户帐号)登录FTP服务器,默认设置为YES允许 # 本地用户登录后会进入用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub # 若只允许匿名用户访问,前面加上#注释掉即可阻止本地用户访问FTP服务器 local_enable=YES # 是否允许本地用户对FTP服务器文件具有写权限,默认设置为YES允许 write_enable=YES # 掩码,本地用户默认掩码为077 # 你可以设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值 #local_umask=022 # 是否允许匿名用户上传文件,须将全局的write_enable=YES。默认为YES #anon_upload_enable=YES # 是否允许匿名用户创建新文件夹 #anon_mkdir_write_enable=YES # 是否激活目录欢迎信息功能 # 当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息 # 默认情况下,欢迎信息是通过该目录下的.message文件获得的 # 此文件保存自定义的欢迎信息,由用户自己建立 #dirmessage_enable=YES # 是否让系统自动维护上传和下载的日志文件

# 默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定# 默认值为NO xferlog_enable=YES # Make sure PORT transfer connections originate from port 20 (ftp-data). # 是否设定FTP服务器将启用FTP数据端口的连接请求 # ftp-data数据传输,21为连接控制端口 connect_from_port_20=YES # 设定是否允许改变上传文件的属主,与下面一个设定项配合使用 # 注意,不推荐使用root用户上传文件 #chown_uploads=YES # 设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名 # 可以把上传的文件都改成root属主。whoever:任何人 #chown_username=whoever # 设定系统维护记录FTP服务器上传和下载情况的日志文件 # /var/log/vsftpd.log是默认的,也可以另设其它 #xferlog_file=/var/log/vsftpd.log # 是否以标准xferlog的格式书写传输日志文件 # 默认为/var/log/xferlog,也可以通过xferlog_file选项对其进行设定 # 默认值为NO #xferlog_std_format=YES # 以下是附加配置,添加相应的选项将启用相应的设置 # 是否生成两个相似的日志文件 # 默认在/var/log/xferlog和/var/log/vsftpd.log目录下

vsftp使用方法

vsftp使用方法 VSFTPD的菜鸟篇: 作者:龙磊 这是我这个菜鸟学习LINUX所写的第一篇文章,是比较基础的FTP架设的应用,如果我写有什么问题请大家多指教,我后续会陆续出进阶篇把FTP中各种详细的配置跟大家一起进行探讨。 我所用的是LINUX AS+VSFTPD-1.2.0-4的系统架构,在这里说明的是如果对配置文件不是很熟悉,最好做个备份,以免误操作: 1.匿名服务器的连接(独立的服务器) 在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项: Anonymous_enable=yes (允许匿名登陆) Dirmessage_enable=yes (切换目录时,显示目录下.message的内容) Local_umask=022 (FTP上本地的文件权限,默认是077) Connect_form_port_20=yes (启用FTP数据端口的数据连接)* Xferlog_enable=yes (激活上传和下传的日志) Xferlog_std_format=yes (使用标准的日志格式) Ftpd_banner=XXXXX (欢迎信息) Pam_service_name=vsftpd (验证方式)* Listen=yes (独立的VSFTPD服务器)* 功能:只能连接FTP服务器,不能上传和下传 注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项 2.开启匿名FTP服务器上传权限 在配置文件中添加以下的信息即可: Anon_upload_enable=yes (开放上传权限) Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)Write_enable=yes (开放本地用户写的权限) Anon_other_write_enable=yes (匿名帐号可以有删除的权限) 3.开启匿名服务器下传的权限 在配置文件中添加如下信息即可: Anon_world_readable_only=no 注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限 (R)读-----下传(W)写----上传(X)执行----如果不开FTP的目录都进不去 4.普通用户FTP服务器的连接(独立服务器)

杨海艳-主讲-linux之VsFTP配置步骤截图

vsftp的配置步骤讲解说明 主讲人:杨海艳 然后vim /etc/vsftpd/vsftpd.conf

service vsftpd restart 【案例1】建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。 (1)配置FTP匿名用户的主目录为/var/ftp/anon。下载带宽限制为100kB/s (2)建立一个名为abc,口令为xyz的FTP账户。下载带宽限制为500kB/s。 (3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。 mkdir /var/ftp/anon useradd abc passwd abc vim /etc/vsftpd/vsftpd.conf 主要内容如下 anonymous_enable=YES anon_root=/var/ftp/anon anon_max_rate=100000 # Uncomment this to allow local users to log in. local_enable=YES local_max_rate=500000 max_clients=100 max_per_ip=3 connect_timeout=300 以上是本地的LOCAL用户 下面是用虚拟用户来实现 vim /etc/vsftpd/vuser 内容如下 tom 123 生成数据库文件 db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db chmod 600 /etc/vsftpd/vuser.db vim /etc/pam.d/vsftpd 注释掉原来的内容 然后加入 auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser 最后编辑VSFTPD.CONF加入下面两句 guest_enable=YES guest_username=abc

Linux下VsFTP配置全方案

Linux下VsFTP配置全方案 纲要: 一,VsFTPd的简述 二,企业Linux下vsFTPD方案 三,VsFTPD相关配置文件详解 一,VsFTPd的简述: VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD 设计的出发点就是安全性。同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。除了安全和性能方面很优秀的外,还有很好的易用性。Red Hat公司在自己的FTP服务器(https://www.360docs.net/doc/c117367001.html,)上就使用了vsFTPd 二,企业Linux下vsFTPD实战方案 要求: 1. 用户:netseek_com;FTP:https://www.360docs.net/doc/c117367001.html,(19 2.168.0.21,我已经配置好了相关的DNS) 2. 禁止匿名登陆,禁止用户离开用户目录 3. 命令通道端口使用5021,数据通道端口使用5020(你可以改成你想设置的端口如1021,1020) 4. 允许使用被动模式使用端口范围为10010~10020. 5. 用户带宽设置为200kps;用户空间大小限制为300M,允许宽限期限内有10MB 的缓冲 具体操作步骤如下: 为了更完全的描述安装全过程,我在我的另一台主机(netseek)上进行配置,在台机IP:192.168.0.20上绑定了192.168.0.21,也配置好了相关的DNS解析,在这里我就不多说了请参照”Linux全能web服务器架设”。 1.配置相关服务 启动服务: [root@netseek root]# #rpm –qa | grep vsftpd ;查看是否安装vsftpd服务 #/etc/init.d/vsftpd start ;启动服务 #chkconfig vsftpd on ;让系统服务随着系统启动而启动 配置相关文档: #vi /etc/vsftpd/vsftpd.conf 禁止匿名用户访问: anonymous_enable=YES,将YES改为NO 在文件末尾加如下的设置: # new added by netseek listen_port=5021 ;命令通道端口,默认为21 listen_data_port=5020 ;数据通道端口,默认为20 pasv_enable=YES ;允许被动模式 pasv_min_port=10000 ;被动模式使用端口范围 pasv_max_port=10010 local_max_rate=200000 ;用户宽带限制 chroot_local_user=YES ;禁用户离开主目录

VSFTP搭建 配置文件详解 实例

关于VSFTP vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“Very Secure”的缩写,可见它的最大优点就是安全,除此之外,它还具有体积小,可定制强,效率高的优点。 它可运行在Linux、Solaris等系统中,支持很多其他的FTP 服务器不支持的特征: 非常高的安全性需求: 带宽限制 良好的可伸缩性 创建虚拟用户的可能性 分配虚拟IP地址的可能性: 一、安装vsftpd服务 在进行安装该服务之前,必须现将linux的环境装好才行: [root@testtimeslinux root]# rpm -qa|grep vsftpd//查看是否已经安装了该软件 vsftpd-1.2.0-4 [root@testtimeslinux root]# rpm -e vsftpd-1.2.0-4//卸载已经安装的软件 warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave [root@testtimeslinux root]# [root@testtimeslinux root]# rpm -qa|grep vsftpd //再次查看是否完全卸载 [root@testtimeslinux /]# cd /mnt [root@testtimeslinux /]# mkdir cdrom [root@testtimeslinux /]# mount /dev/cdrom /mnt/cdrom//在根目录下进行挂载 mount: block device dev/cdrom is write-protected, mounting read-only 在Linux系统中,如果要使用硬盘、光盘、软盘或MO盘等存储设备,必须先进行挂装(Mount)。当存储设备挂装完成之后,就可以将其作为一个目录来进行访问了。挂装设备需要使用mount命令。执行这一命令,至少要先确定下列三种信息: 1. 要挂装(Mount)对象的文件系统类型; 2. 要挂装(Mount)对象的设备名称(/dev/...); 3. 要将设备挂装(Mount)到哪一目录。 [root@testtimeslinux /]# cd /mnt/cdrom/package [root@testti meslinux…]# rpm -ivh vsftpd-2.2.2-6.el6_0.1.i686.rpm //进行安装vsftpd-2.2.2-6.el6_0.1.i686.rpm,此操作相当于window下的双击setup文件。信息如下: warning: vsftpd-2.2.2-6.el6_0.1.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:vsftpd ########################################### [100%] [root@testtimeslinux RPMS]# rpm -aq|grep vsftpd //查看是否安装vsftpd vsftpd-2.2.2-6.el6_0.1.i686 [root@testtimeslinux RPMS]# cd / [root@testtimeslinux /]# umount mnt/cdrom//退出挂载 [root@testtimeslinux /]# service vsftpd start//启动vsftpd 服务 为vsftpd 启动vsftpd:[ 确定]

超详细linux vsftpd配置大全文档

FTP服务的配置 ftp服务器的软件——vsftpd,其全称是“Very Secure FTP Daemon”。Vsftpd的配置文件在/etc/vsftpd/目录下 1 ftpusers PAM模块 /etc/pam.d/vsftpd 所指定的那个无法登录的用户配置文件。 2 user_list 默认的情况下,写在这个文件里帐号都不允许登录vsftpd,它能否生效与vsftpd.conf中的参数userlist_enable 、userlist_deny有关。 本地用户管理: 1)selinux布尔值ftp_home_dir 改为on, setsebool -P ftp_home_dir on 2)配置文件vsftpd.conf中的local_enable=YES,即默认设置 此时,这些实体用户能可以离开他们默认的目录即/home/~,如果需要将实体用户限制在他们的默认目录下,不允许他们到其他目录需要进行一下设置: Chroot_local_user=NO,(默认此行被注释,即不启动),修改这行下面的参数 Chroot_list_enable=YES和chroot_list_file=/etc/vsftpd/chroot_list,然后 在/etc/vsftpd/目录下创建chroot_list文件,将需要限制离开默认目录的实体用户的名字写进去。 修改user_list_enable=YES user_deny=YES,则可将不允许登录的用户写入/vsftpd目录下的user_list。 实体用户能上传、下载、删除默认目录下的文件。 修改默认发布目录 1)建立发布目录。mkdir -p /share/doc 2)修改发布目录权限、属主和selinux安全上下文。

linux下FTP服务器安装配置(VSftp)

环境: RedHat AS4 说明: 如果不做说明,一般安装命令均使用ROOT权限,用 # 表示 特别说明:无 以下文章介绍Liunx 环境下vsftpd的三种实现方法 一、前言 Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的 FTP服务器,目前已经被许多大型站点所采用 Vsftpd的实现有三种方式 1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问 2、本地用户形式:以/etc/passwd中的用户名为认证方式 3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服 务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器 的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增 强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密 码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。 对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对 下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说, 虚拟用户是一种极好的解决方案。

默认情况下vsftp上传之后文件的权限是600,目录权限是700 想要修改上传之后文件的权限,有两种情况 如果使用vsftp的是本地用户 则要修改配置文件中的 local_umask的值 如果使用vsftp的是虚拟用户 则要修改配置文件中的 anon_umask的值 二、vsftp配置大全-三种方式的实现 1、匿名用户形式: 任务实现匿名用户上传,下载,删除,重命名,新建目录,删除目录,重命名目录; 第一步:在/var/ftp/下,新建一个目录share; chmod –R 777 /var/ftp/share/ chown –R nobody:nobody /var/ftp/share/ 第二步:更改/etc/vsftpd/vsftpd.conf anonymous_enable=YES local_enable=YES

RedHat 配置与安装vsftp服务

RedHat 配置与安装vsftp服务 (综合他人和自己实践所得,若有冲突还请见谅) 1. vsftp要求功能: a) 不允许匿名登录,只允许特定用户登录 b) 文件上传到指定目录,不允许进入其它目录 2. 在RedHat下安装ftp rpm -qavsftpd #查询是否已安装vsftpd服务,若没有则安装 方式一:找到rpm包安装:rpm -ivhvsftpd.*****.rpm 方式二:搭建yum本地光盘源安装:yum install vsftp 3. 手动配置ftp 的配置文件:/etc/vsftpd/vsftpd.conf vsftp的/etc/vsftp/vsftp.conf相关默认设置 anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES 自己设置(和默认的差不多,有的默认的没打开则打开,已经打开的按需求修改属性) anonymous_enable=NO #禁止匿名用户登录 local_enable=YES#允许本地实体用户登录 write_enable=YES #允许用户上传数据 local_umask=022 #建立新目录(755)与文件(644)的权限 dirmessage_enable=YES#若登录目录下有.message则会显示该文件内容可以自己在登录目录下创建.message文

Linux下vsftp配置笔记!!!

这些咚咚只是我在看书时记录下来的一些简单的配置命令和说明,有些地方也许写的不是很详细,大家可以在参考其他资料来学习! 1.vsftpd 服务软件包 vsftpd-2.0.5-10.el5.i386.rpm:vsftpd 主程序包 2.vsftpd 相关文档 /etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件 /etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器 /etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件 /etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本/var/ftp/:默认情况下匿名用户的根目录 (1)配置vsftpd.conf 主配置文件(服务器配置支持上传) 允许匿名用户访问 anonymous_enable=YES 允许匿名用户上传文件并可以创建目录 anon_upload_enable=YES anon_mkdir_write_enable=YES 大家注意,默认匿名用户家目录的权限是755,这个权限是不能改变的。切记!切记!! 2FTP 常规配置应用案例: 需求: 公司内部现在有一台FTP和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等等哈~公司现有两个部门负责维护任务,他们分别适用team1和team2帐号进行管理。先要求仅允许team1和team2 帐号登录FTP 服务器,但不能登录本地系统,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。 分析: 将FTP和WEB服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1和team2 锁定在/var/www/html目录下。如果需要删除文件则还需要注意本地权限~ 解决方案: (1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码useradd -s /sbin/nologin 用户名 (2)配置vsftpd.conf 主配置文件并作相应修改 vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO:禁止匿名用户登录

linux下配置vsftp(初级笔记)

linux下配置vsftp(初级笔记) 因为要往linux上传东西,所以弄了一下vsftp,上网找了很多的教程,但感觉好多地方没有写到。根据我自己的配置经验来写一下。高级的应用因为我不太会用到,暂时我就不写了,等有时间有需要的时候我再补充。 环境是vm5下的redhat linux as3安装的时候我就把vsftp安装好了。 配置文件是/etc/vsftpd/vsftpd.conf按如下编辑此文件,编辑文件当然用vi了 注意以下配置中的Anonymous_enable=yes的第一个字母有的版本里面是小写,就要改正过来 1)实现匿名用户的上传下载文件 程序代码: Anonymous_enable=yes匿名登陆 Connect_form_port_20=yes启用FTP数据端口的数据连接 Pam_service_name=vsftpd验证方式 Listen=yes独立的VSFTPD服务器 这样你就可以实现匿名登陆ftp了,但还不能上传文件 程序代码: Anon_upload_enable=yes开放上传权限 Anon_mkdir_write_enable=yes可创建目录的同时可以在此目录中上传文件 Write_enable=yes开放本地用户写的权限 Anon_other_write_enable=yes匿名帐号可以有删除的权限 加上上面的这段,你就可以实现匿名ftp的上传下载文件了 然后你保存文件,用service vsftpd start来启动vsftp的服务,然后就可以用ftp了 注意:确定你的防火墙iptables上打开21端口,不然在登陆ftp的时候会提示socket错误,拒绝连接。还有就是当你再次编辑vsftp.conf后用service vsftpd restart重起的时候总是提示你不能关闭vsftp服务,这时候你用service vsftpd status察看一下他的状态,如果提示你vsftpd 被locked那可能是因为你的vsftpd.conf中配置的有错误,你要重新编辑他,直到能正常重起他为止,一次配置不对,多配置几次就好了 2)实现本地用户上传下载 程序代码: 新建一个用户 adduser用户名增加一个用户

中标麒麟下sambat和vsftp配置

中标麒麟自带samba和vsftpd服务器配置 Samba服务器配置: 1.在控制中心打开samba配置界面—》首选项-》添加samba用户 2.在samba配置界面点击加号来添加共享 3.重启smb和nmb服务service smb/nmb restart vsftpd服务器配置: 查看系统有没有安装vsftpd : rpm –qa|grep vsftpd 如果有结果返回则已经安装。Servicee vsftpd start Chkconfig vsftpd on 禁用匿名用户 Vi /etc/vsftpd/vsftpd.conf 将“anonymous_enable=NO” 添加虚拟用户 Useradd –s /sbin/nologin -d /目录路径用户名 Chown –R 用户名:用户名/用户路径(注:将用户目录及子目录的所有和所属的组设置为用户)

我应该在vsftpd.conf中加上如下的两行: max_clients=100 max_per_ip=5 如何限制传输速度? anon_max_rate=数字 注:这是匿名的速度 local_max_rate=数字 注:这是vsFTP服务器上本地用户的速度 注:这个数字的单位是byte,所以我们要计算一下。 比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是 1024×80=81920 所以我们要在vsftpd.conf中加入下面的两行 anon_max_rate=81920 local_max_rate=81920 下面是一些常用的命令: 管理用户组(group)的工具或命令; groupadd 注:添加用户组; groupdel 注:删除用户组; groupmod 注:修改用户组信息 grou ps注:显示用户所属的用户组 用户管理命令 useradd 注:添加用户 userdel 注:删除用户 adduser 注:添加用户 passwd 注:为用户设置密码 usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;

VSFTP配置说明

VSFTP配置说明 文档作者:黎芝维日期:2012-9-7 PDT经理:日期:2012-9-7 审核:日期: 批准:日期: 市风向标信息技术所有 部资料注意

目录 1. Vsftp简介 (3) 2. Vsftp安装配置 (3) 2.1 实验环境 (3) 2.2 安装vsftp (3) 2.2.1 检查vsftp是否已安装 (3) 2.2.2 安装vsftp (3) 3. Vsftp基本操作 (4) 3.1 启动、停止、重启vsftpd (4) 3.2 其它操作 (5) 4. Vsftp相关配置文件说明 (5) 5. vsftpd.conf配置详解 (6) 5.1 匿名用户相关设置 (6) 5.2 FTP服务端口的指定 (7) 5.3 上传模式的设置 (7) 5.4 Vsftp服务器指定IP地址 (7) 5.5 锁定用户,禁止用户离开用户主目录 (7) 5.6 用户访问目录设置 (8) 5.7 FTP服务器的流量控制 (9) 5.8 定制欢迎信息设置 (9) 5.9 本地用户权限设置 (10) 5.10 ascii设置 (10) 5.11 特殊安全设置 (11) 5.12 日志文件设置 (11) 5.13 超时时间设置 (12) 5.14 新增档案权限设置 (12) 5.15 Port设置 (13) 5.16 更换档案权限 (13) 5.17 Standalone选项 (13) 5.18 IPV6设置 (14) 5.19 其它配置项 (14)

1.Vsftp简介 VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD设计的出发点就是安全性。同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。除了安全和性能方面很优秀的外,还有很好的易用性。Red Hat公司在自己的FTP服务器(ftp.redhat.)上就使用了vsFTPd。 2.Vsftp安装配置 2.1实验环境 OS版本:Red Hat Enterprise Linux Server release 5.1。 2.2安装vsftp 2.2.1检查vsftp是否已安装 2.2.2安装vsftp 第一步,从官方(https://www.360docs.net/doc/c117367001.html,)下载vsftp安装包,或者从RedHat 5安装盘里获得vsftp 安装包。

vsftp编译安装方法及问题解决方法

Linux Vsftp 编译安装方案 1.上传tar包 以vsftpd-2.3.5.tar.gz 为例。 2.解压tar包 执行命令解压文件 # tar -xzvf vsftpd-2.3.5.tar.gz 3.执行编译和安装操作(make && make install) 3.1进入解压的文件 # cd /root/vsftpd-2.3.5 3.2 编译 #make 常见问题:/usr/bin/ld: cannot find -lcap 解决办法:由于缺少-l 后的文件cap(一般是库文件libcap.so)或者文件存在软连接指向错误,所以需要重新指向。 可以通过查看解压文件下的Makefile 文件和vsf_findlibs.sh 文件确定文件位置。 这里可以查看vsf_findlibs.sh。 #vim vsf_findlibs.sh 然后在文件中找到lcap的位置/lcap 发现需要libcap.so文件。 接着我们确定该文件的位置: 执行命令: #locate libcap.so

这里存在两个,/lib64/libcap.so.2和/lib64/libcap.so.2.16,通过查看文件具体信息: #ll /lib64/ |grep libcap.so 发现libcap.so.2.16才是源文件,libcap.so.2是一个软链接。 由于缺少libcap.so,所以创建libcap.so的软链接,指向之前的源文件libcap.so.2.16。格式为:#ln 源文件软链接文件名 因此就有:#ln libcap.so.2.16 libcap.so 然后执行命令#ll /lib64/ |grep libcap.so 看到就有: 3.3 安装make install 这时候发现需要将vsftpd.conf文件复制到/etc目录下,否则会找不到这个配置文件的。#cp vsftpd.conf /etc 否则会报如下错: 启动vsftp #/usr/local/sbin/vsftpd /etc/vsftpd.conf 运行的时候后面加上vsftpd.conf文件,里面的listen=YES 查看版本信息:

vsFtp参数设置大全

vsftpd设置参数详细整理篇(应该比较全了)? -------------------------------------------------------------------------------- 坛子里参数设置的帖子很多,但没有一个全,现在大部分的兄弟熟悉了基本的设置,于是我想把所有的参数都重新整理一下,一来自己回顾一下,二来也可以让新手们有一个参考资料,其中有一些选项自己也不是很理解,错误之处还请各位斑竹和高手指点批改.如果还有遗漏的也请一并补上,谢啦. 也希望把所有vsftpd的设置相关信息贴在下面大家都有一个共同参考的地方. ###############################用户登陆控制########################### #接受匿名用户 anonymous_enable=YES #匿名用户login时不询问口令 no_anon_password=YES #匿名用户主目录 anon_root=(none) #接受本地用户 local_enable=YES #本地用户主目录 local_root=(none) #如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录deny_email_enable=YES #仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 check_shell=YES #若启用此选项,userlist_deny选项才被启动 userlist_enable=YES #若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录userlist_deny=NO #如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下) passwd_chroot_enable=NO #定义匿名登入的使用者名称。默认值为ftp。 ftp_username=FTP ###############################用户权限控制########################### #可以上传(全局控制).

vsftp服务器配置winows版

1开始配置/etc/vsftpd/vsftpdconf文件 在后面加 local_enable=yes write_enable=yes local_umask=022 anonymous_enable=yes anon_upload_enable=yes anon_mkdir_write_enable=yes anon_umask=022 virtual_use_local_privs=YES /*虚拟用户拥有本地系统权限*/ local_root=/var/ftp 保存 2.打开终端 输入执行一下命令 # chmod -R 777 /var/ftp # setsebool -P allow_ftpd_anon_write on /*匿名上传*/ # setsebool -P ftpd_disable_trans on /*禁用ftp传输审核*/ 3.重启vsftp服务器 4.尝试进入服务 打开终端 ftp ftp.****https://www.360docs.net/doc/c117367001.html, ftp /*用户名*/ 密码 ls mkdir文件名 /*创建文件目录*/ rmdir文件名 /*移除文件目录*/ 上传文件命令 put 回车 所要上传的本地文件路径回车 所要上传到的文件路径回车 理论上就那么多东西应该可以了 这些是我做的时候参考的文章:https://www.360docs.net/doc/c117367001.html,/blog/850568 https://www.360docs.net/doc/c117367001.html,/s/blog_44a82be2010103gh.html https://www.360docs.net/doc/c117367001.html,/wocjj/article/details/7418944

Linux下vsftp配置大全

Linux下vsftp配置大全 一、前言 Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如https://www.360docs.net/doc/c117367001.html,,https://www.360docs.net/doc/c117367001.html,,https://www.360docs.net/doc/c117367001.html,.等。Vsftpd的实现有三种方式 1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问 2、本地用户形式:以/etc/passwd中的用户名为认证方式 3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP 站点来说,虚拟用户是一种极好的解决方案。 二、获取最新版的Vsftp程序 Vsftp官方下载:ftp://https://www.360docs.net/doc/c117367001.html,/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录 # cd /home/xuchen # tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序 # cd vsftpd-2.0.3 三、三种方式的实现 1、匿名用户形式实现 # vi builddefs.h \\编辑builddefs.h 文件,文件内容如下: #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #undef VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #undef VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL # make //直接在vsftpd-2.0.3里用make编译 # ls -l vsftpd -rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功 创建必要的帐号,目录: # useradd nobody //可能你的系统已经存在此帐号,那就不用建立 # mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立

vsftp安装手册

FTP 配置文档 1.VSFTP 配置说明 1).vsftp 程序安装,将安装程序放至/home目录下 # rpm -qa | grep vsftpd #查看是否安装了vsftp # rpm -e vsftpd #如果安装了,先卸载 # rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm #安装vsftp # rpm -qa | grep vsftpd #查看是否安装成功 如显示如下信息,则说明安装成功。 2)用vsftpd.conf替换/etc/vsftpd目录下的vsftpd.conf文件后,执行service vsftpd restart重启vsftp服务 3)vsftp 用户配置及访问权限设置 # cd /etc/vsftpd # groupadd amstest # 添加FTP用户分组 #home下先创建一个ftp文件夹 #mkdir /home/ftp/ # useradd -g amstest -d /home/ftp -M suma # chmod -R 777 /home/ftp # 添加FTP目录读写权限 # passwd suma # 输入suma1的密码,比如123 C3%eC3%mH8h

d. vsftpd 系统配置及权限设置 # getsebool -a | grep ftp allow_ftpd_anon_write --> off # 要保证黄色项为on 状态 allow_ftpd_full_access --> on allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> on ftpd_connect_db --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> off # setsebool -P allow_ftpd_full_access on # setsebool -P ftp_home_dir on e. vsftpd 服务重启 # service vsftpd restart 至此VSFTP服务器配置完毕,用户suma可以登陆访问。

vsftpd配置参数详细整理

vsftpd配置参数详细整理 1、vsftpd配置参数详细整理 #接受匿名用户 anonymous_enable=YES #匿名用户login时不询问口令 no_anon_password=YES #匿名用户主目录 anon_root=(none) #接受本地用户 local_enable=YES #本地用户主目录 local_root=(none) #如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的 用户不能登录 deny_email_enable=YES #仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 check_shell=YES #若启用此选项,userlist_deny选项才被启动 userlist_enable=YES #若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file 的用户可以登录 userlist_deny=NO #如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下) passwd_chroot_enable=NO #定义匿名登入的使用者名称。默认值为ftp。 ftp_username=FTP #################用户权限控制############### #可以上传(全局控制). write_enable=YES #本地用户上传文件的umask local_umask=022 #上传文件的权限配合umask使用 #file_open_mode=0666 #匿名用户可以上传 anon_upload_enable=NO #匿名用户可以建目录 anon_mkdir_write_enable=NO 匿名用户其它的写权利(更改权限?) anon_other_write_enable=NO 如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。 anon_world_readable_only=YES #如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的

Linux下vsftp配置大全

一、前言 Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如https://www.360docs.net/doc/c117367001.html,,https://www.360docs.net/doc/c117367001.html,,https://www.360docs.net/doc/c117367001.html,.等。Vsftpd的实现有三种方式 1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问 2、本地用户形式:以/etc/passwd中的用户名为认证方式 3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。 二、获取最新版的Vsftp程序 Vsftp官方下载:ftp://https://www.360docs.net/doc/c117367001.html,/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录 # cd /home/xuchen # tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序 # cd vsftpd-2.0.3 三、三种方式的实现 1、匿名用户形式实现 # vi builddefs.h \\编辑builddefs.h 文件,文件内容如下: #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #undef VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #undef VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL # make //直接在vsftpd-2.0.3里用make编译 # ls -l vsftpd -rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功 创建必要的帐号,目录: # useradd nobody //可能你的系统已经存在此帐号,那就不用建立 # mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立 # mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立 # useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上

相关文档
最新文档