Linux 网络系统管理 赛题 FTP配置

部署FTP站点(匿名用户)

mkdir -p /var/ftp/文档中心    //创建目录
cd /var/ftp/文档中心
mkdir 产品技术文档 公司品牌宣传 常用软件工具 公司规章制度
chown -R ftp.ftp /var/ftp/文档中心   //修改所属主和所属组,避免用户无法读写目录中的数据
yum -y install vsftpd.x86_64    //安装vsftpd
systemctl restart vsftpd
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak   //备份配置文件
vim /etc/vsftpd/vsftpd.confanonymous_enable=yes      //允许匿名用户登陆anonymouslocal_enable=NO	//禁止本地用户登陆#local_umask=022   //注释此行表示取消对本地用户设置新增文件的权限掩码write_enable=YES		//具有写入权限anon_upload_enable=YES	//允许匿名用户具备上传权限anon_umask=022    //设置匿名用户的新增文件的权限掩码anon_mkdir_write_enable=YES		//允许匿名用户创建目录anon_other_write_enable=NO			//禁止匿名用户修改或删除文件
ss -lnt |grep 21    //查看端口是否允许

部署FTP专属站点

建立用户并设置主目录

useradd -d /var/ftp/项目部  user1
useradd -d /var/ftp/行政部  user2
passwd user1
passwd user2
//在共享目录下放置测试文件
touch /var/ftp/项目部/1.txt
touch /var/ftp/行政部/2.txt

创建另外一个ftp配置文件

vim /etc/vsftpd/vsftpd2100.confanonymous_enable=NO    //禁止匿名用户登陆local_enable=YES	//允许用户名登陆write_enable=YES	//允许写入local_umask=022	//创建文件的默认权限为755chroot_local_user=YES	//禁止用户切换目录chroot_list_enable=YES		//开启chroot_list功能chroot_list_file=/etc/vsftpd/chroot_list    //chroot_list文件目录pam_service_name=vsftpd   //服务名称为vsftpdlisten_port=2100   //对应端口为2100
vim /etc/vsftpd/chroot_list     //创建chroot_list文件user1user2    //将要收到禁止切换目录的用户添加进去
systemctl restart vsftpd@vsftpd2100    //开启vsftpd2100服务
ss -tlnp|grep 2100    //查看2100端口是否开启

客户端

[root@Client ~]# ftp 192.168.0.7 2100
ftp> pwd    //登陆user1查看路径
257 "/var/ftp/项目部"ftp> ls   //之前写的文件也在里面
227 Entering Passive Mode (192,168,0,7,204,178).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Aug 09 14:29 2.txt
226 Directory send OK.ftp> get 2.txt    //下载到主目录
local: 2.txt remote: 2.txt
227 Entering Passive Mode (192,168,0,7,227,195).
150 Opening BINARY mode data connection for 2.txt (0 bytes).
226 Transfer complete.ftp> mkdir test.txt    //创建成功
257 "/var/ftp/项目部/test.txt" created
ftp> ls    //权限为755
227 Entering Passive Mode (192,168,0,7,35,204).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Aug 09 14:29 2.txt
drwxr-xr-x    2 1003     1003            6 Aug 09 15:10 test.txt
226 Directory send OK.ftp> cd /root
550 Failed to change directory.    //禁止切换目录

比赛

使用ftp服务上传网页代码。

使用vsftpd服务;

ftp的上传文件根目录即为web服务器的网站根目录;

ftp登录的用户为ftpuser;

通过ftp上传的文件用户为webuser, 文件权限为644,目录权限为755。

yum -y install vsftpd
vim /root/ftp_vuser     //创建用户密码的文本文件ftpuser123
db_load -T -t hash -f /root/ftp_vuser /etc/vsftpd/ftp_vuser.db
//从/root/ftp_vuser文件中生成虚拟用户数据库文件ftp_vuser.db
chmod 600 /etc/vsftpd/ftp_vuser.db    //修改文件权限为600,不修改可能报错
useradd -d /data/share/htdocs/skills -s /sbin/nologin webuser
//添加虚拟用户的映射账户,创建映射用户的宿主目录
chmod 777 /data/share/htdocs/skills
vim /etc/pam.d/vsftpd.login //为虚拟用户建立PAM认证文件auth	required	pam_userdb.so	db=/etc/vsftpd/ftp_vuser //指定虚拟用户数据库文件account	required	pam_userdb.so	db=/etc/vsftpd/ftp_vuser
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vim /etc/vsftpd/vsftpd.conflocal_enable=YES  //不用管write_enable=YES //允许执行写操作chroot_local_user=YES //所有用户被限制在ftp目录内,不能跨出该目录,除非有例外情况pam_service_name=vsftpd.login //PAM认证文件   //下面需要自己补充allow_writeable_chroot=YES // 允许写入根路径local_root=/data/share/htdocs/skills //设置ftp文件主目录(登录ftp后显示的目录)支持虚拟用户配置guest_enable=yes //启用虚拟用户guest_username=webuser //虚拟用户映射到的系统账号user_config_dir=/etc/vsftpd/vusers_dir //虚拟用户配置文件存放目录
mkdir /etc/vsftpd/vusers_dir
vim /etc/vsftpd/vusers_dir/ftpuser     //创建虚拟用户的权限配置文件virtual_use_local_privs=NOwrite_enable=YES		//虚拟用户可写入anon_world_readable_only=NOanon_upload_enable=YES	//虚拟用户可上传anon_mkdir_write_enable=YES		//虚拟用户可创建文件anon_other_write_enable=YES			//虚拟用户可重命名,删除anon_umask=022   //设置虚拟用户创建文件的权限为755
systemctl restart vsftpd

客户端

yum -y install lftp
lftp -u ftpuser:123 ftp.sdskills.org

比赛2

禁止使用不安全的FTP,请使用“CSK Global Root CA”证书颁发机构,颁发的证书,启用FTPS服务;

用户webadmin,登录ftp服务器,根目录为/webdata/;

登录后限制在自己的根目录;

允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件。

限制用户的下载最大速度为100kb/s;最大同一IP在线人数为2人;

用于通过工具或者浏览器下载的最大速度不超过 100kb/s

一个IP地址同时登陆的用户进程/人数不超过2人。

yum install vsftpd -y   //安装vsftpd
yum -y install openssl
mkdir /CA
cd /CA   //进入证书目录
mkdir certs
mkdir newcerts
mkdir private
touch index.txt
openssl genrsa -out	private/ftp.key 4096     //生成密钥
openssl req -new -key private/ftp.key -out certs/ftp.csr   //生成证书请求文件
openssl ca -keyfile private/cakey.pem -cert cacert.pem -in certs/ftp.csr -out ftp.crt    //根证书服务器颁发证书(web跟根证书服务器是同一台可以直接颁发)	openssl ca -revoke /csk-rootca/newcerts/01.pem  #吊销证书
mkdir /webdata   //创建要求的目录
chmod 777 /webdata/   //给目录最高权限,它就算最高也会被限制
useradd webadmin   //创建要求的用户  
passwd webadmin   //为用户设置密码
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak    //备份配置文件 
vim /etc/vsftpd/vsftpd.conf  chroot_local_user=YES    //锁定所有系统用户在主目录中force_local_data_ssl=YES    //启用证书认证force_local_logins_ssl=YES     //启用证书登录ssl_enable=YES		//启用sslrsa_cert_file=/ca/ftp.crt    //证书文件路径rsa_private_key_file=/ca/ftp.key  //密钥文件路径local_root=/webdata   //设置本地用户登录的主目录allow_writeable_chroot=YES   //系统用户具有读写权限deny_file={*.doc,*.docx,*.xlsx}   //拒绝文件后缀,doc,docx,xlsxlocal_max_rate=100000   //本地用户最大传输速率max_per_ip=2   //每个IP同时发起最大连接数为2
systemctl restart vsftpd   //重启vsftpd

客户端

yum -y install lftp  //安装ftp服务
vim /etc/lftp.confset ssl:verify-certificate no   //不验证证书,不然拒绝访问
touch test.doc
touch test.docx
touch test.xlsx
touch test.txt     //创建测试文件
lftp -u webadmin:123 172.16.100.202/ftp.sdskills.com
257 "/"
lftp webadmin@ftp.sdskills.com:/> put test.doc
put: Access failed: 550 Permission denied. (test.doc)
lftp webadmin@ftp.sdskills.com:/> put test.xlsx
put: Access failed: 550 Permission denied. (test.xlsx)
lftp webadmin@ftp.sdskills.com:/> put test.dec 
lftp webadmin@ftp.sdskills.com:/> ls
-rw-r--r--    1 1001     1001            0 Sep 05 20:49 test.dec
lftp webadmin@ftp.sdskills.com:/> cd /root/
cd: Access failed: 550 Failed to change directory. (/root)

vsftpd

安装vsftpd及相关依赖
yum -y install vsftpd* pam* db4*vsftpd : ftp 软件
pam : 认证模块
DB4 : 支持文件数据库
vsftpd配置文件说明
/etc/vsftpd/vsftpd.conf      		//vsftpd核心配置文件
/etc/vsftpd/ftpusers					//用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list					//指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_config_migrate.sh			//是vsftpd操作的一些变量和设置脚本
/var/ftp/				//默认情况下匿名用户的根目录 
vsftpd配置详解
属性属性值含义
anonymous_enableYES/NO是否允许匿名用户(anonymous)登录FTP,如果该设置被注释,则默认允许
local_enableYES/NO是否允许本地系统用户登录
write_enableYES/NO是否开启任何形式的FTP写入命令,上传文件
local_umaskxxx本地用户的umask设置,如果注释该设置则默认为077,但一般都设置为022
anon_upload_enableYES/NO是否允许匿名用户上传文件,如果要设置为允许,则需要先开启write_enable,否则无效,此外对于目录还要具有写权限
anon_mkdir_write_enableYES/NO是否允许匿名用户创建新目录
dirmessage_enableYES/NO当进入某个目录时,发送信息提示给远程用户
xferlog_enableYES/NO是否开启 上传/下载 的日志记录
connect_from_port_20YES/NO是否使用20端口来连接FTP
shown_uploadsYES/NO匿名上传的文件是否由某一指定用户 chown_username 所有
shown_username有效用户名匿名上传的文件由该设定的用户所有
xferlog_file有效路径设置日志文件的保存位置,默认为/var/log/vferlog
cp vsftpd.conf{,.bak}   //将文件复制后加上.bak
vsftpd配置匿名用户
vim vsftpd.conf   //进入主配置文件cat vsftpd.conf | grep -v ^#    //-v  反向查找  ^开头   查找开头不带#的内容
write_enbale=YESanon_umask=022    //设置匿名用户文件的权限掩码
anonymous_enable=YES    //允许匿名用户的访问
anon_upload_enable=YES    //允许匿名用户上传文件
anon_mkdir_write_enable=YES   //允许匿名用户创建目录
anon_other_write_enable=YES			//允许匿名用户拥有其他的写入权限(改名,删除,覆盖)dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES //剩下的都是默认参数anon_root=/var/ftp				//匿名用户的FTP根目录
anon_max_rate=0			//限制最大传输速率(字节/秒)0为无限制
netstat -lnpt | grep vsftpd   //查看FTP进程
权限设置
cd /var/ftp   //进入FTP根目录
//如果匿名用户需要在此目录上  上传文件,需要把目录的属主,属组改为FTP
chown -R ftp.ftp pub/    //属主,属组都修改为FTP后面需要重启服务
vsftpd配置系统用户

创建用户

useradd zhangsan   //创建用户
useradd	lisi
passwd	zhangsan
passwd	lisi    //设置密码

修改配置文件

vim /etc/vsftpd/vsftpd.conf
local_enable=YES      //是否允许本地系统用户访问
local_umask=077				//本地用户所上传文件权限掩码
local_root=/var/ftp			//设置本地用户的FTP根目录,如果不指定默认是系统用户的home目录
chroot_local_user=YES			//标识所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的
allow_writeable_chroot=YES
write_enable=YESdirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpduserlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES//配置不能多空格,会导致服务起不来local_max_rate=0			//限制最大传输速率(字节/秒)0为无限制
chroot_list_enable=YES      //标识是否开启chroot的环境,默认没有开启
chroot_list_file=/etc/vsftpd/chroot_list       //表示写在/etc/vsftpd/chroot_list文件里面的用户是不可以出chroot环境的,默认是可以的

添加用户进白名单

vim /etc/vsftpd/user_list
zhangsan
lisi
vsftp配置虚拟用户

建立虚拟FTP用户账号

useradd -s /sbin/nologin vu      	

创建虚拟用户文件

cd /etc/vsftpd/
vim user
wangwu
12345
maliu
12345

基数代表用户名,偶数行代表密码

创建数据文件
通过db_load工具创建出Berkeley DB格式的数据库文件

db_load -T -t hash -f user user.db-f  指定数据原文件
-T	允许非Berkeley DB的应用程序使用文本格式转化的DB数据文件	
-t	hash	读取文件的基本方法

建立支持虚拟用户的PAM认证文件

vim /etc/pam.d/vsftpd.vu
auth	required	/lib64/security/pam_userdb.so	db=/etc/vsftpd/user
account	required	/lib64/security/pam_userdb.so	db=/etc/vsftpd/user

修改配置文件

vim /etc/vsftpd/vsftpd.conf
write_enable=YES			//是否启用写入权限(上传,删除文件)
dirmessage_enable=YES			//用户切换进入目录时显示,message文件
xferlog_enable=YES			//启用日志文件,记录到/var/log/xferlog
connect_from_port_20=YES			//允许服务器主动模式(从20端口建立数据连接)
xferlog_std_format=YES  			//启用标准的xferlog日志格式,禁用此项将使用vsftpd自己的格式
listen=YES      //是否以独立运行的方式监听服务
userlist_enable=YES				//是否启用user_list列表文件
tcp_wrappers=YES			//是否启用tcp_wrappers主机访问控制
allow_writeable_chroot=YES
guest_enable=YES			//设置启用虚拟用户功能
guest_username=vu			//设置虚拟 用户的宿主用户
pam_service_name=vsftpd.vu		//用户认证PAM文件位置
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES			//设置虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/user_dir			//设置虚拟用户个人vsftp的配置文件存放位置listen_address=192.168.1.1			//设置监听FTP服务的IP地址
listen_port=21							//设置监听FTP服务的端口号
download_enable=YES				//是否允许下载文件
pasv_enable=YES			//允许服务器被动模式
pasv_max_port=24600			//设置被动模式服务器的最大端口号
pasv_min_port=24500			//设置被动模式服务器的最小端口号
userlist_deny=YES				//是否禁用user_list列表文件
max_clients=0			//限制并发客户端连接数
max_per_ip=0				//限制同一IP地址的并发连接数
ascii_upload_enable=YES			//表示是否允许用户可以上传一个二进制文件,默认是不允许
chown_username=root				//表示匿名用户上传的文件的拥有人是root,默认关闭
ascii_download_enable=YES		//表示是由允许用户可以下载一个二进制文件,默认不允许
nopriv_user=vsftpd			//设置支撑vsftpd服务的宿主用户为手动建立的vsftpd用户
async_abor_enable=YES			//设置支持异步传输的功能
ftpd_banner=Welcome to awei FTP servers			//设置vsftpd的登录标语

为虚拟用户创建个人的配置文件

mkdir /etc/vsftpd/user_dir
vim /etc/vsftpd/user_dir/zhao    //如果用户叫zhao就以zhao命名
local_root=/etc/vsftpd/data    //虚拟用户的数据存放路径mkdir /etc/vsftpd/data   //创建虚拟用户数据存放目录
chmod 777 /etc/vsftpd/data/   //给予权限

lftp

-f:指定lftp指令要执行的脚本文件
-c:执行指定的命令后退出
--help:限制帮助信息
--version:限制指令的版本号
lftp 192.168.107.129   //登录ftp服务器get  hahaa -o /   //下载hahaha到/目录下
mirror test/    //mirror可以下载ftp上的目录

选拔赛

 yum -y install vsftpdvim /etc/vsftpd/vsftpd.conf anonymous_enable=NO   //不允许匿名listen_port=2121   //监听2121pasv_enable=YES  //开启被动模式pasv_max_port=31500   //端口范围31000-31500pasv_min_port=31000idle_session_timeout=210    //设置会话超时时间210userlist_deny=YES   //限制用户useradd ZZFTP001
useradd ZZFTP002vim /etc/vsftpd/user_list ZZFTP002systemctl restart vsftpdfirewall-cmd --add-port=2121/tcp
mkdir /home/ZZFTP001/WordFile
chmod -R 777   /home/ZZFTP001/
测试
lftp ZZFTP001:123@10.10.10.13:2121    //我把防火墙关了get WordFile

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算复习提纲

第一章 大数据的概念:海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策 大数据的特点:①数据量大,存储的数据量巨大,PB级别是常态;②多样,数…

【AI】免费搭建一个属于自己的GeminiProGpt

目录 前言 1、环境准备 1.1 科学上网 2、账号准备 2.1 git账号一枚 2.2 Vercel 账号 2.3 注册API key 3、系统搭建

SpringBoot快速集成多数据源(自动版)

有些人因为看见所以相信,有些人因为相信所以看见 有目录,不迷路 前期准备实现演示参考 最近研究了一下多数据源,这篇博客讲的是简单模式,下篇博客预计写自动切换模式 前期准备 本篇博客基于SpringBoot整合MyBatis-plus&#xff0…

vue保姆级教程----深入了解Vuex的工作原理

📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 CSS专栏:想学CSS的,冲这里 &#x1f4…

Gen-AI 的知识图和分析(无需图数据库)

如今,图表比以往任何时候都更加相关和有用。由于目前正在发生的人工智能革命,工程师们正在考虑围绕 Gen-AI 的机会,利用具有动态提示、数据基础和屏蔽功能的开放 Gen-AI 解决方案,这进一步促使他们思考知识图谱等有效的解决方案。…

面试 Java 框架八股文五问五答第五期

面试 Java 框架八股文五问五答第五期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的! ⭐点赞⭐收藏⭐不迷路!⭐ 1)MyBatis 中 #{} 和 ${} 的区别是什么? #{} 是预编译…

Ansible自动化运维(一)简介及部署、清单

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

Vue2 - Vue.observable 介绍

目录 1,介绍2,使用场景和 Vue 实例的区别 1,介绍 官网参考 可以让一个对象变成响应式数据。在 Vue 内部就是用它来处理传递给 Vue 的 data 对象,或是在单文件组件中 data() 返回的对象。 var vm new Vue({data: {count: 0} })…

PDF模板填充,基于IText5(改进版)

原版:PDF模板填充,基于IText5-CSDN博客 \import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.*;import java.io.B…

MySQL数据库学习二

2 MySQL InnoDB 锁的基本类型 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html 官网把锁分成了 8 类。所以我们把前面的两个行级别的锁(Shared and ExclusiveLocks),和两个表级别的锁(Intention Locks)…

记录:开始学习网络安全

本文持续更新学习进度 背景 在私企干了5年虚拟化、云原生相关的运维,学到了很多,但不成体系。老板是清华毕业法国留学在德勤干过,最后回国创业的野路子。我工作是为了更好的生活,我挺担心老板因为家庭变故或者炒个原油宝&#x…

使用Collectors.toMap()报NullPointerException

使用Collectors.toMap()报NullPointerException 文章目录 使用Collectors.toMap()报NullPointerException问题代码问题分析 记录下最近工作中在使用 stream().collect(Collectors.toMap())出现的空指针问题 问题代码 Test public void test2() {List<Student> studentL…

游泳耳机到底怎么选?一文说全游泳耳机哪个好!

对于一个热爱游泳的人&#xff0c;每次游泳都希望找到一种好的方式来打发时间&#xff0c;同时也希望能够得到一些锻炼。在尝试了各种游泳装备之后&#xff0c;发现游泳耳机是一个非常不错的选择&#xff0c;不过市面上的游泳耳机鱼龙混杂&#xff0c;所以游泳耳机的选择需要综…

深度学习|2.11 向量化vectorization

2.11 向量化的作用 向量化可以使得向量中的每一个维度的数据进行并行计算&#xff0c;从而加快了神经网络的计算速度。 验证 其他

基于Python的新闻推荐平台:网络爬虫与推荐算法实现

项目设计目的 项目旨在开发一个基于Python的新闻推荐平台&#xff0c;通过网络爬虫实时抓取新闻数据&#xff0c;并利用推荐算法为用户提供个性化的新闻推荐服务。通过该平台&#xff0c;用户可以快速获取自己感兴趣的新闻内容&#xff0c;提高用户的阅读体验和粘性。 功能需…

超市订单管理系统

比较简单的超市订单管理系统

4.28 构建onnx结构模型-Unfold

前言 构建onnx方式通常有两种&#xff1a; 1、通过代码转换成onnx结构&#xff0c;比如pytorch —> onnx 2、通过onnx 自定义结点&#xff0c;图&#xff0c;生成onnx结构 本文主要是简单学习和使用两种不同onnx结构&#xff0c; 下面以 Unfold 结点进行分析 方式 方法…

电子书推荐|VMware 替代与升级攻略:技术路线、产品对比与用户实践

在进行 VMware 国产化替代时&#xff0c;您是否会遇到以下问题&#xff1a; 如何实现 VMware 整体架构/部分组件替换&#xff1f;是否可以不仅“为替换而替换”&#xff0c;而是同时实现架构的升级&#xff0c;带来更多业务价值&#xff1f;哪些国产方案具备 VMware 同等能力&…

vue3+ts+vite自定义组件上传npm流程

1. 创建项目 npm create vite 这里踩坑点&#xff1a; 运行vite生成的vue项目时报错“SyntaxError: Unexpected token ?? at “ 是因为node版本过低 电脑为windows11系统&#xff0c;我当时使用的版本node版本是14.21.3&#xff0c;如下图&#xff0c;后边安装了nvm版本…

PyTorch中常用的工具(3)TensorBoard

文章目录 前言3 可视化工具3.1 TensorBoard 前言 在训练神经网络的过程中需要用到很多的工具&#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块&#xff0c;合理使用这些工具可以极大地提高编程效率。 由于内容较多&#xff0c…