1.ftp服务端部署搭建应用
1.1vsftd部署1)基础环境 [iyunv@ceshi1 ~]# uname -r 2.6.32-573.el6.x86_64 [iyunv@ceshi1 ~]# cat /etc/centos-release CentOS release 6.7 (Final) 2)关闭防火墙以及selinux [iyunv@ceshi1 ~]# /etc/init.d/iptables stop [iyunv@ceshi1 ~]# setenforce 0 setenforce: SELinux is disabled 3)yum安装vsftpd以及相关依赖 [iyunv@ceshi1 ~]# yum install -y vsftpd #vsftpd安装程序 [iyunv@ceshi1 ~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包
1.2vsftpd配置文件详解 ftp的配置文件主要有三个在centos中位于/etc/vsftpd/目录下分别是 [iyunv@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.1(3)[iyunv@ceshi1 ~]# yum install -y vsftpd #vsftpd安装程序 [iyunv@ceshi1 ~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包
1.3.2修改/etc/vsftpd/vsftpd.conf1)修改配置文件前备份 [iyunv@ceshi1 vsftpd]#cd /etc/vsftpd [iyunv@ceshi1 vsftpd]# cp vsftpd.conf vsftpd.conf.org 2)建立相关文件及文件夹 [iyunv@ceshi1 vsftpd]# touch /etc/vsftpd/chroot_list [iyunv@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.创建密码明文文件 [iyunv@ceshi1 vsftpd]# touch /etc/vsftpd/vuser [iyunv@ceshi1 vsftpd]# vim /etc/vsftpd/vuser boy boy123 girl girl123 test test123 格式: 用户名1 用户名1密码 用户名2 用户名2密码 2.生成pam校验数据库文件 [iyunv@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 [iyunv@ceshi1 vsftpd]# touch /etc/pam.d/vvsftpd [iyunv@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服务[iyunv@ceshi1 vsftpd]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] 1.4客户端利用虚拟用户登录ftp://ip地址
|