您的位置:首页 > 编程语言 > PHP开发

vsftpd 安装文档原文翻译

2013-08-01 17:08 471 查看
以前进行安装过虚拟用户的使用,但是由于刚刚装的vsftpd 2.3.5版本,为了安全考虑对以前有了一些更改,例如不推荐创建用户默认登录目录为根目录

以下为vsftpd虚拟用户的创建源文档,再此进行一下翻译,并添加一些自己的理解(红色部分)

原文如下:

这个例子展示了如何设置vsftpd / PAM“虚拟用户”。一个虚拟用户是一个用户登录,不存在真正的登录系统。虚拟用户可以因此更安全比真正的用户,因为一个妥协的账户只能使用FTP服务器。

虚拟用户是用来提供给一些不收信任的用户,并且限制其权限,不可以访问其他的目录

第一步)创建虚拟用户数据库。

  我们将使用pam_userdb进行身份验证的虚拟用户。这需要

  将username/password的用户信息存储到“db”格式的文件中,这是一种常见的数据库格式。

  创建一个“分贝”格式文件,首先需要创建一个纯文本文件

  用户名和密码交替显示。

  请参见示例文件”logins.txt”
tom

foo

fred

bar

  而作为根用户登录,创建实际的数据库文件如下:

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

以上需要先进行安装db_load

sudo apt-get install db-util 如果安装时提示找不到软件包输入:sudo apt-get install db4.8-util

这将创建/ etc / vsftpd_login.db。显然,你可能想要确保权限被限制:

chmod 600 /etc/vsftpd_login.db

如果想了解更多信息可以在这里找到

http://www.sleepycat.com/docs/utility/index.html
第二步) 创建一个对刚刚创建的数据库的引用pam文件.

创建vsftpd.pam文件。它包含两行:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login (刚刚创建的数据库,但是不可以带类型 .db)

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

以上对于pam_userdb.so的目录不一定对,根据系统类型不同,可能会有所变化,可以通过查询命令找到后进行替换

find / -name pam_userdb.so

可以将该文件复制到目录/etc/pam.d 下

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

这里的ftp在配置vsftpd.conf时用到,会有对他的引用

(注意 如果你将pam_service_name的引用名字用vsftpd进行替换,你需要用命令 cp vsftpd.pam /etc/pam.d/vsftpd)

第三步) 设置文件的位置的虚拟用户.

useradd -d /home/ftpsite virtual

ls -ld /home/ftpsite

(显示如下):

drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

如果显示信息为:

drwx------ 3 root root 4096 Jul 30 00:39 /home/ftpsite

请执行命令

chown virtual.virtual /home/ftpsite

我们已经在目录/home/ftpsite创建了一个名字为“virtual”的用户

让我们添加一些内容到这个下载区:

cp /etc/hosts /home/ftpsite

chown virtual.virtual /home/ftpsite/hosts

第四步) 创建vsftpd.conf配置文件

对配置文件进行辩解

vim vsftpd.conf

内容如下

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

#这保证了虚拟用户仅限于虚拟FTP区/ home / ftpsite上面我们设置了。

guest_enable=YES

guest_username=virtual

guest_enable 这个配置是十分重要的,他激活了虚拟用户,并且guest_username将所有的虚拟用户映射到
我们创建的真正的“virtual”,目录为/home/ftpsize

listen=YES

listen_port=10021(ftp默认端口为21,如果不想登录ftp时输入端口号,则设置为21)

pasv_min_port=30000

pasv_max_port=30999

这些把端口范围在被动FTP传入的请求——非常有用你是在配置防火墙。

第六步) 测试

ftp localhost 10021(在第四步设置的端口)

Connected to localhost (127.0.0.1).

220 ready, dude (vsFTPd 1.1.0: beat me, break me)

Name (localhost:chris): tom

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> pwd

257 "/"

ftp> ls

227 Entering Passive Mode (127,0,0,1,117,135)

150 Here comes the directory listing.

226 Transfer done (but failed to open directory).

ftp> size hosts

213 147

ftp>

如果想每个虚拟用户登录的路径不同请看文档:

/article/10007312.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: