web安全——系统(Linux)
简介
最小(少)原则,是安全的重要原则。最小的权限,最小的用户,最少的服务,最少的进程,是最安全的。
系统安全包括:文件系统保护、用户管理安全、进程的保护以及日志的管理。
场景
- 确保服务最少,每个都是有用,而且权限最小化。
- 确保用户最少,每个都是有用,而且权限最小化。
- 确保文件权限最小。
- 及时更新补丁,解决漏洞。
- 规范好人为的因素。往往这个才是最大的隐患。
解决方案
最少服务
服务越少,漏洞越少,越不容易被攻击,越安全。服务器本身越封闭越安全。
最小安装。
绝不安装多余的软件,需要什么安装什么。在安装系统的时候就使用最小安装
。不要图形界面,不要其他服务。
取消不必要的服务
即使做了最小安装,还是有很多可能用不到的服务,建议也是关闭,除非真的有用。
# 查看哪些服务在运行
/sbin/chkconfig --list |grep 3:on
# 没有使用的服务都可以考虑删除。
chkconfig ip6tables off # ipv6
chkconfig auditd off #用户空间监控程序
chkconfig autofs off #光盘软盘硬盘等自动加载服务
...
禁止外来ping操作
[root@tp /]# vi /etc/rc.d/rc.local
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
限制控制台的登录
特别是关机和重启的命令,太危险了。
rm -rf /etc/security/console.apps/
[root@tp /]# vi /etc/securetty
...
#我们注释掉
tty1
# tty2
# tty3
# tty4
# tty5
# tty6
#只留下tty1,这时,root仅可在tty1终端登录
删除历史记录
防止账号被攻破后丢失更多的信息。
[root@tp /]# vim ~/.bash_logout
# 在里面添加命令
rm -rf ~/.bash_history
最小用户
使用的用户权限越小越安全。特别是有些软件的漏洞可以直接获取账号执行权限。一旦使用root启动,就相当于服务器的root直接被破解。
!千万不要用root启动软件。
自动注销
当我们登录到Linux服务器上操作完以后,应该退出当前用户,否则可能会出现安全问题,特别是root用户,一旦被盗用很可能造成不可挽回的损失
[root@tp /]# vim /etc/profile
# 在里面添加
export TMOUT=300
设置口令复杂度
(授权完修改密码会有影响吗???这个需要测试)
定期修改密码
# 一个是在/etc/login.defs文件,里面几个选项
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 80 #密码最小过期天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数
清理没有用的账号
在想是不是注释掉,还是直接删除
# 需要删除的用户包括:
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel operator
userdel games
userdel ftp
userdel rpc
userdel rpcuser
userdel gopher
userdel nscd
# 需要删除的组包括:
groupdel lp
groupdel news
使用sudo来使用root权限
[root@tp /]# /etc/sudoers
# 在 root ALL=(ALL) ALL 下面添加一行
username ALL=(ALL) ALL
# 如果不想每次都输入密码可以用这一行
username ALL=(ALL) NOPASSWD:ALL
exit
最小文件权限
原则:原则上不给任何权限,只有需要的时候才添加权限。能不给写和执行的权限,坚决不能给!!拒绝777的行为。
赋权限的类型:
- 重要的系统目录不可以修改
- 产品代码只可以读,不可以执行,不可以修改
- 需要上传目录,否则特别需要文件读写的目录要单独规划好。
- 通过umask设置默认生成的文件和文件目录的最小权限。
更新补丁
建议做法:重装系统,update,然后测试业务是否正常。不建议写成定时去更新,容易引发软件的冲突,导致业务不可用。
如果是线上的业务,可以通过集群和配置管理的方式,把部分服务器更新。但是要做好计划,不能盲目更新。
人为的因素
人才是系统安全最大的隐患。
- 每个人一个账号。
- 每个角色一个组(比如:运维,开发)。这个需要进一步思考和细化。
- 不允许使用root,如果有需要使用sudo。(能不能粒度到组啊?)
- 把日常的运维操作,做成命令或者别名,减少人为操作。
验证方法
- 文件是否被人篡改过 。
Tripwire
- 密码是否安全,是否容易被破解。
John the Ripper
。当然原则上通过防火墙来隔离更好,不允许其他网段ssh。 - 系统安全。
Lynis
是针对Unix/Linux的安全检查工具,可以发现潜在的安全威胁。这个工具覆盖可疑文件监测、漏洞、恶意程序扫描、配置错误等。 - 其他的场景,根据能不能操作来验证。
web安全——系统(Linux)的更多相关文章
- 嵌入式系统Linux内核开发工程师必须掌握的三十道题(转)
嵌入式系统Linux内核开发工程师必须掌握的三十道题 如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看! 1) Linux中主要有哪几种内核 ...
- 基于Web的系统测试方法
基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否 ...
- OS.js – 开源的 Web OS 系统,赶快来体验
OS.js 是一个开源的 Web OS 系统,可以在浏览器中运行,提供了窗口管理器,应用程序API,用户界面开发套件和抽象的文件系统等.可以部署在 Node 或者 PHP 环境中运行.OS.js is ...
- 【转发】构建高可伸缩性的WEB交互式系统(下)
原文转自:http://kb.cnblogs.com/page/504518/ 本文是<构建高可伸缩性的WEB交互式系统>系列文章的第三篇,以网易的NEJ框架为例,对模块的可伸缩性进行分析 ...
- 【转发】构建高可伸缩性的WEB交互式系统(中)
原文转自:http://kb.cnblogs.com/page/503953/ 在<构建高可伸缩性的WEB交互式系统>的第一篇,我们介绍了Web交互式系统中平台的可伸缩性.本文将描述模块的 ...
- 【转发】构建高可伸缩性的WEB交互式系统(上)
原文转自:http://kb.cnblogs.com/page/503460/ 可伸缩性是一种对软件系统处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展过程中,能够保证旺盛的生命力,通过很少的改 ...
- Walle 瓦力 web部署系统
Walle 一个web部署系统工具,可能也是个持续发布工具,配置简单.功能完善.界面流畅.开箱即用! 安装步骤: 1. git clone 首先配置成功(去百度找答案) 打开git bash命令窗口执 ...
- 谈Web应用系统的可维护性
每一个软件开发人员都十分清楚, 当软件构建得越来越复杂时, 可维护性就成了一个很突出的问题. 如何在构造软件系统的过程中始终保持可控制的可维护性呢? 一. 整体组织 ...
- 关于web资金系统提现安全保护,防止极快的重复并发请求导致重复提现的解决思路
关于WEB金融系统中的提现安全问题很多人没有深入思想,导致有漏洞,常常会遇到有些人遇到被攻击到导资金损失的麻烦, 其实要彻底解决重复并发请求 导致重复提现问题,是需要花点心思的,并没有看起来的 ...
随机推荐
- jQuery UI--jquery-autohide解读
// jQuery Autohide v1.0.2 // (c) 2014 Alex Taujenis // MIT License (function($) { return $.fn.autohi ...
- EPLAN Electric P8 2.0即将到来,着实令人期待-转caodaping
在今年的4月份,2.0版本的EPLAN Electric P8 首次揭开其神秘面纱,见诸于世.它的展露,再次印证了EPLAN 软件平台朝着"更实用"这一方向发展,同时也证明&quo ...
- C#的设计模式分为3大类23种
创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method ...
- mongodb备份恢复
注意:在备份文件存放目录的选择上有这样一个条件,文件存放目录不管有多深,都只能有它一个文件:(即除了备份文件之外只能存在文件夹,这个条件约束其整个目录树) 数据备份 : /mongodump --ho ...
- Winform快速开发组件的实现(一)
好久好久没有露面了,呵呵,对于写文章都有点生疏了. 在拿到任何一个项目,不管是b/s的还是c/s,我不会立即开始写代码,我一般会为使这些项目能够快速开发制定一系列的支持组件,虽然可能前期会付出一些代价 ...
- [OpenCV] IplImage and Functions
In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra. Ref: http://blog.c ...
- Windows7下的Java运行环境搭建过程图解
第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,(由于Sun于20 ...
- 性能测试类,让你写法代码养成经常测试的好习惯 -ASP.NET C#
介绍: 可以很方便的在代码里循环执行 需要测试的函数 自动统计出执行时间,支持多线程. 使用方法: PerformanceTest p = new PerformanceTest(); p.SetC ...
- 6/20 sprint3 看板和燃尽图的更新
- ASP.NET MVC5--添加验证
1.在Model类里面添加验证,代码如下: public class Movie { public int ID { get; set; } [StringLength(,MinimumLength= ...