Jianqing's Blog Archive

vsftp安装与设置

vsftp即Very Security FTP,顾名思义,非常安全的FTP服务器。 些文来源于网上,和ubuntu有点不同,启动和关闭如下: 启动:sudo /etc/init.d/vsftpd start 关闭:sudo /etc/init.d/vsftpd stop 重启:/etc/init.d/vsftpd restart 下面是我的配置文件: pjq@pjq-desktop:~$ cat /etc/vsftpd.conf

Example config file /etc/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.

Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd’s

capabilities.

# #

Run standalone? vsftpd can run either from an inetd or as a standalone

daemon started from an initscript.

listen=YES #

Run standalone with IPv6?

Like the listen parameter, except vsftpd will listen on an IPv6 socket

instead of an IPv4 one. This parameter and the listen parameter are #mutually

exclusive.

#listen_ipv6=YES #

Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=YES #

Uncomment this to allow local users to log in.

local_enable=YES #

Uncomment this to enable any form of FTP write command.

write_enable=YES #

Default umask for local users is 077. You may wish to change this to 022,

if your users expect that (022 is used by most other ftpd’s)

local_umask=022 #

Uncomment this to allow the anonymous FTP user to upload files. This only

has an effect if the above global write enable is activated. Also, you will

obviously need to create a directory writable by the FTP user.

anon_upload_enable=YES #

Uncomment this if you want the anonymous FTP user to be able to create

new directories.

#anon_mkdir_write_enable=YES #

Activate directory messages - messages given to remote users when they

go into a certain directory.

dirmessage_enable=YES message_file=.message #

Activate logging of uploads/downloads.

xferlog_enable=YES #

Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES #

If you want, you can arrange for uploaded anonymous files to be owned by

a different user. Note! Using “root” for uploaded files is not

recommended!

#chown_uploads=YES #chown_username=pjq #

You may override where the log file goes if you like. The default is shown

below.

xferlog_file=/var/log/vsftpd.log #

If you want, you can have your log file in standard ftpd xferlog format

xferlog_std_format=YES #

You may change the default value for timing out an idle session.

#idle_session_timeout=600 #

You may change the default value for timing out a data connection.

#data_connection_timeout=120 #

It is recommended that you define on your system a unique user which the

ftp server can use as a totally isolated and unprivileged user.

#nopriv_user=ftpsecure #

Enable this and the server will recognise asynchronous ABOR requests. Not

recommended for security (the code is non-trivial). Not enabling it,

however, may confuse older FTP clients.

#async_abor_enable=YES #

By default the server will pretend to allow ASCII mode but in fact ignore

the request. Turn on the below options to have the server actually do ASCII

mangling on files when in ASCII mode.

Beware that on some FTP servers, ASCII support allows a denial of service

attack (DoS) via the command “SIZE /big/file” in ASCII mode. vsftpd

predicted this attack and has always been safe, reporting the size of the

raw file.

ASCII mangling is a horrible feature of the protocol.

#ascii_upload_enable=YES #ascii_download_enable=YES #

You may fully customise the login banner string:

ftpd_banner=Welcome to peng FTP service. #

You may specify a file of disallowed anonymous e-mail addresses. Apparently

useful for combatting certain DoS attacks.

#deny_email_enable=YES

(default follows)

#banned_email_file=/etc/vsftpd.banned_emails #

You may restrict local users to their home directories. See the FAQ for

the possible risks in this before using chroot_local_user or

chroot_list_enable below.

chroot_local_user=NO #

You may specify an explicit list of local users to chroot() to their home

directory. If chroot_local_user is YES, then this list becomes a list of

users to NOT chroot().

chroot_list_enable=YES

(default follows)

chroot_list_file=/etc/vsftpd.chroot_list #

You may activate the “-R” option to the builtin ls. This is disabled by

default to avoid remote users being able to cause excessive I/O on large

sites. However, some broken FTP clients such as “ncftp” and “mirror” assume

the presence of the “-R” option, so there is a strong case for enabling it.

ls_recurse_enable=YES # #

Debian customization

#

Some of vsftpd’s settings don’t fit the Debian filesystem layout by

default. These settings are more Debian-friendly.

#

This option should be the name of a directory which is empty. Also, the

directory should not be writable by the ftp user. This directory is used

as a secure chroot() jail at times vsftpd does not require filesystem

access.

#secure_chroot_dir=/var/run/vsftpd anon_root=/var/ftp/ #

This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd #

This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

This option specifies the location of the RSA key to use for SSL

encrypted connections.

#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #charset_filter_enable=YES #charset_client=GB2312 #charset_server=GBK

目录 1 vsFTP服务器的安装

1.1 匿名服务器的连接(独立的服务器) 1.2 开启匿名FTP服务器上传权限 1.3 开启匿名服务器下传的权限 1.4 普通用户FTP服务器的连接(独立服务器) 1.5 用户登陆限制进其它的目录,只能进它的主目录 1.6 限制本地用户访问FTP 1.7 安全选项 1.8 查看谁登陆了FTP,并杀死它的进程 2 vsFTP服务器的配置

2.1 配置本地组访问的FTP 2.2 配置独立FTP的服务器的非端口标准模式进行数据连接 2.3 配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限

2.3.1 A:配置网卡 2.3.2 B:写入/etc/sysconfig中(为了重起后IP地址不会丢失) 2.3.3 C:进入vsftpd.conf所在的文件夹 2.3.4 D:建立logins.txt 2.3.5 E:建立访问者的口令库文件,然后修改其权限 2.3.6 F:进如/etc/pam.d/中创建ftp.vu 2.3.7 G:在/var/ftp/创建目录并改变其属性和它的属主 2.3.8 H:进入vsftpd2.conf修改其中的信息 2.3.9 I:在vsftpd.comf所在的目录中创建virtaul文件目录并在文件目录中创建以你用户名命名的配置文件 2.3.10 J:修改vsftpd2.conf

2.4 vsftpd.conf中的所有配置信息 3 vsFTP服务器的维护 4 vsFTP使用的一些补充

4.1 补充一:如何有选择的把用户限制在家目录中呢? 4.2 补充二:打开vsFTP服务器的日志功能 4.3 补充三:如何让绑定IP到vsFTP? 4.4 补充四:如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?? 4.5 补充五:如何限制下载的速度? 4.6 补充六:我的硬盘空间有限,怎么办? 4.7 补充七:如何定制欢迎信息 4.8 补充八:如何实现虚拟路径? 4.9 补充九:如何上匿名访问、上传,并支持下载和执行? 4.10 补充十:通过pam认证方式,添加虚拟用户 4.11 补充十一:如何把系统默认用standalone启动改为用xinetd启动? vsFTP服务器的安装

安装一个软件实在是不许要在这里介绍,因此,这里的安装主要针对vsFTPd服务器的初级配置。

VSFTPD的菜鸟篇

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

原文出处 [http://www.5ilinux.com/vsftp01.html]

这是我这个菜鸟学习LINUX所写的第一篇文章,是比较基础的FTP架设的应用,如果我写有什么问题请大家多指教,我后续会陆续出进阶篇把 FTP中各种详细的配置跟大家一起进行探讨。我所用的是Redhat Linux AS + VSFTPD-1.2.0-4的系统架构,在这里说明的是如果对配置文件不是很熟悉,最好做个备份,以免误操作: 匿名服务器的连接(独立的服务器)

在/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的基本选项 开启匿名FTP服务器上传权限

在配置文件中添加以下的信息即可:

Anon_upload_enable=yes (开放上传权限) Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件) Write_enable=yes (开放本地用户写的权限) Anon_other_write_enable=yes (匿名帐号可以有删除的权限)

开启匿名服务器下传的权限

在配置文件中添加如下信息即可:

Anon_world_readable_only=no

注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限 (R)读—–下传 (W)写—-上传 (X)执行—-如果不开FTP的目录都进不去 普通用户FTP服务器的连接(独立服务器)

在配置文件中添加如下信息即可:

Local_enble=yes (本地帐户能够登陆) Write_enable=no (本地帐户登陆后无权删除和修改文件)

功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限 注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传 用户登陆限制进其它的目录,只能进它的主目录

设置所有的本地用户都执行chroot

Chroot_local_user=yes (本地所有帐户都只能在自家目录)

设置指定用户执行chroot

Chroot_list_enable=yes (文件中的名单可以调用) Chroot_list_file=/任意指定的路径/vsftpd.chroot_list

注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可 限制本地用户访问FTP

Userlist_enable=yes (用userlistlai 来限制用户访问) Userlist_deny=no (名单中的人不允许访问) Userlist_file=/指定文件存放的路径/ (文件放置的路径)

注:开启userlist_enable=yes匿名帐号不能登陆 安全选项

Idle_session_timeout=600(秒) (用户会话空闲后10分钟) Data_connection_timeout=120(秒) (将数据连接空闲2分钟断) Accept_timeout=60(秒) (将客户端空闲1分钟后断) Connect_timeout=60(秒) (中断1分钟后又重新连接) Local_max_rate=50000(bite) (本地用户传输率50K) Anon_max_rate=30000(bite) (匿名用户传输率30K) Pasv_min_port=50000 (将客户端的数据连接端口改在 Pasv_max_port=60000 50000—60000之间) Max_clients=200 (FTP的最大连接数) Max_per_ip=4 (每IP的最大连接数) Listen_port=5555 (从5555端口进行数据连接)

查看谁登陆了FTP,并杀死它的进程

ps –xf |grep ftp kill 进程号

vsFTP服务器的配置

VSFTPD的高手篇

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

原文出处 [http://www.5ilinux.com/vsftp02.html]

我可不是高手!!!^_^我只不过是个菜鸟,尽我的能力写出了我这个菜鸟觉得的高手篇,所以有什么错误请大家指正哦!!!

环境:linux as 3.0 + vsftpd -1.2.0-4的系统架构,是在独立服务器下的哦!讨厌XINETD^_^ 配置本地组访问的FTP

首先创建用户组 test和FTP的主目录

groupadd test mkdir /tmp/test

然后创建用户

useradd -G test –d /tmp/test –M usr1

注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定

M:不建立默认的自家目录,也就是说在/home下没有自己的目录

useradd –G test –d /tmp/test –M usr2

接着改变文件夹的属主和权限

chown usr1.test /tmp/test —-这表示把/tmp/test的属主定为usr1 chmod 750 /tmp/test —-7表示wrx 5表示rx 0表示什么权限都没有

这个实验的目的就是usr1有上传、删除和下载的权限

而usr2只有下载的权限没有上传和删除的权限

当然啦大家别忘了我们的主配置文件vsftpd.conf

要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦!

配置独立FTP的服务器的非端口标准模式进行数据连接

这个非常容易:在VSFTPD。CONF中添加

Listen_port=33333

就可以了啦!

配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限

(两个有读目录的权限,一个有浏览、上传、下载的权限,一个有浏览、下载、删除和改文件名的权限) A:配置网卡

第一块网卡地址是10.2.3.4 掩码是255.255.0.0

ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up

B:写入/etc/sysconfig中(为了重起后IP地址不会丢失)

cd /etc/sysconfig/network-scripts cp ifcfg-eth0 ifcfg-eth0:1 vi ifcfg-eth0:1在其中修改内容如下 DEVICE=eth0:1 BROADCAST=211.131.4.255 HWADDR=该网卡的MAC地址 IPADDR=211.131.4.253 NETMASK=255.255.255.0 NETWORK=211.131.4.0 onBOOT=yes TYPE=Ethernet wq退出

C:进入vsftpd.conf所在的文件夹

cp vsftpd.conf vsftpd2.conf

修改vsftpd.conf添加以下信息

Listen_address=10.2.3.4

修改vsftpd2.conf添加以下信息

Listen_address=211.131.4.253 Ftpd_banner=this is a virtual ftp test

到此虚拟的FTP服务器建立好了 D:建立logins.txt

vi /tmp/logins.txt

添加入下信息:

longlei————用户名 longlei————密码 zhangweibo zhangweibo jinhui jinhui lxp lxp

格式要按照我的来哦,一个用户名,一个密码啦 E:建立访问者的口令库文件,然后修改其权限

db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db

F:进如/etc/pam.d/中创建ftp.vu

在此文件中添加如下信息

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

G:在/var/ftp/创建目录并改变其属性和它的属主

useradd -d /var/ftp/test qiang chmod 700 /var/ftp/test

在目录中添加test_file测试文件 H:进入vsftpd2.conf修改其中的信息

Listen_yes Anonymous_enable=no Local_enable=yes 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=qiang——将虚拟用户映射为本地用户 Listen_port=5555 Max_client=10 Max_per_ip=1 Ftpd_banner=this is a virtual server and users Pam_service_name=ftp.vu

注:在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配置文件

重起服务。到此虚拟USER就建好了 I:在vsftpd.comf所在的目录中创建virtaul文件目录并在文件目录中创建以你用户名命名的配置文件

Longlei zhangweibo jinhui lxp

在longlei中添加:

Anon_world_readable_only=no

在lxp中添加

Anon_world_readable_only=no

这样此两个用户就有了浏览目录的权限了

在jinhui中添加

Anon_world_readable_only=no Write_enable=yes Anon_upload_enable=yes

此用户就有了上传、下载和浏览的权限

在zhangweibo中添加

Anon_world_readable_only=no Write_enable=yes Anon_upload_enable=yes Anon_other_write_enable=yes

此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限 J:修改vsftpd2.conf

加入user_config_dir=/vsftpd.conf所在的目录/virtual

重起服务器就搞定了

vsftpd.conf中的所有配置信息

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服务器 * Anon_upload_enable=yes 开放上传权限 Anon_mkdir_write_enable=yes 可创建目录的同时可以在此目录中上传文件 Write_enable=yes 开放本地用户写的权限 Anon_other_write_enable=yes 匿名帐号可以有删除的权限 Anon_world_readable_only=no 放开匿名用户浏览权限 Ascii_upload_enable=yes 启用上传的ASCII传输方式 Ascii_download_enable=yes 启用下载的ASCII传输方式 Banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息 Idle_session_timeout=600(秒) 用户会话空闲后10分钟 Data_connection_timeout=120(秒) 将数据连接空闲2分钟断 Accept_timeout=60(秒) 将客户端空闲1分钟后断 Connect_timeout=60(秒) 中断1分钟后又重新连接 Local_max_rate=50000(bite) 本地用户传输率50K Anon_max_rate=30000(bite) 匿名用户传输率30K Pasv_min_port=50000 将客户端的数据连接端口改在 Pasv_max_port=60000 50000—60000之间 Max_clients=200 FTP的最大连接数 Max_per_ip=4 每IP的最大连接数 Listen_port=5555 从5555端口进行数据连接 Local_enble=yes 本地帐户能够登陆 Write_enable=no 本地帐户登陆后无权删除和修改文件 下面这是一组 Chroot_local_user=yes 本地所有帐户都只能在自家目录 Chroot_list_enable=yes 文件中的名单可以调用 Chroot_list_file=/任意指定的路径/vsftpd.chroot_list 前提是chroot_local_user=no 这又是一组 Userlist_enable=yes 在指定的文件中的用户不可以访问 Userlist_deny=yes Userlist_file=/指定的路径/vsftpd.user_list 又开始单的了 Banner_fail=/路径/文件名 连接失败时显示文件中的内容 Ls_recurse_enable=no Async_abor_enable=yes one_process_model=yes Listen_address=10.2.2.2 将虚拟服务绑定到某端口 Guest_enable=yes 虚拟用户可以登陆 Guest_username=所设的用户名 将虚拟用户映射为本地用户 User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹 指定不同虚拟用户配置文件的路径 又是一组 Chown_uploads=yes 改变上传文件的所有者为root Chown_username=root 又是一组 Deny_email_enable=yes 是否允许禁止匿名用户使用某些邮件地址 Banned_email_file=//任意指定的路径/xx/ 又是单的 Pasv_enable=yes 服务器端用被动模式 User_config_dir=/任意指定的路径//任意文件目录 指定虚拟用户存放配置文件的路径

vsFTP服务器的维护

现在这里还没有关于维护vsftp服务器的资料。欢迎大家编辑2 vsFTP使用的一些补充 补充一:如何有选择的把用户限制在家目录中呢?

我们要自己建一个文件,在/etc目录中

#touch /etc/vsftpd.chroot_list

以beinan和nanbei这两个用户限制在他们所在的家目录中,而其它的FTP用户不做此限制。

在vsftpd.chroot_list这个文件中,把beinan和nanbei添上去就行,注意,每个用户占一行。

beinan nanbei

然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行

#chroot_list_enable=YES #chroot_list_file=/etc/vsftpd.chroot_list

把前面的#号去掉,也就是这样的

chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

如果没有这样的两行,就可以自己添加上去也是一样的。

设置好后,重新vsFTPD服务器。

补充一之补充:如何把系统内所有的FTP用户都限制在家目录中呢??经juliaugong兄的提示,我查找了vsFTPd的洋文说明,证明这个选项是一刀切的解决所有的用户都能限制在家目录中

我们可以通过更改vsftpd.conf文件,加入如下的一行

chroot_local_user=YES

改完配制文件,不要忘记重启vsFTPd服务器

[root@linuxsir001 root]# /etc/init.d/vsftpd restart 关闭 vsftpd: [ 确定 ] 为 vsftpd 启动 vsftpd: [ 确定 ] [root@linuxsir001 root]#

补充二:打开vsFTP服务器的日志功能

把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。

#xferlog_file=/var/log/vsftpd.log

补充三:如何让绑定IP到vsFTP?

也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP

在/etc/vsftpd/vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP

listen_address=192.168.0.2

加完后,要重启vsFTP服务器

[root@linuxsir001 root]# /etc/init.d/vsftpd restart 关闭 vsftpd: [ 确定 ] 为 vsftpd 启动 vsftpd: [ 确定 ] [root@linuxsir001 root]#

补充四:如何让vsFTP服务器限制链接数,以及每个IP最大的链接数??

答:应该改vsFTP服务器的配制文件vsftpd.conf,加入下面的两行:

max_clients=数字 max_per_ip=数字

举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:

max_clients=100 max_per_ip=5

改好了配制文件,不要忘记启动vsftp服务器。

补充五:如何限制下载的速度?

anon_max_rate=数字 注:这是匿名的下载速度 local_max_rate=数字 注:这是vsFTP服务器上普通用户的下载速度

注:这个数字的单位是字节,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024x80=81920 所以我们要在vsftpd.conf中加入下面的两行

anon_max_rate=81920 local_max_rate=81920

不要忘记重启vsftpd服务 补充六:我的硬盘空间有限,怎么办?

我的硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?或者是,我的linux所有的目录都放在/根分区,因为空间紧张,我能否把ftp这个用户的默认路径放到别的分区?

可以,应该如下操作!

首先要把ftp这个用户删除

#userdel -r ftp

会有错误信息,不过不用理,这是正常的。

然后我们再把这个用户添加上,比如我想为帐号ftp的家目录设置在/mnt/LinG/ftp,我们就可以如下操作

[root@linuxsir001 root]# mkdir /mnt/LinG [root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp

仅仅是这样做还不行,因为这样还是不能让匿名用户找到它的家目录,所以我们必须改变/mnt/LinG/ftp这个目录的权限。

[root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/ [root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/

补充七:如何定制欢迎信息

如何在我们登入有些FTP之后,会出现类似:欢迎您来到LinuxSir FTP,在这里,您会得到最真诚的帮助,如果有什么问题和建议,请来信,多谢。

实现这个并不难,我们可以查看vsftpd.cof文件中,是否有这行。

dirmessage_enable=YES

如果没有就加上,如果dirmessage_enable=YES前面有#号,就把#号去掉。

然后我们制定一个.message文件,写上您想要写的东西,比如是.message的内容是如下的:

欢迎您来到LinuxSir FTP! 在这里,您会得到最真诚的帮助; 如果有什么问题和建议,请来信,多谢。

我们可以用编辑器来写这个.message,我想这个过程就不用说了吧。

然后我们把.message这个文件复制到各个用户的家目录中。比如我的FTP的一个用户是beinan,这个用户所在的家目录是/home/beinan

我们就要把.message放在/home/beinan这个目录下。如果系统用户ftp,他的目录就是/var/ftp这个目录,这个是默认的,当匿名用户登入时就访问的是/var/ftp这个目录。我们要让匿名用户能看到欢迎信息。就要把.message放在/var/ftp目录中。其它的用户,也无非就是类似的操作。

补充八:如何实现虚拟路径?

比如: /home/a 映射为ftp://localhost/a /home/b/c 则为ftp://localhost/c

其实这个不能说是vsFTPd的内容,其实我们早就接触过了,可能我们没有注意,我们可以通过如下的方法来实现。

#mount –bind [原有的目录] [新目录]

比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作

我们要先在/var/ftp目录中建一个目录

#mkdir /var/ftp/WinSoft

然后执行mount命令

#mount –bind /mnt/LinG/WinSoft /var/ftp/WinSoft

这样就OK了。

补充九:如何上匿名访问、上传,并支持下载和执行?

在默认的情况下,vsftp是不支持匿名用户的访问的,所以我们要自己打开相应的选项。现在我针对这个问题,我们要打开如下的选项。

anonymous_enable=YES 注:允许匿名访问 anon_upload_enable=YES 注:允许上传 anon_mkdir_write_enable=YES 注:允许建立相应的目录 anon_umask=022 把上传到FTP的文件或者目录改变权限

当然打开这些选项还是不行的,我们还要让匿名写入文件的上一级目录有写入权,以我所做的FTP为例,我所做的FTP的匿名访问的目录是 /var/ftp,在vsFTPd中,/var/ftp这个目录是不能让匿名用户有写入权限的,这是为了安全考虑,所以我们必须自己在/var/ftp目录中建一个目录,让这个目录有写入权。

比如:我在/var/ftp目录建一个upload目录,然后把它的权限设置成777,这样匿名用户就能写入了。

#mkdir /var/ftp/upload #chmod 777 /var/ftp/upload

改了一系列的文件,不要忘记重启vsFTPd服务器

我是用standalone模式的,当然用下面的方法

[root@linuxsir001 root]# service vsftpd restart 关闭 vsftpd: [ 确定 ] 为 vsftpd 启动 vsftpd: [ 确定 ] [root@linuxsir001 root]#

如果您用的是xinetd模式来启动vsFTPd,我们要重启xinetd服务器

[root@linuxsir001 root]# service xinetd restart 停止 xinetd: [ 确定 ] 启动 xinetd: [ 确定 ] [root@linuxsir001 root]# ]

补充十:通过pam认证方式,添加虚拟用户

通过pam认证,用db_load添加用户,是真正的虚拟用户。现在我们简单的介绍一下,通过以后的学习,我们再深入补充:

1。在/etc/pam.d/目录中创建一个文件ftp

[root@linuxsir001 root]# touch /etc/pam.d/ftp

2。在/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

3。创建一系统的用户名用密码的文件logins.txt

[root@linuxsir001 root]# touch logins.txt

在logins.txt文件中,输入如下的内容。这个内容您可以自己来定。比如我下面的。其实linuxsir007是FTP的虚拟用户名, 123456是linuxsir007的密码;linuxsir008是虚拟用户名,234567是linuxsir008的密码,以此类推,您想加入几个就是几个;下面是我添加的FTP的虚拟用户名和密码。

linuxsir007 123456 linuxsir008 234567 linuxsir009 567890 linuxsir010 678901 linuxsir011 789012

4。创建一个真实的用户名linuxsir006,这个linuxsir006的用户,所在的家目录由您来定。我在这里不多说了。我是按系统默认的来添加的。

[root@linuxsir001 root]# useradd linuxsir006

5。把/etc/hosts复制到/home/linuxsir006,并改变它的属主

[root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts [root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts

6。通过db_load来创建虚拟用户的库文件。我们在前面建的logins.txt文件,我是放在了/root用户目录下。所以咱们得把目录切换到/root目录来创建虚拟用户的库文件。

[root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

7。更改vsftpd.conf文件,加入如下的几行

pam_service_name=ftp guest_enable=YES guest_username=linuxsir006 anon_world_readable_only=NO

8。重启vsFTPd服务器;改了一系列的文件,不要忘记重启vsFTPd服务器

我是用standalone模式的,当然用下面的方法

[root@linuxsir001 root]# service vsftpd restart 关闭 vsftpd: [ 确定 ] 为 vsftpd 启动 vsftpd: [ 确定 ] [root@linuxsir001 root]#

如果您用的是xinetd模式来启动vsFTPd,我们要重启xinetd服务器

[root@linuxsir001 root]# service xinetd restart 停止 xinetd: [ 确定 ] 启动 xinetd: [ 确定 ] [root@linuxsir001 root]#

9。如果您想让用户登入FTP时,登入成功的相应的信息,请把您制作的.message复制到您的用户的家目录中,这方面的请参考前面的补充。

10。测试:

[root@linuxsir001 root]# ftp 192.168.0.1 Connected to 192.168.0.1. 220 (vsFTPd 1.1.3) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (192.168.0.1:root): linuxsir007 331 Please specify the password. Password: 230-欢迎光临LinuxSir自由FTP 230-在这里,您将得到最真诚的帮助! 230-本站限度为30KB! 230-每个IP限四个线程 230-请大家遵守FTP的有关规定。 230-多谢合作! 230- 230-LinuxSir管理部 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,0,1,85,171) 150 Here comes the directory listing. -rw-r–r– 1 ftp ftp 174 Jun 01 12:59 hosts drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008 drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun 226 Directory send OK. ftp>

补充十一:如何把系统默认用standalone启动改为用xinetd启动?

如何把Redhat 9.0中系统默认安装的vsftpd-1.1.3-8.i386.rpm,系统默认vsFTPd是用standalone启动方式,改为xinetd启动方式 ?如果是用源码包安装的,安装后就是xinetd模式,如果是用RPM包安装的,在Redhat 9.0中,应该用下面的方法来解决。

1.在/etc/xinetd.d/目录中创建一个文件vsftpd

[root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd

/etc/xinetd.d/vsftpd内容如下:

service ftp { socket_type = stream wait = no user = root server = /usr/sbin/vsftpd

server_args =

log_on_success += DURATION USERID

log_on_failure += USERID

nice = 10 disable = no }

2。复制vsftpd.conf到/etc/目录下,因为xinetd对vsFTPd配制文件应该在/etc目录下,所以我们就必须把这个文件复制到/etc目录下,否则会出现系统中local用户无法登入,也就是说,不复制这个文件会出现ftp非匿名用户无法访问,只能用匿名用户访问。

[root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf

3。更改配制文件/etc/vsftpd.conf,把如下的项注掉:也就是把

listen=YES

改为

#listen=YES

或者是把这行删除也行。

4。把/etc/init.d/vsftpd这个文件删除。其实最好的备份到别处,因为我们有时实验来实验去,可能还会转到standalone模式启动。我就直接移动到别的目录,比如是/root下面的backup目录。

[root@linuxsir001 root]#mkdir /root/backup [root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup

5。运行ntsysv,把vsftpd的服务取消

[root@linuxsir001 root]#ntsysv [ ] vsftpd

6。重启xinetd服务

[root@linuxsir001 root]# service xinetd restart

Tags: