在64位机器上安装vsftp小结

 在64位机器上安装 vsftp过程及总结

工作的原因需要在一台64位机器上安装vsftp服务。

系统环境:
OS: 64 bit Red had centos 5
硬件:64位Q6600inter 2.4G

根据相关资料查到,就分为以下几个步骤:
安装vsftp部件及相关部件 -> 建立配置的准备(系统帐号)->配置vsftpà部署ftp文件夹及附属

一、            安装Vsftpd服务相关部件
Ø       yum install vsftpd   [ 安装 vsftp服务]
Ø       yum install pam*    [确认安装PAM服务相关部件]
Ø       yum install db4*    [安装DB4部件包]

二、            系统帐户
Ø       1建立Vsftpd服务的宿主用户:useradd vsftpd –s /sbin/nologin
                        i.              Useradd: 建立用户命令
                       ii.              /sbin/nologin: 说明些用户是不可以登录系统的

Ø      建立Vsftpd虚拟宿主用户:useradd overlord -s /sbin/nologin
                        i.              虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。由于他支撑了FTP的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此,处于安全性的考虑,也要非分注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。

Ø      Vsftpd 和 overlord 用户都在 vsftp.conf配置文件中出现
                        i.              guest_username=overlord
#指定虚拟用户的宿主用户。
                       ii.              pam_service_name=vsftpd
设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。

三、            制作虚拟用户数据库文件:

Ø      安装db_load:yum install db4*
Ø      建立虚拟用户名单文件:
touch /etc/vsftpd/virtusers: touch的命令是建立一个空文件

vi /etc/vsftpd/virtusers
----------------------------
kanecruise
123456
near
123456near
mello
123456mello
----------------------------
编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“一行用户名,一行口令”。
注意:如果你是用文本编辑器时,必须在最后一行中加入一个回车,否则的话在后面就会让你不知到死在哪里

Ø      生成虚拟用户数据文件:
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
这里我顺便把这个命令简单说明一下
----------------------------------------------------------------------
察看db4的db_load命令使用方法:
[root@KSRV2 vsftpd]# db_load
usage: db_load [-nTV] [-c name=value] [-f file]
        [-h home] [-P password] [-t btree | hash | recno | queue] db_file
usage: db_load -r lsn | fileid [-h home] [-P password] db_file
解释在本篇中,db_load命令几个相关选项很参数
-T
The -T option allows non-Berkeley DB applications to easily load text files into databases.
If the database to be created is of type Btree or Hash, or the keyword keys is specified as set, the input must be paired lines of text, where the first line of the pair is the key item, and the second line of the pair is its corresponding data item. If the database to be created is of type Queue or Recno and the keywork keys is not set, the input must be lines of text, where each line is a new data item for the database.
选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。

If the -T option is specified, the underlying access method type must be specified using the -t option.
如果指定了选项-T,那么一定要追跟子选项-t
-t
Specify the underlying access method. If no -t option is specified, the database will be loaded into a database of the same type as was dumped; for example, a Hash database will be created if a Hash database was dumped.
Btree and Hash databases may be converted from one to the other. Queue and Recno databases may be converted from one to the other. If the -k option was specified on the call to db_dump then Queue and Recno databases may be converted to Btree or Hash, with the key being the integer record number.
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。这里,接下来我们需要指定的是Hash型


四、            设定PAM验证文件,并指定虚拟用户数据库文件

Ø      察看原来的Vsftp的PAM验证配置文件:
[root@KcentOS5 ~]# cat /etc/pam.d/vsftpd
----------------------------------------------------------------
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so
----------------------------------------------------------------

Ø      编辑Vsftpd的PAM验证配置文件
[root@KcentOS5 ~]# vi /etc/pam.d/vsftpd
----------------------------------------------------------------
#%PAM-1.0
auth    sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
注意:如果是64位机器,必须加上/lib64,

Ø      虚拟用户的配置
                    i.              规划好虚拟用户的主路径: mkdir /opt/vsftp/
                    ii.     建立测试用户的FTP用户目录:mkdir /opt/vsftp/kanecruise/ /opt/vsftp/mello/ /opt/vsftp/near/
                    iii.              建立虚拟用户配置文件模版:

1.        cp /etc/vsftpd/vsftpd.conf.backup /etc/vsftpd/vconf/vconf.tmp

                  iv.              定制虚拟用户模版配置文件:vi /etc/vsftpd/vconf/vconf.tmp

1)      --------------------------------
local_root=/opt/vsftp/virtuser
指定虚拟用户的具体主路径。
anonymous_enable=NO
设定不允许匿名用户访问。
write_enable=YES
设定允许写操作。
local_umask=022
设定上传文件权限掩码。
anon_upload_enable=NO
设定不允许匿名用户上传。
anon_mkdir_write_enable=NO
设定不允许匿名用户建立目录。
idle_session_timeout=600
设定空闲连接超时时间。
data_connection_timeout=120
设定单次连续传输最大时间。
max_clients=10
设定并发客户端访问个数。
max_per_ip=5
设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件。
local_max_rate=50000
设定该用户的最大传输速率,单位b/s。

2.      更改虚拟用户的主目录的属主为虚拟宿主用户:

a)      chown -R overlord.overlord /opt/vsftp/

五、            修改vsftpd.conf文件并增加chroot_list文件。

Ø      在文件的的最后面加入:

#KC: The following entries are added for supporting virtual ftp users.
#以下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置。

guest_enable=YES
#设定启用虚拟用户功能。
guest_username=overlord
#指定虚拟用户的宿主用户。
virtual_use_local_privs=YES
#设定虚拟用户的权限符合他们的宿主用户。
user_config_dir=/etc/vsftpd/vconf
#设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。
-------------------------------------------------------------------------

Ø      改变参数:

guest_username=overlord
#指定虚拟用户的宿主用户。

pam_service_name=vsftpd
#设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。

nopriv_user=vsftpd
#设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list
#禁止用户登出自己的FTP主目录。此列表一行一个列出禁止用户

Ø      建立chroot_list 文件:一行一个列出用户(最后一行必须有回车,如果你是用windows notepad编辑器)

六、            重新启动service vsftpd restart

七、            常见问题:
Ø      530 错误:此错误很常见,有很多愿因
                  i.             虚拟用户没有在virtuleusers表中列出
                  ii.            在vsftp.conf文件中加入pam_service_name=vsftpd
                  iii.           在文件中加入guest_enable=YES

Ø      Db_load 命令返回key 键不对称:
                    i.              可能是virtualusers中没有按“用户名”,“密码”的顺序排列
                    ii.              可能是virtualusers文件最后一行没有回车

Ø      500 oops cannot change diretor
                    i.           执行 setsebool  ftpd_disable_trans 1


附vsftpd.conf参数表:

参数
说明

listen_address=ip address
指定侦听IP

listen_port=port_value
指定侦听端口,默认21

anonymous_enable=YES
是否允许使用匿名帐户

local_enable=YES
是否允许本地用户登录

nopriv_user=ftp
指定vsftpd服务的运行帐户,不指定时使用ftp

write_enable=YES
是否允许写入

anon_upload_enable=YES
匿名用户是否可上传文件

anon_mkdir_write_enable=YES
匿名用户是否建立目录

dirmessage_enable=YES
进入每个目录是显示欢迎信息,在每个目录下建立.message文件在里面写欢迎信息

xferlog_enable=YES
上传/下载文件时记录日志

connect_from_port_20=YES
是否使用20端口传输数据(是否使用主动模式)

chown_uploads=YES、chown_username=whoever
修改匿名用户上传文件的拥有者

xferlog_file=/var/log/vsftpd.log
日志文件

xferlog_std_format=YES
使用标准文件日志

idle_session_timeout=600
会话超时,客户端连接到ftp但未操作

data_connection_timeout=120
数据传输超时

async_abor_enable=YES
是否允许客户端使用sync等命令

ascii_upload_enable=YES、ascii_download_enable=YES
是否允许上传/下载二进制文件

chroot_local_user=YES
限制所有的本地用户在自家目录

chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list
指定不能离开家目录的用户,将用户名一个一行写在/etc/vsftpd/chroot_list文件里,使用此方法时必须chroot_local_user=NO

ls_recurse_enable=YES
是否允许使用ls -R等命令

listen=YES
开启ipv4监听

listen_ipv6=YES
开启ipv6监听

pam_service_name=vsftpd
使用pam模块控制,vsftpd文件在/etc/pam.d目录下

userlist_enable=YES
此选项被激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsftpd查到该用户名在列表中,vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步聚

userlist_deny=YES
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入密码的提示。NO,只允许在文件中的用户登录FTP服务器

tcp_wrappers=YES
是否允许tcp_wrappers管理

local_root=/home/ftp
所有用户的根目录,,对匿名用户无效

anon_max_rate
匿名用户的最大传输速度,单位是Byts/s

local_max_rate
本地用户的最大传输速度,单位是Byts/s

download_enable= YES
是否允许下载

后记:

在第一次安装vsftp的过程出现很多的问题是很痛苦的,但解决这些问题的同时也是增加经验值的过程,比方说530 login increate 错误就折腾了几天,但是通过试验和思考最终锁定了原来是用lib64位的库。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值