Linux系统下vsftp服务器搭建(一)



一、搭建环境及所需软件包:


RHEL5.5 + vsftpd-2.0.5-16.el5_4.1.i386 + db4-utils-4.3.29-10.el5.i386

Vsftpd下载地址 http://fr2.rpmfind.net/


二、简述:


FTP命令

get命令用于下载文件,put命令用于上传文件

mget和mput用于一次下载或上传多个文件

bye命令可退出ftp命令交互环境


启动和关闭

启动脚本名称是vsftpd

/etc/rc.d/init.d/vsftpd {start|stop|restart|condrestart|status}


vsftpd服务需要设置在运行级别3和5自动启动

# chkconfig --level 35 vsftpd on


服务启动、重启、停止、状态

# service vsftpd {start/restart/stop/status}


vsftpd服务一览

后台进程:

vsftpd

类型:

System V 服务

使用端口:

20(ftp-data),21(ftp)

配置文件:

/etc/vsftpd/vsftpd.conf

/etc/pam.d/vsftpd

日志文件:

/var/log/vsftpd.log


主配置文件vsftpd.conf缺省配置


anonymous_enable=YES

#是否允许匿名访问


local_enable=YES

#是否允许本地/系统用户访问


write_enable=YES

#是否开放对本地用户的写权限


local_umask=022

#本地用户的文件生成掩码


dirmessage_enable=YES

#是否在切换目录时显示其下的.message文件内容


xferlog_enable=YES

#是否启用上传和下载日志


connect_from_port_20=YES

#是否启用FTP数据端口20的连接请求


xferlog_std_format=YES

#是否使用标准的ftpd xferlog日志格式


pam_service_name=vsftpd

#设置PAM认证服务的配置文件名称


userlist_enable=YES

#是否检查userlist_file设置文件中指定的用户是否访问vsftpd服务器


listen=YES

#是否处于独立启动模式


tcp_wrappers=YES

#是否使用tcp_wrappers作为主机访问控制方式


注意:配置文件中没有出现的配置项,将使用默认配置。并于配置项的默认配置请使用:#man 5 vsftpd.conf 进行查看




三、vsftp创建虚拟用户:


步骤:

建立虚拟用户口令库文件

生成vsftpd的认证文件

建立虚拟用户所需的PAM配置文件

建立虚拟用户所要访问的目录并设置相应权限

设置vsftpd.conf配置文件


操作步骤:

1、建立虚拟用户口令库文件,如:/etc/logins.txt

  口令库文件中奇数行设置用户名,偶数行设置口令 :

# touch /etc/logins.txt

# vi /etc/logins.txt

用户1

密码

用户2

密码

用户3

密码

…………

2、生成vsftpd的认证文件

使用db_load命令生成认证文件

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

“db_load”由db4-utils-4.2.52-7.1(版本号可能不一样)软件包安装


3、设置认证文件只对所有者可读可写

# chmod 600 /etc/vsftpd/vsftpd_login.db


4、建立虚拟用户所需的PAM配置文件

     修改文件/etc/pam.d/vsftpd文件,内容如下(建议将原有文件备份,再将文件原内容全部清空,加入以下内容):


auth required /lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login

account required  /lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login


注:此命令中,对应系统进行相应的修改例Centos-32位系统为……/lib/……,Centos-64位系统则为……/lib64/……


/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


5、建立虚拟用户及要访问的目录并设置相应的权限

建立所有虚拟用户帐号使用的系统用户帐号并设置宿主目录的权限      

# useradd -d /home/ftpsite dhwl(此用户是与虚拟用户进行关联的本地用户)

# chmod 700 /home/ftpsite


6、设置vsftpd.conf配置文件

在配置文件中添加虚拟用户的配置内容:

guest_enable=YES

guest_username=dhwl

pam_service_name=vsftpd


7、重新启动vsftpd服务程序

  对vsftpd.conf文件修改后需要重新启动vsftpd服务程序

  # service vsftpd restart