1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vsftp本地用户 虚拟用户 匿名用户同时工作

vsftp本地用户 虚拟用户 匿名用户同时工作

时间:2024-05-28 01:21:41

相关推荐

vsftp本地用户 虚拟用户 匿名用户同时工作

vsftpd+mysql 实现本地用户,匿名用户,虚拟用户同时工作

大纲

1.安装vsftpd mysql pam-mysql

2.添加虚拟用户(使用本地数据库和数据库服务器)

3.实现本地用户,匿名用户,虚拟用户同时工作

4.说下vsftpd.conf文件的内容

一、安装

先说下环境我是在centos 5.6下做的 安装vsftpd mysql

vsftpd和mysql是使用yum源安装的,pam_mysql使用编译安装的是因为我没找到rpm软件包!!!

首先安装vsftpd+mysql 以及必要软件(pam_mysql db4*)

yum install vsftpdmysql db4* -y

编译安装需要用以下软件:

yum install gcc gcc-c++ pam-devel mysql-devel 也还需要更多的开发工具,到时只需使用

使用下面的命令与地址下载pam_mysql:

wget /project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz?use_mirror=nchc

解压和安装

tar zxf pam_mysql-0.7RC1.tar.gz -C /tmp/

cd /tmp/pam_mysql-0.7RC1/

./configure --with-openssl

make

make install

当使用find / -name pam_mysql.so命令找到pam_mysql.so时就是代表安装成功了。

ls /usr/lib/security/pam_mysql.so #查看下是否有这个文件存在

pam_mysql的安装可以参考下面的内容:

/thread-825165-1.html

二、添加虚拟用户

虚拟用户可以使用两种方式添加 mysql数据和db4工具生成的数据文件。

建立虚拟用户使用的系统帐户virtual

这个帐户不需要登录所以将他的home设为/var/ftp/ 或者不指定

useradd -d /var/ftp/ -s /sbn/nologin virtual

chown virtual.virtual /var/ftp #将ftp目录的属主和属组改为virtual

1.使用mysql添加虚拟用户

建立vsftpd使用的mysql数据库和表,并插入用户名和密码到表中:

mysqladmin -u root password 'your_Passw0rd';

mysql –u root –p;

mysql>create database vsftpd;

mysql>use vsftpd;

mysql>create table users(name char(20),password char(20));

mysql> insert into users(name,password) values ('pei','pei');

mysql> insert into ftpusers(name,password) values ('admin','12345');

mysql>grant allon vsftpd.users to virtual@localhost identified by 'passwd';

mysql>quit;

编辑pam文件加入以下内容:

vim /etc/pam.d/vsftpd

auth sufficient /usr/lib/security/pam_mysql.so user=virtual passwd=majinlong host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

account sufficient /usr/lib/security/pam_mysql.so user=virtual passwd=majinlong host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

除以上内容外的其他内容全部使用#号注释掉

注意:

crypt= n

crypt=0:明文密码

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

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

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

虚拟用户的vsftpd.conf配置文件内容

#virtual users

guest_enable=YES启用虚拟用户

guest_username=virtual 虚拟用户使用的系统账户

virtual_use_local_privs=NO 虚拟用户和本地用户是否有相同的权限

user_config_dir=/etc/etc/vsftpd_user_config 单独的用户配置文件位置

2.使用本地数据添加虚拟用户

添加虚拟用户口令文件格式如下:

user

passwd

例如:

vi user.txt

admin

12345

生虚拟用户口令认证数据库文件,需要使用db4-utils软件

db_load -T -t hash -f 口令文件的路径 生成后的数据认证文件

db_load -T -t hash -f user.txt /etc/vsftpd/vuser.db

编辑pam文件 加入下面两行:

auth sufficient pam_userdb.so db=/etc/vsftpd/vuser

account sufficient pam_userdb.so db=/etc/vsftpd/vuser

其他的内容全部使用#号注释掉

虚拟用户的vsftpd.conf配置文件内容

#virtual users

guest_enable=YES 启用虚拟用户

guest_username=virtual虚拟用户使用的系统账户

virtual_use_local_privs=NO虚拟用户和本地用户是否有相同的权限

user_config_dir=/etc/etc/vsftpd_user_config //单独的用户配置文件位置

注意:从头到尾pam_service_name=vsftpd这个选项都没有动过,因为我们一直在修改/etc/pam.d/vsftpd这个文件,没有建立新的pam文件所以不需要改变这一项。

至此虚拟用户的内容就完了下面可以使用虚拟用户测试下

三、实现本地用户,匿名用户,虚拟用户同时工作

实现本地用户,匿名用户,虚拟用户同时工作的方法有两种:

一个是添加多个vsftpd.conf配置文件,修改监听端口使其工作在21端口以外的端口上

一个是修改pam文件使vsftpd直接支持本地,匿名和虚拟用户同时登录

上面第一种方法不是很难,网上有许多教程,我使用的是第二种方法下面就说下怎么实现的:

修改后完整的pam文件/etc/pam.d/vsftpd的内容如下:

auth sufficient /usr/lib/security/pam_mysql.so user=virtual passwd=majinlong host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

account sufficient /usr/lib/security/pam_mysql.so user=virtual passwd=majinlong host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

#auth required pam_listfiles.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed(不允许ftpusers文件中的用户登录)

#auth required pam_shell.so(这个还不太清楚)

auth include system-auth(认证本地用户的默认选项)

account include system-auth(认证本地用户的默认选项)

session include system-auth(认证本地用户的默认选项)

session required pam_loginuid.so(认证系统用户的默认选项)

#sessionoptional pam_keyinit.so force revoke(可有可无)

如果想弄清楚上面的内容具体是什么意思建议参考下‘pam百度百科’

大家可以参考下面:

http://spazzzz./2707720/677799

一般第一列指定的内容是:module-type,一共就只有4种,分别是:

1 auth:对用户身份进行识别,如提示输入密码,判断是root否;

2 account:对账号各项属性进行检查,如是否允许登录,是否达到最大用户数;

3 session:定义登录前,及退出后所要进行的操作,如登录连接信息,用户数据的打开和关闭,挂载fs;

4 password:使用用户信息来更新数据,如修改用户密码。

第二列内容是:control-flag,有很多,不过一般常用的是4种,分别是:

5 optional:不进行成功与否的返回,一般返回一个pam_ignore;

6 required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败;

7 requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败;

8 sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。

第三列内容是PAM模块的存放路径,默认是在/lib/security/目录下,如果在此默认路径下,要填写绝对路径。

第四列内容是PAM模块参数,这个需要根据所使用的模块来添加。

四、详解vsftpd.conf文件的内容

1. 匿名及本地用户共同参数

listen=yes //vsftpd工作在standalone 模式下

write_enable=yes/no //是否允许全局可写

download_enable=yes/no //是否允许所有用户可以下载

dirlist_enable=yes/no //是否允许所有用户可以浏览(列出文件列表)

pam_service_name=vsftpd

ftpd_banner=欢迎语字符串

banner_file=文件

dirmessage_enable=yes/no

message_file=文件

参数ftpd_banner设置的欢迎语字符串将在登录时看到,如果想做出多行欢迎语,就要把内容单独存为banner_file参数指定的文件,应用中 这两个参数二选一即可。dirmessage_enable和message_file参数是进入某个目录后显示的欢迎信息,用法与前两个参数一样。

2.本地用户

local_root=/path //本地用户登陆服务器后直接进入的目录

local_umask=八进制数 //本地用户上传档案权限的 umask值

local_max_rate=数字 //本地用户传输速率单位为 bps

chmod_enable=yes/no // 是否允许本地用户改变ftp 服务器上档案的权限

user_config_dir=/path //用户单独配置文件所在目录

userlist_enable=yes/no //是否启用 userlist 功能模块

userlist_deny=yes/no //是否拒绝 userlist 文件中用户登陆 ftp 服务

userlist_file=/path/to/file //指定的 userlist 文件名

chroot_list_enable=yes/no //是否启用 chroot_list 文件

chroot_local_user=yes/no //是否限制本地用户的根目录为自己的主目录

chroot_list_file=/path/to/file //设置 chrootlist 文件名

3.匿名用户

anonymous_enable=YES /NO //是否允许匿名访问

no_anon_password=YES //匿名用户不需要输入密码

anon_root=/var/ftp //设置匿名用户的FTP根目录(缺省为/var/ftp)

anon_upload_enable=YES/NO //匿名用户是否可以上传

anon_umask=022 //设置匿名用户所上传文件的默认权限掩码值

anon_other_write_enable=YES/NO //是否允许匿名用户可以使用除了建立文件夹和上传文件以外其他的ftp写操作命令。例如:delete、rename 等等

anon_world_readable_only=YES/NO //匿名用户是否可以浏览

anon_mkdir_write_enbale=YES/NO //是否允许匿名用户有创建目录的写入权限

anon_max_rate=0 //限制匿名用户最的最大传输速率(0为无限制,单位为字节)

4.虚拟用户

guest_enable=YES //启用虚拟用户

guest_username=virtual //虚拟用户使用的系统账户

user_config_dir=/etc/etc/vsftpd_user_config //单独的用户配置文件位置

virtual_use_local_privs=NO

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO

用户单独的配置文件可以使用匿名用户配置文件的全部内容,

local_root=/var/ftp/123 //用户的主目录

#anon_world_readable_only=NO //匿名用户是否可以浏览

anon_upload_enable=YES //匿名用户是否可以上传

anon_mkdir_write_enable=YES //是否允许匿名用户有创建目录的写入权限

anon_other_write_enable=YES//是否允许匿名用户可以使用除了建立文件夹和上传文件以外其他的ftp写操作命令。例如:delete、rename 等等

anon_max_rate=512000 //限制匿名用户最的最大传输速率(0为无限制,单位为字节)

5.其他设置

日志文件

xferlog_enable=yes/no//是否启用 xferlog 日志格式

xferlog_std_format=yes/no //是否采用标准格式记录日

xferlog_file=/path/to/logfile//xferlog 日志文件所在位置,默认为/var/log/xferlog

dual_log_enable=yes/no//是否采用Vsftpd自己的日志记录方式

log_ftp_protocol=yes/no//是否记录所有的ftp命令日志

vsftpd_log_file=/path/to/logfile //指定vsftpd 日志文件位置,默认为/var/log/vsftpd.log

主动模式

port_enable=YES //开启主动模式

connect_from_port_20=YES //当主动模式开启的时候 是否启用默认的20端口监听

ftp_date_port=%portnumber% //上一选项使用NO参数是 指定数据传输端口

被动模式

pasv_enable=YES //开启被动模式

pasv_min_port=%number% //被动模式最低端口

pasv_max_port=%number% //被动模式最高端口

连接限制

max_client=%number% //最大连接数

max_per_ip=%number% //每ip最大连接数

anon_max_rate=%number% //匿名用户最大速率 单位kbps

local_max_rate=%number% //本地用户最大速率 单位kbps

超时限制

idle_session_timeout=600 //空闲连接超时

data_connection_timeout=120 //数据传输超时

accept_timeout=60 //PAVS请求超时

connect_timeout=60 //PROT模式连接超时

更多vsftpd.conf详细配置:

http://tzsky./1062094/237322

http://www./ linux学园

http://redking./27212/136218

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。