码迷,mamicode.com
首页 > 其他好文 > 详细

FTP?文件传输服务

时间:2020-03-01 00:40:53      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:ini   enforce   lis   断点续传   0kb   排除   默认   load   所有权   

03 FTP?文件传输服务 1.FTP服务原理理概述 2.FTP服务传输模式 3.FTP服务安装配置 4.FTP匿匿名?用户访问 5.FTP本地?用户访问 6.FTPFTP企业案例例 FTP(File Transfer Protocol), 中?文为 “?文件传输协议” 是?一种在互联?网上进?行行?文件传输的协议, ?用于 在Internet上控制?文件的双向传输。 FTP是?一个应?用程序, 基于客户端/服务器?模式,默认使?用TCP 20/21端?口: FTP控制链接:21端?口,?用于接受客户端发出的相关FTP命令与参数 FTP数据链接:20端?口,?用于数据传输, ?比如: 上传、下载数据 FTP服务端通常部署在企业内?网, 具有容易易搭建、?方便便管理理、安全稳定等特征。 ?而且有些FTP客 户端?工具?支持?文件的多点下载以及断点续传技术,因此FTP服务得到了了?广?大?用户的?青睐。 FTP协议的传输拓拓扑如下: 03 FTP?文件传输服务 1.FTP服务原理理概述 FTP登陆?用户: 匿匿名?用户 -->系统?用户 系统?用户 -->?一般关闭 虚拟?用户 -->系统?用户 FTP传输模式 1. 主动模式:服务端通过20端?口主动向客户端连接,传输数据。 2. 被动模式:服务端启动随机端?口,等待客户端发起连接,进?行行数据传输。 2.FTP服务传输模式 FTP传输模式总结: FTP服务器?端启?用防?火墙, 开启21/20端?口,这时FTP只能?工作在主动模式 FTP客户端开启防?火墙,这时FTP只能选择?工作在被动模式 FTP客户端和FTP服务端都有防?火墙,那么将?无法使?用FTP主动和被动模式 1.基础环境准备 [root@ftp-server ~]# uname -r 3.10.0-693.el7.x86_64 [root@ftp-server ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.4 (Maipo) 2.关闭防?火墙以及 selinux [root@ftp-server ~]# systemctl stop firewalld [root@ftp-server ~]# systemctl disable firewalld [root@ftp-server ~]# sed -ri ‘/^SELINUX=/cSELINUX=disabled‘ /etc/selinux/config [root@ftp-server ~]# setenforce 0 [root@ftp-server ~]# getenforce 3.FTP服务安装配置 Disabled 3.安装 vsftpd 服务 // 需要有 epel 仓库 [root@ftp-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/r epo/epel-7.repo [root@ftp-server ~]# yum install vsftpd libdb-utils -y 4.启动 ftp 服务并加?入开机?自启动 [root@ftp-server ~]# systemctl enable vsftpd [root@ftp-server ~]# systemctl start vsftpd 注意: 默认使?用匿匿名?用户访问共享?目录站点为 /var/ftp 仅拥有下载权限 5. vsftpd 全局配置?文件注释 [root@ftp-server ~]# cat /etc/vsftpd/vsftpd.conf anonymous_enable=YES // 是否启?用匿匿名?用户 local_enable=YES // 是否启动本地?用户 write_enable=YES // 开启全局上传?文件 local_umask=022 // 控制本地?用户上传?文件默认权限 , umask 表示要减掉的权限 anon_umask=022 // 控制匿匿名?用户上传?文件的默认权限 anon_upload_enable=YES // 允许匿匿名?用户上传 anon_mkdir_write_enable=YES // 允许创建?目录 dirmessage_enable=YES // 配置?用户?目录显示信息 xferlog_enable=YES // 启动?日志 xferlog_file=/var/log/vsftpd.log// 指定?日志位置,配置 xferlog_enable 使?用 connect_from_port_20=YES xferlog_std_format=YES listen=YES // 是否作为?一个独?立守护进程运?行行 chroot_local_user=YES // 禁锢所有?用户在?用户?目录下 chroot_list_enable=YES // 配合 chroot_list_file 使?用 chroot_list_file=/etc/vsftpd/chroot_list // 禁锢?用户列列表 pam_service_name=vsftpd ////PAM 认证?文件 userlist_enable=YES //ftpusers ?文件下的?用户都被拒绝登陆访问 tcp_wrappers=YES guest_enable=YES // 开启虚拟?用户 guest_username=www //FTP 虚拟?用户对应的系统?用户 user_config_dir=/etc/vsftpd/ftplogin // 授权 FTP 虚拟?用户所在?目录 // 权限限制 local_root=/data/ftp // 指定本地?用户访问?目录站点 anon_root=/data/ftp // 指定匿匿名?用户访问?目录站点 // 资源控制 anon_max_rate=500000 // 匿匿名?用户限速 local_max_rate=800000 // 本地?用户限速 max_clients=100 // 同时能接收多少请求 max_per_ip=2 // ?一个 ip 同时能有多少连接 1.配置匿匿名?用户访问ftp服务,拥有创建?文件夹、上传下载?文件、不不允许删除、移动、重命令 // 编辑 vsftpd 主配置?文件 [root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf // 启动匿匿名?用户、允许上传和创建?文件权限 anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES // 修改默认 ftp 共享?目录站点权限,最后重新加载 vsftpd 服务 [root@ftp-server ~]# chmod -R 777 /var/ftp/ [root@ftp-server ~]# systemctl restart vsftpd //Linux 下使?用 lftp 客户端?工具访问 vsftpd 服务验证,安装此?工具 [root@ftp-server ~]# yum install lftp -y // 使?用匿匿名?用户登录 vsftpd [root@ftp-client ~]# lftp 192.168.56.11 lftp 192.168.56.11:~> ls drwxrwxrwx 2 0 0 4096 Mar 22 2017 pub lftp 192.168.56.11:/> cd pub // 创建?目录 lftp 192.168.56.11:/pub> mkdir dir_ftp mkdir ok, `dir_ftp‘ created lftp 192.168.56.11:/pub> ls drwx------ 2 14 50 4096 Nov 14 21:10 dir_ftp // 切换系统其他?目录 lftp 192.168.56.11:/pub> lcd /etc lcd ok, local cwd=/etc // 下载系统内?文件 lftp 192.168.56.11:/pub> put inittab 4.FTP匿匿名?用户访问 884 bytes transferred lftp 192.168.56.11:/pub> ls drwx------ 2 14 50 4096 Nov 14 21:10 dir_ftp -rw------- 1 14 50 884 Nov 14 21:11 inittab // 切回 ftp ?目录 lftp 192.168.56.11:/pub> cd cd ok, cwd=/ lftp 192.168.56.11:/> cd pub lftp 192.168.56.11:/pub> ls drwx------ 2 14 50 4096 Nov 14 21:10 dir_ftp -rw------- 1 14 50 884 Nov 14 21:11 inittab // 验证删除?文件权限 lftp 192.168.56.11:/pub> rm inittab rm: Access failed: 550 Permission denied. (inittab) 本地?用户访问 ftp 默认拥有上传和下载权限 1.本地?用户访问ftp服务 [root@ftp-server ~]# useradd ftp_test [root@ftp-server ~]# echo "123"|passwd --stdin ftp_test // 客户端验证 [root@ftp-client ~]# lftp 192.168.56.11 lftp 192.168.56.11:~> login ftp_test 123 lftp ftp_test@192.168.56.11:/> mkdir ftp [root@ftp-server ~]# ls /home/ftp_test ftp 2.拒绝特定的本地?用户访问ftp [root@ftp-server ~]# echo "ftp_test" >> /etc/vsftpd/ftpusers // 客户端验证 [root@ftp-client ~]# lftp 192.168.56.11 lftp 192.168.56.11:~> login ftp_test 123 lftp ftp_test@192.168.56.11:~> ls ls: Login failed: 530 Login incorrect. 3.锁定所有本地?用户只能在?自?己的家?目录操作,但允许bgx?用户不不被锁定家?目录 chroot_local_user=YES // 锁定所?用?用户?至家?目录 chroot_list_enable=YES // 排除某个?用户不不被锁定 5.FTP本地?用户访问 chroot_list_file=/etc/vsftpd/chroot_list // 对应的?文件 allow_writeable_chroot=YES //centos7 必须增加 公司为了了宣传最新的产品信息,计划搭建FTP服务器?,为客户提供相关?文档的下载。对所有权互 联?网开放共享?目录,允许下载产品信息。公司的合作单位能够使?用FTP服务器?进?行行上传和下载。 需求分析 根据企业的需求,对于不不同?用户进?行行不不同的权限限制,FTP服务器?需要实现?用户的审核。需 考虑到服务器?的安全性,所以关闭实体?用户登录,使?用虚拟帐号验证机制,并对不不同虚拟帐 号设置不不同的权限。为了了保证服务器?的性能,还需要根据?用户的等级,限制客户端的连接数 及下载速度。 解决?方案 1.匿匿名?用户允许下载我们公司的产品, 但需要对其限速50Kb 2.普通?用户可以针对?自?己的?目录进?行行上传和下载,对其限速500Kb(虚拟?用户) 3.管理理?用户, 可以访问所有?目录资源, 并可以操作客户的?目录, 但不不允许操作对外 4.优化: 根据不不同的等级?用户做不不同的限速, 限制客户端连接次数(5) [root@ftp-server ~]# /data/ftp //manager ?用户能管理理所有?目录 , 但不不能管理理 soft ?目录 manager bgx //bgx普通?用户仅能查看?自?己的?文件和修改 soft //匿匿名?用户仅能下载共享软件包 1.建?立系统账户, 供与虚拟账户使?用 [root@ftp-server ~]# useradd virftp -s /sbin/nologin //2.创建对应?目录,赋予权限 [root@ftp-server ~]#mkdir -p /data/ftp/{manager,bgx,soft} [root@ftp-server ~]#chown -R virftp.virftp /data/ftp/{manager,bgx} //3.创建虚拟?用户账户及密码 [root@ftp-server ~]# cat > /etc/vsftpd/vsftpd_login <<EOF manager manager bgx bgx EOF [root@ftp-server ~]# chmod 600 /etc/vsftpd/vsftpd_login 6.FTPFTP企业案例例 //4.?生成对应的库?文件 [root@ftp-server ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsf tpd_login.db //5.修改pam?文件 [root@ftp-server ~]# vim /etc/pam.d/vsftpd auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //6.建?立虚拟?目录 [root@ftp-server ~]# mkdir /etc/vsftpd/vsftpd_user_conf //7.配置匿匿名?用户权限,限速100k //匿匿名?用户登陆默认?目录,必须要和/etc/passwd中的ftp?用户的默认宿主?目录要?一样,否则也会出错误! anonymous_enable=YES anon_root=/data/ftp/soft anon_max_rate=100000 //关闭之前修改过的匿匿名上传和创建权限 anon_upload_enable=NO anon_mkdir_write_enable=NO //8.配置管理理?用户, 限速2MB cat > /etc/vsftpd/vsftpd_user_conf/manager <<EOF local_root=/data/ftp/ allow_writeable_chroot=YES write_enable=YES local_umask=022 anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=2000000 EOF //9.配置普通?用户, 限速1MB cat > /etc/vsftpd/vsftpd_user_conf/bgx <<EOF local_root=/data/ftp/bgx allow_writeable_chroot=YES write_enable=YES local_umask=022 anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=1000000 EOF //10.配置?文件尾部追加如下内容 chroot_local_user=YES guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf //11.使?用ftp客户端验证权限即可 ![](https://s1.51cto.com/images/blog/202002/29/d75cd0a3aec54f20da6ddabbf8ce8393.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,ty ```pe_ZmFuZ3poZW5naGVpdGk=)

FTP?文件传输服务

标签:ini   enforce   lis   断点续传   0kb   排除   默认   load   所有权   

原文地址:https://blog.51cto.com/11232190/2474412

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!