Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1676
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2016-01-21 16:59
个人简介

世界由你而精彩,有我,你更幸福!

文章分类
文章存档

2016年(1)

我的朋友
最近访客

分类: 服务器与存储

2016-01-22 14:49:33

作者:陈伟明
联系 :  QQ 942923305 | 微信 toby942923305
E-mail: toby2chen@hotmail.com
==================================
服务器
操作系统:CentOS6.5(64位)

==================================
修订时间:
10:42 2015-1-20 星期二
11:15 2015-2-4 星期三


==================================


安装:
#yum -y install vsftpd* 安装ftp服务器


随机开启:
# chkconfig vsftpd on

配置文件所在位置
/etc/vsftpd/

#采用虚拟用户登录,这样安全 
我们映射本地用户为www,若没有就新建一个
#groupadd www
# useradd -g www www 
若要不能用于ssh登录,可以 # useradd -g www -s  /sbin/nologin www ,我这里暂时不要这么严格
这里默认家目录是 /home/www




新建虚拟用户  
用户名 hqm   密码 hqm
用户名 lgp     密码 lgp


# vi /etc/vsftpd/vsftpd_login.txt   一行用一行密码,奇数行是用户名, 偶数行是用户密码
hqm
hqm
lgp
lgp


:wq  保存


把文件转换成系统能识别的密码:
会用到db4
# rpm -qa|grep db4    查一下有没有安装
[root@dev log]# rpm -qa|grep db4
db4-utils-4.7.25-18.el6_4.x86_64
db4-4.7.25-18.el6_4.x86_64
我这里显示安装,若没有安装,就装一下
# yum -y install db4-utils db4


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


配置PAM
# vi /etc/pam.d/vsftpd   其它行注释, 最后加两
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login#不需要加上.db
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login#不需要加上.db
最终如下:
#%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     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login


:wq  保存


===============================================
修改vsftp 主配置文件
Local_enable=YES
local_root=/var/virtual
guest_enable=YES开启虚拟帐号登录
guest_username=virtual设置系统帐号
user_config_dir=/etc/vsftpd/config


配置主配置文件/etc/vsftpd/vsftpd.conf添加虚拟帐号的共同设置并添加user_config_dir字段,定义虚拟帐号的配置文件目录
chroot_local_user=YES将虚拟用户限制在家目录中
建立与虚拟帐号同名的配置文件并添加相应的配置字段


# mkdir -p /etc/vsftpd/config
# touch  /etc/vsftpd/config/hqm   权限配置文件
# touch  /etc/vsftpd/config/lgp   权限配置文件
# vi /etc/vsftpd/config/hqm
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_upload_enable=yes
anon_umask=002




:wq 保存


# vi /etc/vsftpd/config/lgp
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_upload_enable=yes
anon_umask=002


总掩码 777 - 反掩码 022 = 你要的掩码 755  设上传好的文件权限公式


:wq 保存


日志:
xferlog_enable=YES
xferlog_std_format=YES 
xferlog_file=/var/log/xferlog 
dual_log_enable=YES 
vsftpd_log_file=/var/log/vsftpd.log 


# touch /var/log/xferlog 
# touch /var/log/vsftpd.log 




#vi /etc/vsftpd/vsftpd.conf   最终文件如下


# Example config file /etc/vsftpd/vsftpd.conf


anonymous_enable=NO
local_enable=YES
local_root=/home/www   #我这里所有用户是上传到这个目录,若每个虚拟用户上传不同目录,就把这项放到 每个用户的权限文件中
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
chroot_local_user=YES
#virtual user
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/config
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_port=21
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090


:wq 保存
====================================
重启生效
# service vsftpd restart


防火墙:
# vi /etc/sysconfig/iptables  添加以下规则


-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10090:10100 -j ACCEPT


:wq 保存


 # service iptables restart  生效


客户端测试


查看日志:
# tail /var/log/xferlog 
Tue Jan 20 09:54:00 2015 1 192.168.1.60 2 /test.txt a _ i g lgp ftp 0 * c
得到最后谁修改了文件
==================================================================
以后增加用户
以test (testpass 密码)为例: 
# echo test >>/etc/vsftpd/vsftpd_login.txt    用户名
# echo testpass>>/etc/vsftpd/vsftpd_login.txt    用户名
#  db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db  生成密码文件
#  vi  /etc/vsftpd/config/test   权限配置文件
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_upload_enable=yes


:wq 保存


#  service vsftpd restart   重启生效


============================




安全说明:
启用/禁止匿名用户访问。 
anonymous_enable=YES/NO 
允许本地用户登录并允许其上传文件。 
local_enable=YES 
write_enable=YES 
将本地用户锁定在主目录中,不允许切换到上一级目录中 
chroot_local_user=YES 
匿名和本地用户限速(单位byte) 
anon_max_rate=数字 
local_max_rate=数字 
禁止某些用户通过ftp登录服务器。如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。在vsftpd.conf中有三个选项控制: 
userlist_deny=YES/NO 
userlist_enalbe=YES 
userlist_file=/etc/vsftpd.user_list 
如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户一行。 
禁止用户通过FTP修改文件或文件夹的权限。 
chmod_enable=NO( 
设置本地用户上传的文件或文件夹的umask值(默认为077) 
local_umask=022 
最多同时允许100个客户连接 
max_clients=100 
每个ip地址最多允许开3个线程 
max_per_ip=3 
只监听来访问192.168.0.2(适用本机多网卡、多IP的情况)的FTP服务请求 
listen_address=192.168.0.2 
  












阅读(191) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~