RHEL5.5
下vsftp服务器搭建
一、搭建环境
及所需软件包
:
RHEL5.5 + vsftpd-2.0.5-16.el5_4.1.i386 + db4-utils-4.3.29-10.el5.i386
两个软件包的安装无前后顺序
二、简述:
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}
注:需要关闭linux系统的防火墙
chkconfig –level 2345 iptables off
使用setup命令设置防火墙为禁用
vsftpd
服务一览
后台进程:
vsftpd
类型:
System V
服务
使用端口:
20(ftp-data)
,21(ftp)
配置文件:
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/ftpusers
/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日志记录时间错误问题(与真实时间相差约8小时),在主配置文件vsftpd.conf加入一行:
use_localtime=YES
三、vsftp创建虚拟用户:
步骤:
建立虚拟用户口令库文件
生成vsftpd的认证文件
建立虚拟用户所需的PAM配置文件
建立虚拟用户所要访问的目录并设置相应权限
设置vsftpd.conf配置文件
操作步骤:
1
、建立虚拟用户口令库文件,如:/etc/logins.txt
口令库文件中奇数行设置用户名,偶数行设置口令:
(此处账号密码以公司5.71FTP示例)
# touch /etc/logins.txt
# vi /etc/logins.txt
admin
ftp.project
up
up.project
down
down.ftp
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.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
/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 /project
dhwl
(
此用户是与虚拟用户进行关联的本地用户
)
# chmod 700 /project
6
、设置vsftpd.conf配置文件
在配置文件中添加虚拟用户的配置内容:
guest_enable=YES
guest_username=
dhwl
pam_service_name=vsftpd
7
、重新启动vsftpd服务程序
对vsftpd.conf文件修改后需要重新启动vsftpd服务程序
# service vsftpd restart
对虚拟用户设置不同的权限
1
、设置主配置文件:
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2
、建立用户配置文件目录
# mkdir /etc/vsftpd/vsftpd_user_conf
3
、为虚拟用户建立单独的配置文件
用户配置文件名称与用户名相同,如:
touch /etc/vsftpd/vsftpd_user_conf/
admin
touch /etc/vsftpd/vsftpd_user_conf/
up
touch /etc/vsftpd/vsftpd_user_conf/
down
虚拟用户配置文件中的配置项
每个FTP虚拟用户都可以独立设置其权限,如:
local_root=/home/ftpsite
设定虚拟用户FTP主目录,使无法向上跳转
write_enable=YES
允许此用户具有写权限
anon_world_readable_only=NO
表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES
表示用户可以上传文件
anon_mkdir_write_enable=YES
表示用户具有建立和删除目录的权利
anon_other_write_enable=YES
表示用户具有文件改名和删除文件的权限
【管理员用户权限配置--示例】
local_root=/home/ftpsite
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
【上传用户权限配置--示例】
local_root=/home/ftpsite
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
【下载用户权限配置--示例】
local_root=/home/ftpsite
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
配置vsftpd服务器中的资源限制
vsftpd
服务器中的资源使用可以进行限制(修改主配置文件vsftpd.conf),如:
max_clients=100
设置FTP服务器允许的最大客户端连接数,0:不限制
max_per_ip=5
设置对于同一IP地址允许的最大客户端连接数,0:不限制
local_max_rate=500000
设置本地用户的最大传输速率,单位bytes/sec,0:不限制
anon_max_rate=200000
设置匿名用户的最大传输速率,单位bytes/sec,0:不限制
(注:修改主配置文件vsftpd.conf后应重启vsftpd服务)
---Mr.zhang
转载于:https://blog.51cto.com/rooooooooooooot/810703