当前位置:文档之家› Linux下FTP服务器vsftp配置大全超完整版

Linux下FTP服务器vsftp配置大全超完整版

Linux下FTP服务器vsftp配置大全超完整版
Linux下FTP服务器vsftp配置大全超完整版

Linux下FTP服务器vsftp配置大全超完整版

收藏

环境:

RedHat AS4

说明:

如果不做说明,一般安装命令均使用ROOT权限,用# 表示

特别说明:无

以下文章介绍Liunx 环境下vsftpd的三种实现方法

ftp://https://www.doczj.com/doc/9817536606.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/nolog in,比如以上的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 $1}\'`-A | grep vsftpd-ano | awk \'{print

$a kill -9

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

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.doczj.com/doc/9817536606.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/nolog

in,比如以上的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

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

$a kill -9

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

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.doczj.com/doc/9817536606.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.doczj.com/doc/9817536606.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/nolog

in,比如以上的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.doczj.com/doc/9817536606.html,er to ftpd@localhost identified by \'123456\';

mysql>flush privileges; 刷新权限设置

mysql>quit

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

下载地址如下:

https://www.doczj.com/doc/9817536606.html,/s ... am_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=localhos t db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0

account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=local host 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中根分区的记录,将/h

ome分区的第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

#匿名用户主目录

Linux系统vsftpd安装及设置步骤

1.安装 1. 在要创建FTP的服务器上输入命令: ps -ef |grep vsftpd 查一下系统有没有安装vsftpd这个服务器,如果出现如下图所示的界面说明已经安装,否则没有。 2. 然后再执行:yum install vsftpd -y 进行在线安装vsftpd 服务。 如上图看到Complete! ,表示安装完成。 3. 安装成功以后需要把匿名登陆的这个功能关闭了。 使用命令:vim /etc/vsftpd/vsftpd.conf 然后在里面找到: anonymous_enable=YES,改成anonymous_enable=NO 4. 然后再查看一下vsftpd这个服务有没有启动。 使用命令:chkconfig --list 如果如下图所示表示没有启动。

使用以下命令启动:chkconfig --level 35 vsftpd on 5. 用客户端连接ftp后提示500 OOPS:cannot change directory: /home/xxx 问题很奇怪,百度了一下,发现可能是由于启用了SELinux引起的问题 输入命令:vi /etc/sysconfig/selinux 将SELINUX=enforcing 修改为SELINUX=disabled,关闭SELINUX后, 重新启动机器,问题解决。 6. 再接下来就是创建用户名。创建用户名:useradd jiuyang123 useradd -d /home/... -s /sbin/nologin myusername# /home/... 替换为你想让该用户访问到的路径# myusername 替换为你自己取的用户名 #/sbin/nologin意思是用户不允许登录(通过ftp可以连接) 7. 再然后就是创建密码。命令:passwd jiuyang123 再输入两次密码就可以了。 8.更改目录的所有者 chmod -R 755 /home/... 1.登录FTP 1. 关闭防火墙:/etc/init.d/iptables stop 1.重启服务:setsebool ftpd_disable_trans 1 # setsebool -P ftpd_disable_trans 1 #关闭SELINUX对ftpd的保护 /sbin/service vsftpd restart 注意上一阶段第5步,将SELINUX中关于ftp服务传输控制的默认设置修改后再将vsftp服务重新启动一下

Linux安装ftp组件

Linux安装ftp组件 Linux安装ftp组件 1安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。 [root@bogon ~]# yum -y install vsftpd 2添加一个ftp用户 此用户就是用来登录ftp服务器用的。 [root@bogon ~]# useradd ftpuser 这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser. 3给ftp用户添加密码。 [root@bogon ~]# passwd ftpuser 输入两次密码后修改密码。 4防火墙开启21端口 因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件 [root@bogon ~]# vim /etc/sysconfig/iptables 在行上面有22 -j ACCEPT 下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。 还要运行下,重启iptables [root@bogon ~]# service iptables restart 5修改selinux 外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。 修改selinux: 执行以下命令查看状态: [root@bogon ~]# getsebool -a | grep ftp allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off

Linux下VsFTP配置全方案

Linux下VsFTP配置全方案 纲要: 一,VsFTPd的简述 二,企业Linux下vsFTPD方案 三,VsFTPD相关配置文件详解 一,VsFTPd的简述: VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD 设计的出发点就是安全性。同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。除了安全和性能方面很优秀的外,还有很好的易用性。Red Hat公司在自己的FTP服务器(https://www.doczj.com/doc/9817536606.html,)上就使用了vsFTPd 二,企业Linux下vsFTPD实战方案 要求: 1. 用户:netseek_com;FTP:https://www.doczj.com/doc/9817536606.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配置文件详解

# 是否允许匿名登录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目录下

杨海艳-主讲-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全攻略--FTP服务器配置与管理

Linux全攻略--FTP服务器配置与管理 版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OS I模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立连接前就要经过一个"三次握手"的过程.FTP服务还有一个非常重要的特点是它可以独立于平台. LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterpri se Linux中默认安装的是vsftpd. 通常,访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件. vsftpd提供了3种ftp登录形式: (1)anonymous(匿名帐号) 使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以a nonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能. (2)real(真实帐号) real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建. (3)guest(虚拟帐号) 如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容. 下面就对其详细介绍. 一.安装与启动vsftpd 先使用命令查看是否安装. 可看到安装了版本为2.0.1.如果没有安装可在桌面上选择"应用程序"/"系统设置"添加/删除应用程序"命令.来安装FTP软件包. 安装和配置好vsftpd软件包后,需要启动FTP服务器才能使用.启动方法有以下两种: 1.使用图形化方式启动,选择"应用程序"/系统设置/服务器设置/服务.可看到vsftpd,打上勾,开始启动. 2.在终端窗口用命令进行启动.

linux vsftp安全配置

Linux vsftp安全配置 FTP服务器面临的安全隐患 FTP服务器面临的安全隐患主要包括:缓冲区溢出攻击、数据嗅探、匿名访问缺陷和访问漏洞。 VSFtp一些安全配置: 1. 修改Vsftpd服务器的默认端口和修改其他设置 基于安全考虑,将预设的21端口改为2123。修改配置文件/etc/vsftpd/,在文件最后增加如下一行内容: listen_port=2123 ftp_data_port=2020 在实际应用中,为了增加安全性,会将FTP服务器置于防火墙之后。修改Vsftpd 服务器的默认端口后要及时修改防火墙的端口设定。现在服务器FTP端口为2123,数据传输端口为2020。 #iptables -A INPUT -p tcp -m multiport --dport 2123,2020 -j ACCEPT #iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset 修改其他设置 ls_recurse_enable=NO #关闭“ls -R"命令,该命令常被用于DoS攻击,非常浪费系统资源# ascii_download_enable=NO #关闭ASCII模式下载,防止被用于DoS 攻击,ASCII下载很消耗CPU负担 2.使用BlockHosts软件防范暴力破解 BlockHosts软件就是利用通过分析日志文件帮助tcp_wrappers实现工作自动化。例如在30秒钟内一个IP地址()连续30次登录sshd服务器而且全部因为密码错误登录失败。那么这个IP地址无疑是非法或者恶意主机。这时BlockHosts 会自动将该IP地址写入/etc/文件。首先编辑你的/etc/文件,一般修改 security.* /var/log/security条目内容如下: security.*; /var/log/security

linux FTP(VSFTP)架构配置详细教程

1、vsftpd安装 [root@linux01 ~]# mkdir /media/cdrom [root@linux01 ~]# mount -t iso9660 /dev/cdrom /media/cdrom # 挂载镜像 mount: block device /dev/cdrom is write-protected, mounting read-only [root@linux01 ~]# cd /media/cdrom/Server # 进入软件包目录 [root@linux01 Server]# [root@linux01 Server]# rpm -qa | grep ^vsftpd # 查询相关已经安装的软件包 [root@linux01 Server]# ls | grep vsftpd* # 查询当前路径下安装包 vsftpd-2.0.5-12.el5.i386.rpm [root@linux01 Server]# rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm # 安装软件包i安装v输出详细信息h进度 warning: vsftpd-2.0.5-12.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:vsftpd ########################################### [100%] [root@linux01 Server]# rpm -qa | grep ^vsftpd # 再次查询相关已经安装的软件包 vsftpd-2.0.5-12.el5 [root@linux01 Server]#cd [root@linux01 ~]# rpm -ql vsftpd | grep etc # 查询etc中与vsftpd相关的文件 /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /etc/rc.d/init.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh [root@linux01 ~]# 2、、/etc/vsftpd/vsftpd.conf文件配置 [root@linux01 Server]# cat /etc/vsftp/vsftpd.conf # 读取原文,默认配置 cat: /etc/vsftp/vsftpd.conf: No such file or directory [root@linux01 Server]# cat /etc/vsftpd/vsftpd.conf # Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options.

Linux搭建FTP服务器(虚拟用户配置文件)

Linux搭建FTP服务器(虚拟用户配置文件) 先行关闭防火墙,或者打开端口 1、建立虚拟用户口令库文件 口令库文件中奇数行设置用户名,偶数行设置口令 # vi /etc/vsftpd/logins.tx t zhangwenbo -用户名 123 --密码 test --用户名 123 --密码 ftp 123 2、生成vsftpd的认证文件 # db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db 注:如果没有db_load命令,请安装db4*相关rpm包。 # chmod 600 /etc/vsftpd/vsftpd_login.db --设置认证文件只对用户可读可写 3、建立虚拟用户所需的PAM配置文件 # vi /etc/pam.d/vsftpd 添加一下内容 auth required /lib(32位的)/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib(32位的)/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 注意:以上2行中最后的2个文件名vsftpd_login和第2个步骤中的数据库名字必须一致! 4、建立虚拟用户所要访问的目录并设置相应权限 # mkdir /var/ftp/pub/FTP--创建FTP工作目录 # useradd -d /var/ftp/pub/FTP -s /sbin/nolog virtual (用户名) --用于映射到本地的用户 # chown virtual:virtual/var/ftp/pub/FTP --FTP文件夹所属virtual用户 # chmod 700 /var/ftp/pub/FTP --权限可读可写 5、设置vi /etc/vsftpd/vsftpd.conf 配置文件 首先关闭匿名用户anonymous_enable=YE改为NO 或者在前边加#,在末尾添加:

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下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

超详细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下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:禁止匿名用户登录

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下安装FTP

1. Linux下安装ftp 说明:要想完成以下所有操作,首先必须要将vsftp和ftp都安装。 1.1. 检查linux系统是否已经安装了vsftp 使用命令:rpm -qa|grepvsftp 1.2. 在yum源上查看可供下载的软件包 使用命令:yum list vsftpd 1.3. 安装vsftpd软件 使用命令:yum install vsftpd.i686

1.4. 启动vsftpd服务,并在启动后搜索该进程是否成功启动 使用命令:#service vsftpd start # ps–ef | grepvsftpd 1.5. 查看ftp默认的监听端口21是否已经处于监听状态 使用命令:#netstat–pan | grep:21 执行命令后可以看到21端口已经由vsftpd这个进程监听了。 1.6. 服务启动失败的解决方法 1)服务失败: 2)停止服务后查看服务状态: 3)重启服务并查看是否已开始监听服务:

说明:在编写该文档的时候,一开始只是安装了vsftpd,所以用ftp匿名登录的时候一直都 登不上去,后来又安装了ftp才能够正常的用ftp匿名用户以及空密码成功登录。 1.7. 匿名用户登录ftp 使用命令:ftp localhost或ftp 127.0.0.1登录 用户名ftp 密码:空 1.8. 退出ftp 用bye 或quit命令退出ftp 1.9. 为ftp创建一个新用户 1)使用命令:#useraddtestftp #passwdtestftp

2)用新用户登录ftp 使用命令:# ftplocalhost 1.10. 如果用户登录失败 使用命令:#setseboolftp_home_dir=1 #service vsftpd status # servicevsftpd restart

Linux下如何安装vsftpd服务器

Linux下如何安装vsftpd服务器 导读:vsftpd服务器最大的特点就是够安全,可在Linux系统上运行,是ftp 服务器软件,下面小编就给大家介绍下如何在Linux下安装vsftpd服务器。 我们所用的ftp服务器程序是vsftpd,算是Linux下最受欢迎的一个开源FTP 服务器了。 安装vsftpd服务器程序 Linux传统安装软件的方法是下载tar.gz安装包,或者RPM安装包,经过解压之后进行编译,或者用RPM -i命令安装。过程比较繁琐,我们用yum命令来在线安装,这样可以自动选择最新的程序版本,非常方便。 输入yum install vsftpd 最后按y确认安装。当出现“Complete!”时意味着安装完成。 接着输入chkconfig vsftpd on service vsftpd start 将vsftpd设置为开机启动,并启动vsftpd服务。 修改vsftpd配置文件 vsftpd的配置文件默认位置在:/etc/vsftpd/vsftpd.conf,通常情况下需要先备份一份原始的配置文件,然后再编辑,具体步骤如下: 输入mv vsftpd.conf vsftpd.conf-old 将vsftpd.conf文件改名为vsftpd.conf-old 备份,输入vi /etc/vsftpd/vsftpd.conf 新建并编辑vsftpd.conf文件。 接上打开新建vsftpd.conf文件,按照如下配置写入: anonymous_enable=NO//禁止匿名用户登录,通常我们web服务器上的ftp 都不允许匿名登录

local_enable=NO//禁止(或允许)本地用户登录 write_enable=YES//赋予可写入权限 chroot_local_user=YES//锁定用户目录,ftp用户登录ftp只能在自己的目录下操作 anon_upload_enable=NO anon_mkdir_write_enable=NO//禁止匿名用户的上传、新建目录权限 dirmessage_enable=YES//允许ftp用户列出文件目录 xferlog_enable=YES//写入日志 connect_from_port_20=YES listen=YES//使用端口20,通常这几项是默认的 pam_service_name=vsftpdpamconf userlist_enable=YES tcp_wrappers=YES//比较重要,指定了pam验证的配置文件 guest_enable=YES//开启虚拟用户 guest_username=apache//指定虚拟用户使用本地用户apache的权限,这项特别重要,web服务器上面的ftp虚拟用户一定要设置成apache权限,否则ftp 上传的文件不能被正常访问,也无法修改网站生成的文件。 user_config_dir=/etc/vsftpd/vuser_conf//虚拟用户的配置文件存放位置 virtual_use_local_privs=YES//虚拟用户使用本地用户权限,这项要有,否则ftp 用户无法更改文件权限 然后保存并退出vi编辑器,执行:service vsftpd restart ,重启vsftpd服务测试配置文件书写是否正确。 添加vsftpd虚拟账户: 我们要进入目录/etc/vsftpd 中建立虚拟用户db库: 输入vi vuservsftpd.txt 新建并编辑文件vuservsftpd.txt,写入你要建立的虚拟用户和密码,单行为用户名双行为密码,注意此不能有空格,如:vuser1 password1 vuser2 password2 建立完成后保存退出,然后通过db命令来生成vsftpd验证需要使用的虚拟用户库文件: db -T -t hash -f vuservsftpd.txt vsftpdpamconf.db//注意db文件名要与vsftpd.conf中设置的pam认证名相同 为了安全可以删掉刚刚新建的vuservsftpd.txt,下次需要添加用户名的时候再新建即可,还可以将vsftpdpamconf.db文件权限设置为644。 添加vsftpd虚拟账户配置文件: 虚拟账户没有对应的配置文件不会生效,1步里面我们在vsftpd.conf文件中确定了虚拟账户的配置文件目录为:/etc/vsftpd/vuser_conf,下面我们进入这个目录工作: 配置文件的命名必须是与虚拟账户名相同,所以我们新建了两个文件:vuser1、vuser2,并根据需要写入如下配置信息: local_root=/var/www/html/demo//设定虚拟用户的更目录,因为我们需要实现每一个网站一个ftp帐号管理,所以他的根目录就是我们需要管理的网站虚拟

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用户名增加一个用户

相关主题
文本预览
相关文档 最新文档