1.ftp服务端部署搭建应用

1.1vsftd部署

1)基础环境

[root@ceshi1 ~]# uname -r

2.6.32-573.el6.x86_64

[root@ceshi1 ~]# cat /etc/centos-release

CentOS release 6.7 (Final)

2)关闭防火墙以及selinux

[root@ceshi1 ~]# /etc/init.d/iptables stop

[root@ceshi1 ~]# setenforce 0

setenforce: SELinux is disabled

3)yum安装vsftpd以及相关依赖

[root@ceshi1 ~]# yum install -y vsftpd    #vsftpd安装程序

[root@ceshi1 ~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包

 

1.2vsftpd配置文件详解

   ftp的配置文件主要有三个在centos中位于/etc/vsftpd/目录下分别是

[root@ceshi1 vsftpd]# tree

├── ftpusers 该文件用来指定哪些用户不能访问ftp服务器

├── user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp

├── vsftpd.conf 主配置文件

具体配置详解:

1)用户登录控制

anonymous_enable=YES允许匿名用户登录

no_anon_password=YES匿名用户登录时不需要输入密码

local_enable=YES允许本地用户登录

eny_email_enable=YES可以创建一个文件保存某些匿名电子邮件的黑名单以防止这些人

 banned_email_file=/etc/vsftpd/banned_emails保存电子邮件黑名单的目录(默认)

 2)用户权限控制

write_enable=YES开启全局上传

local_umask=本地文件上传的umask设置为系统默认

anon_upload_enable=YES允许匿名用户上传当然要在write_enable=YES的情况下同时必须建立一个允许ftp用户读写的目录

anon_mkdir_write_enable=YES允许匿名用花创建目录

anon_mkdir_other_write_enable=YES  是否允许匿名用户删除文件

chown_uploads=YES匿名用户上传的文件属主转换为别的用户一般建议为root

chown_username=whoever改此处的whoever为要转换的属主建议root

chroot_list_enable=YES用一个列表来限定哪些用户只能在自己目录下活动

 chroot_list_enable=/etc/vsftpd/chroot_list指定用户列表文件

 nopriv_user=ftpsecure指定一个安全账户让ftp完全隔离和没有特权的账户

3)用户连接和超时设置

idle_session_timeout=默认的超时时间

data_connection_timeout=设置默认数据连接的超时时间

服务器日志和欢迎信息

dirmessage_enable=YES允许为配置目录显示信息

ftpd_banner=WelcometoblahFTPserviceftp的欢迎信息

xferlog_enable=YES打开日志记录功能

xferlog_file=/var/log/xferlog日志记录文件的位置

4

chown_uploads=YES  # 定义用户上传文件之后是否更改属主

chown_username=whoever # 定义用户上传文件之后属主更改为谁

连接

chroot_local_user=YES #是否禁锢系统用户,一旦启用,那么chroot_list中的用户不被禁锢

chroot_list_enable=YES   # 是否禁锢chroot_list中的用户

chroot_list_file=/etc/vsftpd/chroot_list  # chroot_list文件保存位置

listen=YES  # 是否作为一个独立守护进程运行

pam_service_name=vsftpd  # vsftpd使用的pam服务名称

user_list_enable=YES  # 是否启用user_list文件配合userlist_deny=YES|NO控制用户登录

userlist_deny=YES  # 值为YES时,user_list为黑名单;值为NO时,user_list为白名单

max_clients=N  # 最多允许N个客户端同时连接ftp

max_per_ip=N   # 最多允许N个来自同一ip的客户端连接请求

 

1.3虚拟用户登录配置部署

1.3.1yum安装vsftpd程序以及相关依赖,见1.13

[root@ceshi1 ~]# yum install -y vsftpd    #vsftpd安装程序

[root@ceshi1 ~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包

 

1.3.2修改/etc/vsftpd/vsftpd.conf

1)修改配置文件前备份

[root@ceshi1 vsftpd]#cd /etc/vsftpd

[root@ceshi1 vsftpd]# cp  vsftpd.conf  vsftpd.conf.org

2)建立相关文件及文件夹

[root@ceshi1 vsftpd]# touch /etc/vsftpd/chroot_list

[root@ceshi1 vsftpd]# mkdir /etc/vsftpd/ftplogin

正式配置文件

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=www

user_config_dir=/etc/vsftpd/ftplogin

pam_service_name=vvsftpd

 

1.3.3创建FTP虚拟登录账号

1.创建密码明文文件

[root@ceshi1 vsftpd]# touch /etc/vsftpd/vuser

[root@ceshi1 vsftpd]# vim /etc/vsftpd/vuser

boy

boy123

girl

girl123

test

test123

格式:

用户名1

用户名1密码

用户名2

用户名2密码

2.生成pam校验数据库文件

[root@ceshi1 vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/login.db

为了安全期间,建议在生成校验数据库之后,删除vuser文件

或者修改vuser权限,不让别的用户读(root大神如果被攻陷,那就没什么好说的了)

chmod 600 /etc/vsftpd/vuser

3.添加新的pam service

[root@ceshi1 vsftpd]# touch /etc/pam.d/vvsftpd

[root@ceshi1 vsftpd]# vim /etc/pam.d/vvsftpd

内容如下(注意如果是32位系统,那就用32位的校验,本例是64位的):

#%PAM-1.0

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

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

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login

 

4.FTP虚拟用户赋予权限(增加权限配置文件)

配置文件存放路径,就是conf中的user_config_dir,本文就是/etc/vsftpd/ftplogin,文件名必须和用户名相同

文件配置详解,默认路径需要提前用mkdir建立好,目录拥有者设置为conf中的guest_username,本文为www

#有上传/下载/修改权限

anon_world_readable_only=NO

write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES

local_root=/u01/ftpb/upload/

#只有上传/修改权限

anon_world_readable_only=NO

write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

local_root=/u01/ftpb/upload/

#只有下载权限

anon_world_readable_only=NO

local_root=/u01/ftpb/upload/

 

useradd –d /data/upload  www –s  /sbin/nologin -M

mkdir /data/upload  –p

chown –R www.www  /data/upload

cd  /etc/vsftpd/ftplogin

vim boy /girl/test

anon_world_readable_only=NO

write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES

local_root=/data/upload

1.3.4启动ftp服务

[root@ceshi1 vsftpd]# /etc/init.d/vsftpd start

Starting vsftpd for vsftpd:                                [  OK  ]

1.4客户端利用虚拟用户登录

ftp//ip地址

说明: C:\Users\Thinkpad\AppData\Roaming\Tencent\Users\931840601\QQ\WinTemp\RichOle\GKNZ7T(KH(77]67[{WBS~Q8.png

 

参考文档:http://www.cnblogs.com/kreo/p/4377376.html