linux下WEB服务器安装、配置VSFTP
服务器环境:CentOS 6.5 64位
#检查系统是否已安装vsftp
命令:rpm -q vsftpd
package vsftpd is not installed #说明系统没有安装vsftpd
一、vsftp安装
# 安装vsftpd
yum -y install vsftpd
# 启动
service vsftpd start
# 开机启动
chkconfig vsftpd on
二、vsftp相关命令
# 启动ftp服务
service vsftpd start
# 查看ftp服务状态
service vsftpd status
# 重启ftp服务
service vsftpd restart
# 关闭ftp服务
service vsftpd stop
三、目录文件说明:
/etc/vsftpd/vsftpd.conf vsftpd的核心配置文件
/etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本
/var/ftp/ 默认情况下匿名用户的根目录
====基于虚拟账户权限认证====
vsftpd的虚拟用户采用单独的用户名/口令保存方式,与系统账户分离,这大大增强了系统的安全性。vsftpd可以采用数据库文件来保存用户/口令,如hash;也可以将用户/口令保存在数据库服务器中,如MySQL等。vsftpd验证虚拟用户,则采用PAM方式
安装依赖包
yum install -y db4 db4-utils
创建虚拟用户账号和密码
(奇数行为用户名,偶数行为用户密码)
vi /etc/vsftpd/virtual.users
user1 #虚拟用启名
123 #用户口令
user2
456
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/virtual.users /etc/vsftpd/vsftpd.login.db
chmod 600 /etc/vsftpd/vsftpd.login.db
配置PAM信息
在/etc/pam.d/创建一个文件,命名为vsftpd.pam(可自定义)
vi /etc/pam.d/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd.login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd.login
配置vsftpd.conf
配置前先备份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
配置如下:
anonymous_enable=NO
local_enable=YES
local_umask=022
anon_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
listen=YES
userlist_enable=YES
pam_service_name=vsftpd.pam
guest_username=ftp #虚拟用户所映射的本地用户。这里也改成与web服务器用户一致的用户名www,这样就可以保持ftp与web具有同等权限。
guest_enable=YES #这个是开启虚拟用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf
tcp_wrappers=YES
创建用户名的配置文件
mkdir -p /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
在conf里创建 刚才用户名的配置文件 配置文件名要与用户名一样
user1要有所有全部权限
vi user1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
local_root=/data0/htdocs/www.site1.com write_enable=yes download_enable=yes anon_upload_enable=yes anon_mkdir_write_enable=yes anon_other_write_enable=yes anon_world_readable_only=no idle_session_timeout=600 data_connection_timeout=120 max_clients=2 max_per_ip=3 local_max_rate=512000 |
user2只有上传和下载权限
vi user2
1 2 3 4 5 6 7 8 9 10 11 12 13 |
local_root=/data0/htdocs/www.site2.com write_enable=YES download_enable=yes anon_upload_enable=yes anon_other_write_enable=no anon_mkdir_write_enable=no anon_world_readable_only=no |
# 重启ftp服务
service vsftpd restart
====常见的vsftpd日志解决方案====
配置vsftpd.conf,
# 表明FTP服务器记录上传下载的情况
xferlog_enable=YES
# 表明将记录的上传下载情况写在xferlog_file所指定的文件中,即xferlog_file选项指定的文件中
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
# 启用双份日志。在用xferlog文件记录服务器上传下载情况的同时, vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也将记录登录、上传、下载、删除的情况
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
====日常管理虚拟用户账号和密码====
修改文件
vi /etc/vsftpd/virtual.users
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/virtual.users /etc/vsftpd/vsftpd.login.db
# 重启ftp服务
service vsftpd restart