libevent,有哪些适合大学生学习的网站推荐

伏羲号

libevent,有哪些适合大学生学习的网站推荐?

大学的课余时间很多,好好利用大学四年的课余时间,毕业后你一定会感谢那时的自己。课余时间可以继续提高自己的专业水平,还可以学习一些其它的技能,比如一些兴趣学习,办公技能,搜索技能等等。

libevent,有哪些适合大学生学习的网站推荐

今天我给大家安利一波大学生常用的网站。分成三大类,学习提升类,工具效率类,资源搜索类(PS:文中的这些网站你都可以私信我“大学生网站”免费获得)

学习提升类

这7个学习网站都是包含很多学科的,学习教程很丰富,大量都是免费的,希望对大家有帮助~

1、中国大学MOOC

国家精品课程在线学习平台,汇聚知名高校课程的中文MOOC平台,在这里,每一个有意愿提升自己的人都可以获得更优质的高等教育

丰富的名师名校课程,广泛认可的证书支持,全新完整的在线教学模式。大量课程可以免费报名参加,有课件,测试作业,考试,讨论区。

2、网易云课堂

网易出品的在线实用技能学习平台,海量优质的课程。

涉及到职场提升,编程和开发,AI和数据科学,产品和运营,设计创意,电商运营,语言学习,职业考试,生活兴趣。

3、哔哩哔哩弹幕网

①你可以直接搜索自己想要的内容,比如我搜索PPT教程,里面有原创的有搬运的,有的还很系统,需要自己去寻找了。

②你也可以直接在特定的栏目找自己喜欢的视频教程,比如科技区的趣味科普人文栏目,里面有教育,设计,艺术,摄影,自然,纪实等等。

野生技术协会栏目里面的内容就更丰富多彩了,编程,设计,科技,后期,动画,硬件,测评,学习心得,经验分享,语言学习等等。

③你也可以关注一些自己喜欢的宝藏UP主,每天都可以学一点自己喜欢的内容,我给大家推荐一些UP主,希望对大家有帮助~

UP主推荐:蜡笔和小勋分享学习和成长干货,学习方法,自学能力,笔记方法,提升效率,思维模式等等。个人感觉质量还不错,视频风格很活跃,还是有多干货的,小伙伴可以尝试做思维导图,思考实践整理输出自己的方法。UP主推荐:李永乐老师官方李永乐老师是一名中学老师,在B站上面分享了大量物理,数学的教学视频,还有大量生活科技科普视频,干货满满。UP主推荐:3Blue1Brown深入浅出,直观明了的分享数学之美。克莱姆算法,莫比乌斯环,黎曼猜想,线性代数,拓扑学,微积分,深度学习等等...不是理科生的可以忽略了...绝对干货...UP主推荐:小圆脸Paprika读书分享,书单分享,喜欢读书小伙伴可以mark一下,很可爱的小姐姐,还分享一些个人的vlog。UP主推荐:田浅浅中学学习,高效复习,错题分析,学习方法,效率思维,人大的学姐,文学与语言学。还有很多优质的UP主,这里就不推荐啦,篇幅有限...4、我要自学网

自学技能的社区,里面大量免费的学习教程,网站设计的很low,但是课程数量很多。是一个很好的个人自学平台。

课程涉及电脑办公,平面设计,室内设计,室外设计,机械设计,影视动画,工业自控,网页设计,程序设计,会计财务。

5、学堂在线

学堂在线是清华大学建立的中国首个慕课平台。运行了来自清华大学,北京大学,复旦大学,中国科技大学,以及麻省理工学院,斯坦福大学,加州伯克利分校等等国内外一流大学的才会好过1900门优质课程,覆盖13大学科门类。

6、爱课程

爱课程集中展示中国大学视频公开课和中国大学资源共享课,高等教育优质资源的汇聚平台。简单说就是聚合了多个公开课,在线课程,资源共享课网站,很多大学的课程,你直接搜索就完事啦。

7、doyoudosh

doyoudosh一个学习平面设计,后期剪辑,特效合成,三维动画,音乐特效的网站。

里面有很多免费课程,还有学习路径,资源导航

doyoudosh的资源导航里面有大量和设计相关的实用网站,比如配色网站,图标网站,灵感网站等等。

资源搜索类

大学学习,大部分时间都是自学。所以找资源,找学习教程也是一种能力。互联网的资源很丰富,给大家安利5个找资源的网站,有学习资源有书籍资源。

1、云盘精灵

我最常用的学习教程搜索网站,特点就是没有广告,直接搜索就可以啦。设计教程,编程教程,运营教程,产品经理学习教程,营销教程,办公教程,书籍资源,电影资源等等全都有。

小试牛刀一下,搜索UI设计教程,可以看到超多UI学习教程,大家筛选的时候注意时间和文件大小。

2、虫部落

虫部落真的是一个万能的搜索网站,让搜索更简单。它包含社区,快搜,学术搜索,设计搜索,资源搜索,五个板块。

学术搜索,虫部落聚合了大量高质量的学术网站。包括必应学术,百度学术,OALib,Sci-Hub,中科院文献,世界数字图书,万方,知网,上研,浙图,等等。

不止有学术数据搜索,资源搜索同样强大。里面汇集了一些资源搜索网站,比如云盘精灵,网盘搜索,磁力猫等等,你可以在这个板块找各种学习教程。

3、鸠摩搜书

非常简单的首页直接搜索就可以啦

特点就是提供电子书多种格式下载,还提供了别的网站的资源,更多更灵活的选择。另外它的资源是非常多的,只专注于书籍资源。比如我搜索霍乱时期的爱情,里面有很多可以免费下载的书籍资源。

4、云海电子图书馆

网站的书籍分类非常明确,知道想看什么的话,直接搜索就可以啦,都是可以免费下载的。

5、周读

涉及的书籍种类非常多,直接搜索就可以啦,都可以免费下载。

工具效率类

大学时期会经常使用电脑,使用浏览器去工作学习。给大家安利10个工具效率类网站,提高你的办公学习效率,希望对大家有用~

1、知乎

知乎绝对是个学习的地方,里面有大量优质的问题。比如学习网站推荐,效率软件推荐,学习方法等等...你直接搜索就可以啦,比如搜索学习网站,Python自学方法,会出现大量优质问答。

2、腾讯文档

在线协作编辑和管理文档利器,

可多人协作在线编辑的文档,支持在线文档,在线表格,在线收集表和在线幻灯片。支持网页,电脑客户端,手机APP,微信小程序都可以随时查看和修改。

在你没办法使用Office的情况下,可以试试腾讯文档在线编辑。还有一个使用场景是需要收集一个团队的信息,如果使用Office的Excel的话,你会收到很多表格,整理起来很麻烦。但是如果使用腾讯文档的话,可以借助多人协作,把链接给他们就行了,可以实时查看和编辑。

3、ProcessOn

在线协作制作结构图利器

制作流程图用Visio,制作思维导图用XMind,制作原型图用Axure。对这些结构图需求不大,就应急使用几次的话,总不能把这些软件全部下载吧,安装成本和学习成本都不小。

这个时候你就可以试试ProcessOn,在线制作流程图,思维导图,原型图,UML图,网络拓扑图,组织结构图,BPMN。还支持在线多人协作,操作上也有快捷键。

海量专题模板,这些模板的质量挺高的,思维导图,流程图,读书笔记,产品模板,有免费专区,也是一个学习的地方。如果你是一名产品人,这些模板都可以用来学习。还有大量其他主题的模板

4、iLovePDF

在线转换PDF利器

全面强大的PDF处理网站,它可以做到合并拆分PDF,压缩PDF,转换PDF;加页码,水印;修复,解锁,保护,组织PDF等等。不注册登录也可以免费使用。它的兄弟产品iLoveIMG也同样好用。

5、幕布

在线大纲笔记工具

笔记工具有很多,幕布也很好用,幕布也可以网页在线制作。层级折叠式文字来整理你的内容。读书笔记,会议记录,内容创作,清单制定,思维导图,你都可以使用幕布。

幕布强调的是层级折叠式大纲笔记,和腾讯文档,XMind还是有本质区别的。写文章交给腾讯文档,结构性的笔记交给幕布,专业的思维导图交给XMind。

6、奶牛快传

在线传输文件利器

保存文件用网盘,给别人临时传输文件用什么?用百度网盘的话,下载速度感人,用微信的话最大支持100M,用QQ的话,上G的文件传输速度也很慢。这个时候你就可以试下奶牛快传。

奶牛快传可以在线免费传输大文件和文件夹,加密传输,自定义文件有效期,自定义文件下载速度。提供下载链接和提取码两种。最大支持4G文件,上传速度可达8M,下载速度可达14M。

7、福昕云编辑

在线编辑PDF利器

在工作中我们会遇到很多PDF文档,PDF文档安全性很好,但是编辑性却很差。现在有很多PDF编辑工具,AdobeAcrobat,PDFelement也很好用。但是这些都需要下载软件,如果电脑上没有PDF编辑软件,你就可以试下福昕云编辑。

福昕云编辑有编辑文本,添加文本,页面管理,注释,高亮,表单,保护这些功能。

8、TinyPNG

在线压缩图片利器

有时候编辑一个文档,插入的图片文件很大,最后整个文档都很大,一些传输还有文件限制,这个时候就应该压缩图片了。word自带有压缩图片,还可以用微信发送下图片,然后不保存原图,但是他们的压缩质量都不好,搞的图片很模糊。

这个时候你就可以试下TinyPNG,免费批量在线压缩JPG,PNG图片。它的原理是减少图像中的颜色数量,存储数据所需字节更少,文件大小减少很多,但是效果几乎是看不出来的。

9、爱资料工具

在线实用工具集合

上面那些在线网站都是单一功能很强,很有针对性。这个网站是功能丰富,你能在爱资料工具里面找到很多实用的小工具。

开发工具,网站运维,日常工具,查询对照,编码转换,站长工具,地图,加密解密,图片操作,计算器,文档转换等等。

比如图片去水印,图片OCR文字识别,公众号和B站封面获取,图片格式转换,多图合成GiF等等,可以直接搜索自己想用的工具。

10、UZER.ME

在线使用各种大应用

在线使用CAD,MATLAB,Office三件套,AdobeReader,PS,Visio,Project,CDR,Ai,XMind这些大文件。

自己收到一个.ai格式的文件,打不开又不想下载软件...老板临时让你修改一个.psd文件,但是手头没有PS...这个时候你都可以使用UZER.ME解决。

终于安利完啦,7个学习提升网站,5个资源搜索网站,10个效率工具网站,总共22个大学生实用网站,希望对大家有帮助。

其实网站只是一个工具,一个你可以利用的工具,关键还是得看自己的学习态度,还有自律。大学四年的时光说短不短,说长也不长,人生又有多少个四年,希望大家可以好好利用这四年去丰富自己,让自己更优秀!

(PS文中的22个网站都可以私信我“大学生网站”免费获得)

有哪些网站可以下免费的电子书?

提示:分享所有电子书站点全部免费下载,4.3日亲测可用

电子书网站现在有很多,但是毕竟现在还是不能太公开,说黄就黄,千万不要只盯着一个网站。需要确保一定有好的书源,最好的途径是找几个值得信赖的电子书导航站,当然如果自己毕竟勤奋,也可以自己整理。今天我就整理2个电子书导航站,8个免费的电子书网站,个个电子书资源丰富,99%的电子书都能找得到,完全无套路!

一、电子书导航站

优势:有专人维护测试所导航站点的可用性,评判其好坏的标准,就是其维护是否及时,如果维护及时一定要长期收藏保存,比自己在网上去搜索电子书站点靠谱得多。

劣势:一般这种导航站有一定成本,他们需要展示一些广告,我觉得这完全可以接受,真的全付出,这个站点基本上很难长久;主要推荐2个导航站

1、欢乐图书馆(百度搜索“欢乐图书馆”)

网址:www.thinkdoc.vip

zlibrary,libgen等主流电子书、杂志、外文原版站点的自动检测,可以很清晰选择可以站点,并且有最新的chatgpt站点导航,感觉很牛

主页提供zlibrary,libgen、duxiu等书库的一次性搜索,直接展示结果;

2、小鲸鱼搜书(百度搜索“小鲸鱼搜书”)

网址:www.9871.org

有综合搜索展示,可以一次性搜索所有站点,除了主流zlibrary,libgen等站点外,还有些专业性较强的站点导航

二、聚合电子书搜索站

1、zlibrary

https://singlelogin.me/: 源站需要科学上网

Z-library 镜像网站

2、Libgen-创世纪

网址:Library Genesis

3、4鸠摩搜索

网址:jiumodiary.com

鸠摩搜索以非人工检索方式、自动生成到第三方网站的链接,以便用户能够找到和使用第三方网站上各种文档、学习资料(网盘集合型),可找大学教材电子版。

4、大圣盘

网址:大圣盘 - 网盘搜索引擎

百度网盘、阿里网盘和夸克网盘聚合搜索

5、阅读链

网址:https://www.ebookapp.cc/

6、sobooks

网址:https://sobooks.net/

7、三秋书屋

网址:sanqiu.mobi/

一个精品电子书下载网站,它里面有小说文学、畅销图书、合集套装等类型的书籍,可以按照分类查看,也可以直接搜索。

8、书舟搜索

网址:https://www.shuzhou.cc/

书格

网址:书格

外文书籍

9、gutenberg

网址:Project Gutenberg

10、HathiTrust Digital Library

网址:HathiTrust Digital Library

好了整理这么多了,还有很多站点可以选择,这些站点都来自这两导航站啦!

全部站点都是免费的,但是不确保免广哈。

希望大家喜欢,家人们别忘记一键三连呀,谢谢啦!

base传输方式?

简单概括如下:

1) 不知道传输字节的具体长度,如传输的int类型,将int类型之间转为char以后,丢失掉了长度的信息,如数字1234567,本来只有4个字节,但是转化成文本的“1234567”是有7个字节。在int类型的时候固然好办,但是一个数组的时候,经过转化以后,在转化回来就很麻烦了。

2) 对于一些数字,二进制传输Server是没法处理的。如int 1,二进制数据是0x00000001,按字节传输的时候,client能够正常发送,但是libevent收到以后,在抛给libevent_http层是,会把数据截断,前两位0x00是字符串的停止符。

服务器开发方向的学习路线是什么?

1) 语言&工具C语言和C++是传统的 Linux 开发的语言,需要掌握。除了基本的语法,还要玩转一套工具链。经典的组合是 GCC(编译器)+ Make/Makefile(构建中大型项目必须的工具)+ GBD(调试器)+ Valgrind(内存分析工具)+ Vim/EMACS/Gedit/Sublime Text(编辑器)。现在有越来越多的新项目使用 Clang/LLVM 来构建了,例如 Android NDK 已经放弃GCC,全面转向 Clang。由于 C++ 语法变态,到处都是奇*巧*淫*技,并且没有内存回收机制,所以被最近几年大火的 Golang 完爆了,不少底层项目开始转向 Golang,弃用 C++。嗯,这是好事,作为《C++教程》的作者我已经恶心透了,C++ 这种骚*浪*贱的语言早就该被爆*操了。对于初学者来说,不要贪多嚼不烂,先学好 C/C++ 语言,掌握 GCC 就可以,Clang/LLVM 和 Golang 留着以后再学。

2) 数据结构和算法学习基本的,了解概念就可以,很多库已经封装好了常用的数据结构和算法,实际开发中你不用从零开始,所以千万不要陷在里面不能自拔,算法是个无底洞,耗死你。记住,以后需要了可以再来回顾,不用一开始就吃透。

3) 操作系统除了基本的 Linux 操作,还有必要了解一些常用命令;当然,这不是重点,只要你经常使用 Linux 操作系统,慢慢就会了。内存(虚拟地址空间、内存分配策略)+ 进程线程(进程通信、线程调度、死锁) + 文件系统 + 输入输出 + 中断等才是重点。这些都是理论,要和实践相结合起来。

4) 通信(Socket)在服务器上做开发,通信是必不可少的,而且是重中之重。除了了解 TCP/IP 协议族,还要学习 socket 编程,将理论和实践集合起来。ACE、Libevent、Libev 等知名的网络库也要掌握一两个的,毕竟在实际开发中不可能直接调用 Linux API 吧,怎么也得搞个库来提高效率。

5) 界面库当然,在服务器领域一般不需要界面,但是掌握一个界面库会让你做出一个好玩的软件来,学以致用,提高兴趣。Linux 下常用的界面库有 Qt、GTK、WxWidgets 等,其中 Qt 是老大。搞 Linux 开发,操作系统原理和通信是重点,也是最难学的部分,这是你跨进 Linux 开发这扇大门的标志,不学这些就是耍流氓。

C/C++ Linux服务器开发免费学习地址:https://ke.qq.com/course/417774?flowToken=1013300

linux系统提供安全功能如何?

linux系统提供安全功能非常靠谱。

一、账号安全控制

用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。在Linux系统中,提供了多种机制来确保用户账号的正当、安全地使用。

1.基本(必要)的安全措施

(1)系统账号的清理

在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而产生的其他大量的系统账号。除了超级用户root之外,其他大量账号只是用来维护系统运行服务进程,一般情况是绝不允许登录系统的,因此也被称为非登录用户账号。

常见的非登录用户账号的登录shell通常是/sbin/nologin,表示禁止终端登录,应确保不被认为改动,比如:

[root@localhost ~]# grep "/sbin/nologin" /etc/passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

……………… //省略部分内容

各种非登录用户账号中,还有相当一部分是很少用到的,比如games。这些用户账号被称为冗余账号(建议删除)。除此之外,还有一些随应用程序安装的用户账号,若卸载应用程序后未能自动删除,则需管理员手动将其删除。

对于Linux服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。比如:

[root@localhost ~]# usermod -L q1 //锁定账号

[root@localhost ~]# passwd -S q1 //查看账号状态

q1 LK 2019-08-27 0 99999 7 -1 (密码已被锁定。)

[root@localhost ~]# usermod -U q1 //解锁账号

[root@localhost ~]# passwd -S q1

q1 PS 2019-08-27 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

如果服务器中的用户账号已经固定,不再进行修改,还可以采取锁定账号配置文件的方法,进一步保障账号的安全性。比如:

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow //锁定文件

[root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看为锁定的状态

----i----------- /etc/passwd

----i----------- /etc/shadow

[root@localhost ~]# chattr -i /etc/passwd /etc/shadow //解锁文件

[root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看为解锁的状态

---------------- /etc/passwd

---------------- /etc/shadow

在账号文件被锁定的情况下,其内容将不允许被修改。因此也就无法添加、删除账号,也不能更改用户的密码、登录shell、宿主目录等属性信息。

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow

[root@localhost ~]# lsattr /etc/passwd /etc/shadow

----i----------- /etc/passwd

----i----------- /etc/shadow

[root@localhost ~]# useradd a1

useradd:无法打开 /etc/passwd

(2)密码安全控制

在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,用户应养成定期修改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录时被要求重新设置密码,否则将拒绝登录。

以下操作可以将密码的有效期设为30天:

[root@localhost ~]# vim /etc/login.defs //适用于修改完文件新建的用户

……………… //省略部分内容

PASS_MAX_DAYS 30 //默认存在,修改即可

[root@localhost ~]# chage -M 30 q1 //适用于已经存在的q1用户

在某些特殊情况下,如要求批量创建用户初次登录时必须自设密码。比如:

[root@localhost ~]# chage -d 0 q1 //新建的用户、已存在的用户都适用

Localhost login:q1

password:

You are required to change your password immediately (root enforced)

WARNING: Your password has expired.

You must change your password now and login again!

更改用户 q1 的密码 。

为 q1 更改 STRESS 密码。

(当前)UNIX 密码:

(3)命令历史、自动注销

Shell环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险,只要获得用户的命令历史文件,该用户的命令操作过程将会一览无遗,如果曾经在命令行输入了明文的密码,则会给服务器带来巨大的风险。

Bash终端环境中,历史命令的记录条目是由变量HISTSIZE控制,默认是1000条,通过修改其配置文件,可以影响系统中的所有用户。比如:

[root@localhost ~]# vim /etc/profile //适用于新登录的用户

………… //省略部分内容,添加以下内容

HISTSIZE=200

[root@localhost ~]# export HISTSIZE=200

//适用于当前用户,export的作用:将一个变量设置为全局变量

除此之外,还可以修改用户宿主目录中的~/.bash_logout文件,添加情况历史命令的操作语句:

[root@localhost ~]# vim ~/.bash_logout //打开配置文件,添加以下内容

history -c //清空历史命令

clear //清屏

这样,当用户退出已登录Bash环境后,所记录的历史命令将自动清空。

Bash终端环境中,还可以设置一个闲置超时时间,当超过指定的时间见没有任何输入时自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险,闲置超时由变量TMOUT来控制,默认单位为秒(s)。

[root@localhost ~]# vim /etc/profile //适用于新登录的用户

………… //省略部分内容,添加以下内容

export TMOUT=600

[root@localhost ~]# export TMOUT=600 //适用于当前用户

注意:当正在执行程序代码编译时,修改系统配置等耗时较长的操作时,应避免设置TMOUT变量。必要时可以使用“unset TMOUT”命令取消TMOUT变量设置。

2.用户切换与提权

大多数Linux服务器并不建议用户直接以root用户进行登录,一方面可以大大减少因误操作而导致的破坏;另一方面也降低了特权密码在不安全的网络中被泄露的风险。针对这些原因,需要为普通用户提供一种身份或权限提升机制,以便在必要的时候执行管理任务。

Linux系统为我们提供了su、sudo两种命令,其中su命令主要用来切换用户,而sudo命令用来提升执行权限。

(1)su命令——切换用户

使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要对目标用户的密码进行验证(从root用户切换为其他用户时除外)。例如:

[root@localhost ~]# su - xiaoli

[xiaoli@localhost ~]$ su - root

密码: //输入用户root密码

[root@localhost ~]# //验证成后获得root权限

上述命令中,选项“-”等同于“--login”或“-l”,表示切换用户后进入目标用户的登录shell环境,若不添加“-”选项,则表示仅切换身份,不切换用户环境。对于切换为root用户的情况时,“root”可以省略。

默认情况下,任何用户都允许使用su命令。从而有机会反复尝试其他用户(如root)的登录密码。这样带来了很大的安全风险,为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户可以使用su命令进行切换。实现过程:

[root@localhost ~]# gpasswd -a xiaoli wheel

//正在将用户“xiaoli”加入到“wheel”组中

[root@localhost ~]# grep "wheel" /etc/group

wheel:x:10:xiaoli

[root@localhost ~]# vim /etc/pam.d/su

auth sufficient pam_rootok.so //默认存在

………… //省略部分内容

auth required pam_wheel.so use_uid //默认存在,去掉“#”号即可!

………… //省略部分内容

启用pam_wheel认证后,未加入wheel组内的其他用户将无法使用su命令,尝试进行切换时,将提示“拒绝权限”,从而将切换用户的权限控制在最小范围内。

[xiaozhang@localhost ~]$ su - root

密码: //不论密码正确与否,都将提示拒绝权限

su: 拒绝权限

对用户的任何操作(添加、删除、切换)等操作都将记录在/var/log/secure 文件中,根据需要即可进行查看。

(2)sudo命令——提升执行权限

通过su命令可以非常方便地切换到另一个用户,但是前提条件是必须知道目标用户的登录密码(从root用户切换为其他用户时除外),从任意用户切换至root用户就必须得知道root用户的密码。对于生产环境中的Linux服务器,root用户的密码,知道的人,越少越好,否则就会存在巨大的风险。

有一种方法,既可以让普通用户拥有一部分的管理权限,又不需要知道root用户的密码,那就是使用——sudo命令。

使用sudo命令皆可以提升执行权限。不过,需要由管理员预先执行授权,指定哪些用户以超级用户(或其他用户)的身份来执行哪些命令。

1)在配置文件/etc/sudoers中添加授权

sudo机制的配置文件为/etc/sudoers,文件的默认权限是400,需使用专门的visudo工具进行编写,虽然可以通过“vim”进行编辑,但是保存时必须执行“:w!”命令强制操作,否则系统将提示只读文件而拒绝保存。

配置文件/etc/sudoers中,授权记录的基本配置格式:

用户 主机名列表=命令程序列表

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。各部分的具体含义:

用户:直接授权指定的用户名,或者采用“%组名”的方式(授权一个组的所有用户);主机:使用此配置文件的主机名称。此部分主要是方便在多个主机间共用一份sudoers文件,一般设置为localhost或实际的主机名即可;命令:允许授权的用户通过sudo方式制定的特权命令,需填写命令程序的完整路径,多个命令执行用逗号“,”进行分隔;

典型的sudo配置记录中,每行对应一个用户或组的sudo授权配置。比如:

[root@localhost ~]# visudo

……………… //省略部分内容

xiaozhang localhost=/sbin/ifconfig //允许用户xiaozhang在本机使用ifconfig命令

%wheel ALL=NOPASSWD:ALL //允许wheel组中的成员在任意主机上不需要使用密码即可执行任意命令

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以定义为别名(必须为大写)分别通过关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置。比如:

[root@localhost ~]# visudo

……………… //省略部分内容

User_Alias OPERATORS=user1,user2,user3 //定义用户名列表

Host_Alias MAILSVRS=smtp,pop //定义主机列表

Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum //定义命令列表

OPERATORS MAILSVRS=PKGTOOLS //使定义的列表全部关联起来

sudo配置记录的命令部分允许使用通配符“*”、取反符号“!”,当需要授权某个目录下的所有命令或取消其中个别命令时特别有用。比如:

[root@localhost ~]# visudo

……………… //省略部分内容

xiaowang localhost=/bin/*,!/bin/passwd root

//允许xiaowang用户在本机使用/bin路径下的所有命令,但是不允许给root用户修改密码

通常情况下,通过sudo方式执行的操作并不记录,若要启用sudo日志记录以备查看,应该这么做:

[root@localhost ~]# visudo

……………… //省略部分内容

Defaults logfile="/var/log/sudo"

2)通过sudo执行特权命令

对于已获得授权的用户,通过sudo方式执行特权命令时,只需在正常的命令前加“sudo”即可!

[xiaosun@localhost ~]$ sudo ifconfig ens33 192.168.1.1/24

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.

#2) Think before you type.

#3) With great power comes great responsibility.

[sudo] password for xiaosun:

xiaosun 不在 sudoers 文件中。此事将被报告。

//因为xiaosun没获得特权命令的授权

[xiaozhang@localhost ~]$ ifconfig ens33 192.168.1.1/24

SIOCSIFADDR: 不允许的操作

SIOCSIFFLAGS: 不允许的操作

SIOCSIFNETMASK: 不允许的操作

[xiaozhang@localhost ~]$ sudo ifconfig ens33 192.168.1.1/24

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.

#2) Think before you type.

#3) With great power comes great responsibility.

[sudo] password for xiaozhang:

//执行命令时需要输入自己的密码进行验证(如果不希望输入密码应在命令前添加“NOPASSWD”)

//xiaozhang 可以使用特权命令(已经获得授权)

在当前会话中,第一次通过sudo执行命令时,必须知道用户本身的密码(并不是root的密码)进行验证,此后再使用sudo命令时,只要与前一次sudo操作的间隔时间不超过5分钟,则不需要重复验证。

若想查看用户自己获得哪些特权命令、环境变量,可以执行“sudo -l”命令。

[xiaozhang@localhost ~]$ sudo -l

[sudo] password for xiaozhang:

匹配此主机上 xiaozhang 的默认条目:

!visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME

HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG

LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION

LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC

LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS

_XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin,

logfile=/var/log/sudo

用户 xiaozhang 可以在该主机上运行以下命令:

(root) /sbin/ifconfig

//查看已经授权的用户

[root@localhost ~]# su - xiaosun

上一次登录:二 8月 27 21:41:40 CST 2019pts/0 上

[xiaosun@localhost ~]$ sudo -l

[sudo] password for xiaosun:

对不起,用户 xiaosun 不能在 localhost 上运行 sudo。

//查看为授权的用户

如果启用sudo日志,则可以查看用户sudo的操作记录。

[root@localhost ~]# tail /var/log/sudo

Aug 27 21:41:07 : xiaoli : TTY=pts/0 ; PWD=/home/xiaoli ; USER=root ;

COMMAND=/sbin/ifconfig ens33 192.168.1.1/24

Aug 27 21:42:53 : xiaozhang : TTY=pts/0 ; PWD=/home/xiaozhang ; USER=root ;

COMMAND=/sbin/ifconfig ens33 192.168.1.1/24

二、系统引导和登录控制

在互联网环境中,大部分服务器是通过远程登录的方式来进行管理的,而本地引导和终端登录往往容易被忽视,从而留下安全隐患。特别是当服务器所在的机房环境却反严格、安全的管理制度时,如何防止其他用户的非法介入就成为必须重视的问题。

1.开关机安全控制

对于服务器主机,除了物理上的安全防护之外。在开关机安全控制方面,除了要做好物理安全防护以外,还要做好系统本身的一些安全措施。

(1)调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘;

禁止从其他设备(光盘、U盘、网络)引导系统;

将安全级别设为setup,并设置管理员密码;

(2)禁止ctrl+Alt+Del快捷键重启

快捷键重启功能为服务器本地维护提供了方便,但对于多终端登录的Linux服务器,禁用此功能是比较安全的选择。操作如下:

[root@localhost ~]# cat /etc/inittab //查看提供ctrl+Alt+Del快捷键的文件

……………… //省略部分内容

# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target

[root@localhost ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target

lrwxrwxrwx. 1 root root 13 7月 14 18:54 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target

//查看得知它是reboot.target文件的软连接

不影响reboot.target文件的前提下执行以下命令即可禁用ctrl+Alt+Del快捷键

[root@localhost ~]# systemctl mask ctrl-alt-del.target //注销ctrl+Alt+Del服务

Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.

[root@localhost ~]# systemctl daemon-reload //重新加载systemd配置

[root@localhost ~]# systemctl unmask ctrl-alt-del.target //重新开启ctrl+Alt+Del服务

Removed symlink /etc/systemd/system/ctrl-alt-del.target.

[root@localhost ~]# systemctl daemon-reload //重新加载systemd配置

(3)限制更改GRUB引导参数

从系统安全的角度来看,如果人很都能够修改GRUB引导参数,对服务器本身显然是一个极大的安全隐患。为了加强对引导过程的安全控制,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。为grub菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2 ”命令生成。为GRUB菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2 ”命令生成。

[root@localhost ~]# grub2-mkpasswd-pbkdf2 //根据提示输入密码

输入口令:

Reenter password:

PBKDF2 hash of your password is

//“is”之后是经过加密的密码字串符(由于限制,不可发布)

[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

//建议做个备份(实验环境,无所谓)

[root@localhost ~]# vim /etc/grub.d/00_header //这是通过密钥工具生成密码的配置文件

…………………… //省略部分内容

cat << EOF

set superusers="root" //设置用户名

password_pbkdf2 root

//填写刚才通过密钥工具生成的密钥文件(就是刚才生成密钥文件“is”之后的内容,由于限制不可发布)

//设置用户名的密码

EOF

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

//重新生成配置文件

重新计算机测试,按“e”键进入GRUB菜单时,将提示:

输入正确的用户名和密码方可进入(实验用的是 root,跟系统中的root没有任何关系)!

2.终端及登录控制

(1)限制root用户的登录

在Linux系统中,login程序会读取/etc/securetty文件,以决定root用户从哪些终端上登录系统。

[root@localhost ~]# vim /etc/securetty

…………………… //省略部分内容

#tty5

#tty6

//禁止root用户从tty5、tty6登录系统

(2)禁止普通用户登录

当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统,这时,只需建立/etc/nologin空文件即可;反之则允许普通用户登录。

[root@localhost ~]# touch /etc/nologin //禁止普通用户登录

[root@localhost ~]# rm -rf /etc/nologin //允许普通用户登录

注意:仅建议在服务器维护期间、测试期间使用!

三、弱口令检测、端口扫描

本次实验使用的安全工具是——John the Ripper和NMAP。John the Ripper工具网盘链接:https://pan.baidu.com/s/1HQNCPFnKNBQWmjSNSEZ7_Q提取码:q1b0NMAP工具使用yum安装即可!

1.弱口令检测工具——John the Ripper

对于任何一个承担着安全责任的管理员,及时找出这些弱口令是非常必要的,这样便于采取进一步的安全措施(修改口令)。

John the Ripper是一款开源的密 码 破 解 工具,能够在已知密文的情况下快速分析出明文的密码字串,支持DES、MD5等多种加密算法,而且允许使用字典进行破解。

(1)安装John the Ripper

[root@localhost ~]# tar zxf john-1.8.0.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/john-1.8.0/

[root@localhost john-1.8.0]# ls

doc README run src

//doc目录是手册文档、README是链接的说明文件、run是运行程序、src是源码文件

[root@localhost john-1.8.0]# cd src

[root@localhost src]# make clean linux-x86-64

//通过这种方式进行编译

[root@localhost src]# cd ../run

[root@localhost run]# ls

ascii.chr john lm_ascii.chr makechr relbench unique

digits.chr john.conf mailer password.lst unafs unshadow

//确认有john可执行程序产生

(2)检测弱口令账号

以实验环境Linux系统为例(如果检测别的密文文件,可以复制一份到本地):

[root@localhost run]# ./john /etc/shadow

Loaded 6 password hashes with 6 different salts (crypt, generic crypt(3) [?/64])

Press 'q' or Ctrl-C to abort, almost any other key for status

123456 (user1)

123456 (xiaowang)

123456 (xiaosun)

123456 (xiaoli)

123456 (xiaozhang)

……………… 按Ctrl+C组合键终止后续过程

//密码破译需要时间,需耐心等待

(3)使用密码字典进行破解

[root@localhost run]# :>john.opt

//情况已破解的账户列表,以便重新分析、破解

[root@localhost run]# ./john --wordlist=./password.lst /etc/shadow

//使用工具本身自带的密码字典进行破解

Loaded 6 password hashes with 6 different salts (crypt, generic crypt(3) [?/64])

Press 'q' or Ctrl-C to abort, almost any other key for status

123456 (user1)

123456 (xiaowang)

123456 (xiaosun)

123456 (xiaoli)

123456 (xiaozhang)

……………… 按Ctrl+C组合键终止后续过程

2.网络扫描工具——NMAP

(1)安装NMAP软件包

[root@localhost ~]# yum -y install nmap

(2)扫描语法及类型

nmap [扫描类型] [选项] <扫描目标 ...>

常用的选项有:“-p”用来指定扫描的端口信息;“-n”表示禁用反向DNS解析(加快扫描速度);

常用的几种扫描类型,如图:

(3)扫描操作示例

[root@localhost ~]# nmap 127.0.0.1

//扫描本机开启的TCP端口

[root@localhost ~]# nmap -sU 127.0.0.1

//扫描本机开启的UDP端口

[root@localhost ~]# nmap -p 21 192.168.1.0/24

//扫描192.168.1.0网段中哪些主机提供了FTP服务

[root@localhost ~]# nmap -n -sP 192.168.1.0/24

//扫描192.168.1.0网段存活的主机(可以ping通)

[root@localhost ~]# nmap -p 139,445 192.168.1.0/24

//扫描192.168.1.0网段中开启共享服务的主机

可以根据实际的需求更换不同的选项!

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,107人围观)

还没有评论,来说两句吧...