简介

最小(少)原则,是安全的重要原则。最小的权限,最小的用户,最少的服务,最少的进程,是最安全的。

系统安全包括:文件系统保护、用户管理安全、进程的保护以及日志的管理。

场景

  1. 确保服务最少,每个都是有用,而且权限最小化。
  2. 确保用户最少,每个都是有用,而且权限最小化。
  3. 确保文件权限最小。
  4. 及时更新补丁,解决漏洞。
  5. 规范好人为的因素。往往这个才是最大的隐患。

解决方案

最少服务

服务越少,漏洞越少,越不容易被攻击,越安全。服务器本身越封闭越安全。

最小安装。

绝不安装多余的软件,需要什么安装什么。在安装系统的时候就使用最小安装。不要图形界面,不要其他服务。

取消不必要的服务

即使做了最小安装,还是有很多可能用不到的服务,建议也是关闭,除非真的有用。

  1. # 查看哪些服务在运行
  2. /sbin/chkconfig --list |grep 3:on
  3. # 没有使用的服务都可以考虑删除。
  4. chkconfig ip6tables off # ipv6
  5. chkconfig auditd off #用户空间监控程序
  6. chkconfig autofs off #光盘软盘硬盘等自动加载服务
  7. ...

禁止外来ping操作

  1. [root@tp /]# vi /etc/rc.d/rc.local
  2. echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

限制控制台的登录

特别是关机和重启的命令,太危险了。

  1. rm -rf /etc/security/console.apps/
  1. [root@tp /]# vi /etc/securetty
  2. ...
  3. #我们注释掉
  4. tty1
  5. # tty2
  6. # tty3
  7. # tty4
  8. # tty5
  9. # tty6
  10. #只留下tty1,这时,root仅可在tty1终端登录

删除历史记录

防止账号被攻破后丢失更多的信息。

  1. [root@tp /]# vim ~/.bash_logout
  2. # 在里面添加命令
  3. rm -rf ~/.bash_history

最小用户

使用的用户权限越小越安全。特别是有些软件的漏洞可以直接获取账号执行权限。一旦使用root启动,就相当于服务器的root直接被破解。

!千万不要用root启动软件。

自动注销

当我们登录到Linux服务器上操作完以后,应该退出当前用户,否则可能会出现安全问题,特别是root用户,一旦被盗用很可能造成不可挽回的损失

  1. [root@tp /]# vim /etc/profile
  2. # 在里面添加
  3. export TMOUT=300

设置口令复杂度

(授权完修改密码会有影响吗???这个需要测试)

定期修改密码

  1. # 一个是在/etc/login.defs文件,里面几个选项
  2. PASS_MAX_DAYS 90 #密码最长过期天数
  3. PASS_MIN_DAYS 80 #密码最小过期天数
  4. PASS_MIN_LEN 10 #密码最小长度
  5. PASS_WARN_AGE 7 #密码过期警告天数

清理没有用的账号

在想是不是注释掉,还是直接删除

  1. # 需要删除的用户包括:
  2. userdel lp
  3. userdel sync
  4. userdel shutdown
  5. userdel halt
  6. userdel news
  7. userdel operator
  8. userdel games
  9. userdel ftp
  10. userdel rpc
  11. userdel rpcuser
  12. userdel gopher
  13. userdel nscd
  14. # 需要删除的组包括:
  15. groupdel lp
  16. groupdel news

使用sudo来使用root权限

  1. [root@tp /]# /etc/sudoers
  2. # 在 root ALL=(ALL) ALL 下面添加一行
  3. username ALL=(ALL) ALL
  4. # 如果不想每次都输入密码可以用这一行
  5. username ALL=(ALL) NOPASSWD:ALL
  6. exit

最小文件权限

原则:原则上不给任何权限,只有需要的时候才添加权限。能不给写和执行的权限,坚决不能给!!拒绝777的行为。

赋权限的类型:

  1. 重要的系统目录不可以修改
  2. 产品代码只可以读,不可以执行,不可以修改
  3. 需要上传目录,否则特别需要文件读写的目录要单独规划好。
  4. 通过umask设置默认生成的文件和文件目录的最小权限。

更新补丁

建议做法:重装系统,update,然后测试业务是否正常。不建议写成定时去更新,容易引发软件的冲突,导致业务不可用。

如果是线上的业务,可以通过集群和配置管理的方式,把部分服务器更新。但是要做好计划,不能盲目更新。

人为的因素

人才是系统安全最大的隐患。

  1. 每个人一个账号。
  2. 每个角色一个组(比如:运维,开发)。这个需要进一步思考和细化。
  3. 不允许使用root,如果有需要使用sudo。(能不能粒度到组啊?)
  4. 把日常的运维操作,做成命令或者别名,减少人为操作。

验证方法

  1. 文件是否被人篡改过 。Tripwire
  2. 密码是否安全,是否容易被破解。John the Ripper。当然原则上通过防火墙来隔离更好,不允许其他网段ssh。
  3. 系统安全。Lynis是针对Unix/Linux的安全检查工具,可以发现潜在的安全威胁。这个工具覆盖可疑文件监测、漏洞、恶意程序扫描、配置错误等。
  4. 其他的场景,根据能不能操作来验证。

web安全——系统(Linux)的更多相关文章

  1. 嵌入式系统Linux内核开发工程师必须掌握的三十道题(转)

    嵌入式系统Linux内核开发工程师必须掌握的三十道题 如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看! 1) Linux中主要有哪几种内核 ...

  2. 基于Web的系统测试方法

    基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否 ...

  3. OS.js – 开源的 Web OS 系统,赶快来体验

    OS.js 是一个开源的 Web OS 系统,可以在浏览器中运行,提供了窗口管理器,应用程序API,用户界面开发套件和抽象的文件系统等.可以部署在 Node 或者 PHP 环境中运行.OS.js is ...

  4. 【转发】构建高可伸缩性的WEB交互式系统(下)

    原文转自:http://kb.cnblogs.com/page/504518/ 本文是<构建高可伸缩性的WEB交互式系统>系列文章的第三篇,以网易的NEJ框架为例,对模块的可伸缩性进行分析 ...

  5. 【转发】构建高可伸缩性的WEB交互式系统(中)

    原文转自:http://kb.cnblogs.com/page/503953/ 在<构建高可伸缩性的WEB交互式系统>的第一篇,我们介绍了Web交互式系统中平台的可伸缩性.本文将描述模块的 ...

  6. 【转发】构建高可伸缩性的WEB交互式系统(上)

    原文转自:http://kb.cnblogs.com/page/503460/ 可伸缩性是一种对软件系统处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展过程中,能够保证旺盛的生命力,通过很少的改 ...

  7. Walle 瓦力 web部署系统

    Walle 一个web部署系统工具,可能也是个持续发布工具,配置简单.功能完善.界面流畅.开箱即用! 安装步骤: 1. git clone 首先配置成功(去百度找答案) 打开git bash命令窗口执 ...

  8. 谈Web应用系统的可维护性

           每一个软件开发人员都十分清楚, 当软件构建得越来越复杂时, 可维护性就成了一个很突出的问题. 如何在构造软件系统的过程中始终保持可控制的可维护性呢?          一. 整体组织   ...

  9. 关于web资金系统提现安全保护,防止极快的重复并发请求导致重复提现的解决思路

    关于WEB金融系统中的提现安全问题很多人没有深入思想,导致有漏洞,常常会遇到有些人遇到被攻击到导资金损失的麻烦,     其实要彻底解决重复并发请求 导致重复提现问题,是需要花点心思的,并没有看起来的 ...

随机推荐

  1. HTML5本地存储之localStorage、sessionStorage

    1.概述 localStorage和sessionStorage统称为Web Storage,它使得网页可以在浏览器端储存数据. sessionStorage保存的数据用于浏览器的一次会话,当会话结束 ...

  2. [Z] 计算机类会议期刊根据引用数排名

    一位cornell的教授做的计算机类期刊会议依据Microsoft Research引用数的排名 link:http://www.cs.cornell.edu/andru/csconf.html Th ...

  3. 设置zookeeper jvm内存

    看了你的问题, 我还特意的查看了ZooKeeper的启动脚本代码.ZooKeeper启动脚本没有加任何参数,也就是使用jvm默认的. 如果想要加大ZooKeeper的JVM使用内存.可以在更改{ZK_ ...

  4. python 字符串长度

    通过内置方法len()来计算字符串的长度,注意这个计算的是字符的长度. aa = 'afebb'bb = '你'print len(aa)print len(bb)

  5. Qt snippet — 打开文件&保存文件

    打开文件: void Notepad::on_actionOpen_triggered() { QString fileName = QFileDialog::getOpenFileName(this ...

  6. Nginx--Windows环境下Nginx+tomcat配置(包括动静分离)

    前提条件: (1)已安装好tomcat,且能成功启动 (2)已安装好Nginx,且能成功启动 接下来进行配置: (1)在Nginx的conf文件夹中新增两个文件,分别如下:(新建文件后,直接复制代码即 ...

  7. Android 布局之TableLayout

    Android 布局之TableLayout 1 TableLayout简介 TableLayout是表格布局.TableLayout 可设置的属性包括全局属性及单元格属性. 1.1 全局属性 有以下 ...

  8. Android 学习笔记之AndBase框架学习(三) 使用封装好的函数完成Http请求..

    PS:踏踏实实走好每一步... 学习内容: 1.使用AndBase框架实现无参Http Get请求... 2.使用AndBase框架实现有参Http Post请求... 3.使用AndBase框架实现 ...

  9. Google FlatBuffers——开源、跨平台的新一代序列化工具

    前段时间刚试用了一个序列化工具cereal,请看cereal:C++实现的开源序列化库,打算再总结下我对google proto buf序列化库的使用呢, 结果还没动手,大Google又出了一个新的. ...

  10. 微软IIS对http keep-alive的“霸道”处理

    大家都知道在IIS中有个HTTP keep-alive设置,见下图: 很多人可能和我们一样,以为这样设置后,IIS会就在发送响应内容时加上这个http header——Connection: keep ...