linux下vsftpd的搭建与配置

1.vsftpd服务软件包,基于RHEL5.4

vsftpd-2.0.5-16.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/:默认情况下匿名用户的根目录

/etc/logrotate.d/vsftpd.log         #日志相关    
/etc/pam.d/vsftpd                   #pam认证模块
/etc/rc.d/init.d/vsftpd             #启动脚本      
/etc/vsftpd/ftpusers                #用户黑名单
/etc/vsftpd/user_list               
#用户列表(黑,白名单),结合userlist_enable=YES/NO、userlist_deny=YES/NO使用
/etc/vsftpd/vsftpd.conf             #主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh  #卸载时保存配置文件的脚本
/usr/sbin/vsftpd                    #可执行文件(主程序文件)
/usr/share/doc/vsftpd-2.0.5         #说明,样例文件的存放目录
/usr/share/man/man5/                #手册页目录
/var/ftp/pub                        #匿名用户的默认登录目录

3.配置FTP服务器
默认配置文件为:
anonymous_enable=YES                 //允许使用匿名账户
local_enable=YES                     //允许使用本地系统账户
write_enable=YES                     //允许本地账户写入
local_umask=022                      //默认的创建目录的反掩码
dirmessage_enable=YES                //是否允许进入ftp目录的欢迎信息
xferlog_enable=YES                   //启用上传和下载日志
connect_from_port_20=YES             //从20端口传输数据
xferlog_std_format=YES               //使用标准日志格式
listen=YES                           //以独立进程启动ftp服务
pam_service_name=vsftpd              //用于指定 PAM 服务的名称
userlist_enable=YES                  //是否启用userlist用户列表
tcp_wrappers=YES                     //使用tcp_wrappers作为主机访问控制方式。

<1> 需求一,允许匿名用户上传文件和目录,但不允许删除和重命名

在vsftpd.conf中添加如下参数即可:
anon_mkdir_write_enable=YES  
anon_upload_enable=YES

anon_other_write_enable=YES           #此参数表示匿名具有删除、重命名权限,不推荐使用

注意 :使其生效的前提是,必须对父目录也有读写的权限,所以必须使用

chown ftp <目录>                       #权限是755,这个不能改变!

<2> 需求二,禁锢根目录

当使用账户登录时,可以通过cd命令进入到我的/根目录,是不安全的,必须禁锢其宿主目录,在vsftpd.conf中添加此参数:
示例:


chroot_local_user=YES                  #锁定到宿主目录

<3> 创建虚拟用户

1.创建账户文本文件

vim /etc/vsftpd/vsftpd_virtualuser.txt

#添加虚拟帐号与密码,格式为:

虚拟帐号01                 #test

密码                            #123456

虚拟帐号02                 #vip

密码                            #123456

2.生成账户数据库

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

注意:RHEL5.4默认只安装db4-devel-4.3.29-10.el5.rpm和db4-4.3.29-10.el5.rpm,要使用db_load命令,必须安装db4-utils-4.3.29-10.el5.rpm(光盘中)包,否则会出现找不到db_load命令错误。

 

3.修改账户数据库访问权限

chmod 600 /etc/vsftpd/vsftpd_virtualuser.db

#为了安全,推荐只有root用户可读可写权限

4.配置PAM文件

为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的PAM模块.PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。修改vsftpd对应的PAM配置文件vim /etc/pam.d/vsftpd,将默认配置使用“#”全部注释,添加以下字段:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser

5.创建虚拟帐号对应的系统帐户

useradd -d /var/ftp/share/ ftpuser
chmod -R 500 /home/ftp/share/  
#只读帐号ftp只允许下载,修改share目录其他用户权限为rx可读可执行。 

useradd -d /var/ftp/vip/ ftpvip
chmod -R 700 /home/ftp/vip/ 
#可读写帐号vip允许上传和下载,所以对vip目录权限设置为rwx,可读可写可执行。
6.建立配置文件

<1> 修改主配置文件vsftpd.conf

添加以下参数:
user_config_dir=/etc/vsftpd/vuserconfig  #虚拟用户配置文件目录

<2>建立虚拟账户配置文件

2.1

cd /etc/vsftpd/vuserconfig
touch test                      #此vsftpd_virtualuser.txt文件中设置的帐户
vim test
添加以下参数:
guest_enable=yes                #开启虚拟帐号登录 
guest_username=ftpuser          #设置ftp对应的系统帐号为ftpuser 

2.2
cd /etc/vsftpd/vuserconfig
touch vip
vim vip                          #此vsftpd_virtualuser.txt文件中设置的虚拟帐户
添加以下参数:
guest_enable=yes                #开启虚拟帐号登录 
guest_username=ftpvip           #设置ftp对应的系统帐号为ftpvip 
anon_world_readable_only=no     #允许匿名用户浏览器整个服务器的文件系统 
write_enable=yes                #允许在文件系统写入权限 
anon_mkdir_write_enable=yes     #允许创建文件夹 
anon_upload_enable=yes          #开启匿名帐号的上传功能 
 
7.测试

用test登录成功,无法上传(无法创建目录)

用vip登录成功,可以上传(可以创建目录)

 

你可能感兴趣的:(linux,linux,ftp,配置,职场,vsftpd,搭建,休闲)