web安全——系统(Linux)

简介

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

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

场景

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

解决方案

最少服务

服务越少,漏洞越少,越不容易被攻击,越安全。服务器自己越封闭越安全。bash

最小安装。

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

取消没必要要的服务

即便作了最小安装,仍是有不少可能用不到的服务,建议也是关闭,除非真的有用。app

# 查看哪些服务在运行
/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终端登陆

删除历史记录

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

[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的行为。
赋权限的类型:

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

更新补丁

建议作法:重装系统,update,而后测试业务是否正常。不建议写成定时去更新,容易引起软件的冲突,致使业务不可用。
若是是线上的业务,能够经过集群和配置管理的方式,把部分服务器更新。可是要作好计划,不能盲目更新。

人为的因素

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

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

验证方法

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