第 三 十 天:Linux 安 全 维 护

小Q:红颜无罪只是太美,离别无言只是太悲;谁在谁的红尘中等待,

苍老了谁又悲伤了谁;

恋过红尘,只近黄昏,风拂玉面,云卷残云,谁在谁的翘首中期盼,

错过了谁又遗忘了谁?

对于运维工作者来说,安全是必不可少的话题,但其实我们现在初学阶段也不必太过深入,了解到中间档次就足够了,毕竟每个企业有专门的安全管理;我的课程里只有关于安全的

思想,剩下的路自己扩展;

一: Linux系统版本
二: 硬件和物理安全
三: 系统和用户方面
四: 应用安全
五: 入侵检测

自我理解:关于以前我学过的所有知识,自动化·编程语言·嵌入式·PS·我前面学到的知识·等等,所有的技能知识,万变不离其宗的中心点,就是去学一个思想,在你专业领域里

积累的解决问题的思路;技能不常用会生疏,知识不常记会遗忘,但前期通过学习.实践.重复印在脑子里的经验却是记忆永久的,也是最关键的;

下面的内容也许字数不多,但是他给了你一个全局的关于安全的思路,而且它包含的内容也

不少,可以作为前面基础知识的扩展;

一:Linux系统版本

首先要有一个话题作为开头,选择系统当然应该居首了;

Linux版本有好多好多,选择一个大的厂商,他的系统必然安全性相对高点,比如RedHat·Debian·Ubuntu·centOS;具体你有什么重点的需求,再根据你的需求,选择相应

在那一方面有优势的就好,网上会有很多介绍的;

尽量官网下载,有的人可能装过windows系统,会发现好多系统安装好后自带各种软件,乱;

Linux也是这样,甚至有可能自带病毒,或者植入了后门,毕竟会组装系统的都很厉害;

关于升级版本的问题,不建议升级到最新,而yum update 只能升级到主版本下的最新版本;

选择大的厂商   +   官网下载镜像(或mirrors.sohu等) + 选稳定版本

二:硬件和物理安全

其实系统大体的密码结构是这样的,环环相扣,而且忘了bios密码只能返厂商重置:

·设置系统密码      通过单用户或者救援模式更改你的密码

·设置grub密码      不能进单用户,但可以通过光盘启动进救援模式改

·设置bios密码      不能进bios设置光盘启动,进不了救援模式

而在实体方面,就是机房的保障了;比较正规的企业机房是不让随便进的,这样不仅可以确

保我们硬件设备安全,还可以预防一些人连接服务器攻入我们的系统;而最近IDC云服务器

的兴起,更为我们提供了一些保障;可选的是阿里云和腾讯云;

【关于密码的设置方法见我后期的文章】

http://beibing.blog.51cto.com/10693373/1702819

三:系统和用户方面

这是一个比较大的概念,因为我们就是作系统运维,所以这部分只能是抛砖引玉,和在今后遇到问题在专门学习;

·尽量升级到新的稳定版本包

·不需要登陆的用户禁止登陆nologin

·关闭用不到的服务,减少被攻击的机会

http://www.apelearn.com/study_v2/chapter16.html#id5

·关于分配权限的问题ACL.Suid.Sgid.Sudo

http://beibing.blog.51cto.com/10693373/1695473

·设置root的限制

http://beibing.blog.51cto.com/10693373/1698518

·关于防火墙,最好打开着,当有需要再关掉

http://www.apelearn.com/study_v2/chapter16.html#id3

·打开系统日志记录信息,查看其他日志

http://h2appy.blog.51cto.com/609721/781281/

扩展http://blog.chinaunix.net/uid-28216282-id-3379733.html

·关于Linux-PAM认证模块,对应用程序或用户添加验证机制

http://www.centoscn.com/CentOS/help/2014/0504/2899.html

扩展http://www.infoq.com/cn/articles/linux-pam-one

·文件系统的类型选ext3.ext4 和 数据安全备份.定制计划任务

http://beibing.blog.51cto.com/10693373/1698604

http://database.51cto.com/art/201103/252058.htm

四:应用安全

关于应用安全的面就更大了,我们系统就是用一个,但是我们要装的应用就太多了;

各种常用服务   ftp、samba、nfs、rsync、mysql、http

web安全     (漏洞:文件上传、xss、sql注入、CSRF、访问控制)


文件上传: 就像discuz论坛的图片上传,如果图片上传服务器时的目录可以执行php脚本

那么这就意味着,用户可以上传木马脚本,然后可以执行

xss: 跨站脚本漏洞(Cross Site Scripting,常简写作XSS)是Web应用程序在将数据输

出到网页的时候存在问题,导致攻击者可以将构造的恶意数据显示在页面的漏洞。

因为跨站脚本攻击都是向网页内容中写入一段恶意的脚本或者HTML代码,故跨站

脚本漏洞也被叫做HTML注入漏洞(HTML Injection)。

sql注入:所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的

查询字符串,最终达到欺骗服务器执行恶意的SQL命令。PHP + MYSQL编程,引

发SQL注入攻击的主要原因有两点:(1) PHP配置文件php.ini中的

magic_quotes_gpc选项没有打开,被设置为off。(2) 开发者没有对数据类型

进行检查和转义。第二点最为重要,如果没有第二点的保证,magic_quotes_gpc

选项不论为on,还是off,都可能引发SQL注入攻击。

CSRF:(Cross-site request forgery,跨站请求伪造)伪造用户的请求利用受信任的网

站来做一些用户不知道的事。当用户访问网站通过登录操作会得到身份标识的

cookie,在不关闭浏览器并未注销登录的情况下会带着cookie,这种状态下就

有可能会让攻击者去伪造请求。因为CSRF不容易被发现,所以用户通常不容易

察觉但是其危害性是很明显的。

访问控制:针对于web服务,即Apache和nginx;针对的是一些攻击者的IP,和一些钓鱼网

站,设置一些黑白名单;

下面的衔接是我配置的一些简单的关于nginx的访问控制.文件上传.禁止解析.用户认证.防盗链.禁止指定user_agent,Apache的可以去看第十九天和二十天的博客。

http://beibing.blog.51cto.com/10693373/1700539

下面的内容和上面博客类似,稍微有些扩展

apache配置:
apache的order allow deny     
限制某个目录下的php文件没有执行权限    
针对访问uri 限制ip     
几种限制ip的方法      
nginx配置
限制只让某个ip访问   
禁止通过ip访问站点   
禁止某个IP或者IP段访问站点的设置方法   
使用 user_agent 控制客户端访问

五:入侵检测

在1998年,Martin Roesch先生用C语言开发了Open Source的入侵检测系统Snort.

Snort有三种工作模式:

嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上;

数据包记录器模式把数据包记录到硬盘上;

网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配

用户定义的一些规则,并根据检测结果采取一定的动作。

中文手册:http://www.360doc.com/content/08/0114/14/25127_972488.shtml

抽段时间我得好好研究一下

时间: 2024-10-16 09:54:21

第 三 十 天:Linux 安 全 维 护的相关文章

三十、Linux常用命令(二)

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验

三十道linux内核面试题

1. Linux中主要有哪几种内核锁? Linux的同步机制从2.0到2.6以来不断发展完善.从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁.这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡:伴随着从非抢占内核到抢占内核的过度.Linux的锁机制越来越有效,也越来越复杂. 自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图请求一个已被争用已经被持有)的自旋锁,那么这个线程就会一直进行忙循环--旋转--等待锁重新可用.要是锁未被争用,请求它的执行线程便能立刻得到它并

第三十四课 二维数组的存储 【项目1-3】

第三十四课 二维数组的存储 项目一[二维数组当函数参数] 定义一个函数来完成对参数数组中元素的求和工作,函数声明如下: [cpp] view plain copy print? int sum(int array[ ][4],int m,int n);  //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义. [cpp] view plain copy print? #include <stdio.h> int sum(int array[ ][4

攻城狮在路上(叁)Linux(三十)--- 光盘写入工具

一.基本步骤: 1.用mkisofs命令将所需备份的数据构建成镜像文件. 2.用cdrecord命令将镜像文件刻录至光盘或者DVD中. 二.mkisofs:新建镜像文件 mkisofs [-0 镜像文件] [-rv] [-m file] 待备份文件... [-V vol] graft -point isodir=Systemdir... 参数说明: -o:后面指定镜像文件 -r:通过RockRidge产生支持UNIX/Linux的文件数据,可以记录较多信息. -v:显示构建过程 -m file:

linux系统运维企业常见面试题集合(三)

linux系统运维企业常见面试题集合(三) 01  写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行:(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222 [[email protected]~]# cat -n /t

第三十二课 二维数组及其定义 【项目1-2】

第三十二课  二维数组及其定义 项目一 [折腾二维数组] 创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值: 按行序优先输出数组元素: 将所有元素值乘以3后保存在数组中: 按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"): 将数组"倒"着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出): 输出数组中的所有偶数: 输出所有行列下标之和为3的倍数的元素值

三十四、Linux系统任务计划cron、chkconfig工具、systemd管理服务、unit介绍

三十四.Linux系统任务计划cron.chkconfig工具.systemd管理服务.unit介绍.target介绍 一.Linux系统任务计划cron crontab命令:对任务计划功能的操作用此命令.选项: -u:指定某个用户,不加-u则为当前用户. -e:制定任务计划. -l:列出任务计划. -r:删除任务计划. 任务计划的配置文件:/etc/crontab 文件内共有五个字段. 从左往右依次为:分.时.日.月.周.用户.命令. 可以不指定用户就是root. # crontab -e  

“全栈2019”Java第三十九章:构造函数、构造方法、构造器

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第三十九章:构造函数.构造方法.构造器 下一章 "全栈2019"Java第四十章:this关键字 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&q

“全栈2019”Java多线程第三十五章:如何获取线程被等待的时间?

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第三十五章:如何获取线程被等待的时间? 下一章 "全栈2019"Java多线程第三十六章:如何设置线程的等待截止时间 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&qu