Linux审计系统auditd 套件
安装 auditd
REL/centos默认已经安装了此套件,如果你使用ubuntu server,则要手工安装它:
sudo apt-get install auditd
它包括以下内容:
auditctl: 即时控制审计守护进程的行为的工具,比如如添加规则等等。
/etc/audit/audit.rules: 记录审计规则的文件。
aureport : 查看和生成审计报告的工具。
ausearch: 查找审计事件的工具
auditspd: 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
autrace : 一个用于跟踪进程的命令。
/etc/audit/auditd.conf: auditd工具的配置文件。
Audit 文件和目录访问审计
首次安装 auditd 后, 审计规则是空的。可以用 sudo auditctl -l 查看规则。文件审计用于保护敏感的文件,如保存系统用户名密码的passwd文件,文件访问审计方法:
sudo auditctl-w /etc/passwd -p rwxa
-w path : 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd
-p : 指定触发审计的文件/目录的访问权限
rwxa : 指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)
目录进行审计和文件审计相似,方法如下:
$ sudo auditctl -w /production/
以上命令对/production目录进行保护。
3. 查看审计日志
添加规则后,我们可以查看 auditd 的日志。使用 ausearch 工具可以查看auditd日志。
sudo ausearch-f /etc/passwd
-f 设定ausearch 调出 /etc/passwd文件的审计内容
4. 查看审计报告
以上命令返回log如下:
time->Mon Dec 22 09:39:16 2016
type=PATH msg=audit(1419215956.471:194): item=0 name="/etc/passwd"
inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1419215956.471:194): cwd="/home/somebody"
type=SYSCALL msg=audit(1419215956.471:194): arch=40000003 syscall=5
success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231 auid=4294967295 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295
comm="sudo" exe="/usr/bin/sudo" key=(null)
time : 审计时间。
name : 审计对象
cwd : 当前路径
syscall : 相关的系统调用
auid : 审计用户ID
uid 和 gid : 访问文件的用户ID和用户组ID
comm : 用户访问文件的命令
exe : 上面命令的可执行文件路径
以上审计日志显示文件未被改动。
⑴通过环境变量syslog对全部全部日志进行审计(信息量太大,不推荐)
⑵sudo配合syslog服务,进行sudo操作日志进行审计(信息较少,效果不错)
⑶在bash解释器嵌入一个监视器,让所有用户使用修改过的bash程序,作为解释程序。
⑷齐治的堡垒机(商业产品)。
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。
selinux你可以直接理解为防火墙加系统权限管理,在防火墙的更上一级。你的问题可以说涵盖比较多,先从系统管理权限来说的话,文件使用ls -l来看的话,第一列会有10个例如-rwx--x--x这样的文字组成的,这个第一位代表这个文件是什么文件,2到4为代表创建者的权限,rwx分别代表读写执行,5-7代表用户所在组的权限,8-10代表其他的人。root超级管理员不受这个属性的控制,每个用户都有一个基本组,也会有附加组。ls -l第二列代表用户创建者,第三列代表文件拥有组。还有s和t的权限。请仔细预读关于linux系统权限管理的相关文献。这是第一层的安全控制,第二层的控制位iptables,防火墙,主要针对外网对本机的出入口的权限控制。selinux涉及一部分系统管理权限以及防火墙的功能,为第三层安全机制。
操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,可以运行“#more /var/log/secure grep refused”来检查系统所受到的攻击,以便采取相应的对策,如使用SSH来替换Telnet/rlogin等。
-a exit,always -F arch=b64 -S all audit监控所有一切
-a exit,always -F arch=b64 -S execve -k exec audit监控execve的调用记录,实现监控所有用户的登录行为,包含用户所有操作,以及shell脚本中的命令
虽然时间有点晚。但是我想让别的不知道的但查到此问题的人也可以看看。
首先,这些恶意的攻击行为,旨在消耗服务器资源,影响服务器的正常运作,甚至攻击到服务器所在网络瘫痪。还有一方面,就是入侵行为,这种大多与某些利益有关联,有的涉及到企业的敏感信息,有的是同行相煎。
第一,做好硬件维护
当处理数据越来越多,占用资源也随之增多时,服务器就需要更多的内存和硬盘容量来储存这些资源,因此,每隔段时间后服务器需要升级,可是需要注意的增加内存或者硬盘时,要考虑到兼容性、稳定性,否则不同型号的内存有可能会引起系统出错。
还有对设备进行卸载和更换时,需要仔细阅读说明书,不要强行拆卸,而且必须在完全断电,服务器接地良好的情况下进行,防止静电对设备造成损坏。
同样,服务器的最大杀手尘土,因此需要定期给服务器除尘。特别要注意电源的除尘。
第二,做好数据的备份
对企业来说,服务器上的数据是非常宝贵,如果数据库丢失了,损失是非常巨大的,因此,企业需对数据进行定期备份,以防万一。一般企业都需要每天对服务器上的数据进行备份,而且要将备份数据放置在不同服务器上,
数据需要备份,同样需要防盗。可以通过密码保护好磁带并且如果你的备份程序支持加密功能,你还可以加密这些数据。同时,要定好备份时间,通常备份的过程会选择在晚上10点以后进行,到半夜结束。
第三,定期做好网络检查
第四,关闭不必要的服务,只开该开的端口
对于初学者,建议在所有的工作站上使用Windows 2000。Windows 2000是一个非常安全的操作系统。如果你并不想这样做,那么至少使用Windows NT。你可以锁定工作站,使得一些没有安全访问权的人想要获得网络配置信息变得困难或是不可能。
或者关闭那些不必要开的服务,做好本地管理和组管理。Windows系统有很多默认的服务其实没必要开的,甚至可以说是危险的,比如:默认的共享远程注册表访问(Remote Registry Service),系统很多敏感的信息都是写在注册表里的,如pcanywhere的加密密码等。
关闭那些不必要的端口。一些看似不必要的端口,确可以向黑客透露许多操作系统的敏感信息,如windows 2000 server默认开启的IIS服务就告诉对方你的操作系统是windows 2000。69端口告诉黑客你的操作系统极有可能是linux或者unix系统,因为69是这些操作系统下默认的tftp服务使用的端口。对端口的进一步访问,还可以返回该服务器上软件及其版本的一些信息,这些对黑客的入侵都提供了很大的帮助。此外,开启的端口更有可能成为黑客进入服务器的门户。
以上是服务器日常操作安全维护的一些技巧。
linux安全主要包括:
1.高级安全:
1)本地安全:linux权限体系(本地访问控制);身份验证(本地身份验证)
2)服务安全:tcpwrappers | xinetd;密码学--SSL--HTTPS;通过PAM来控制服务安全
3)网络安全:iptables;入侵检测及审计;常见入侵及攻击
2.高级路由
1)QOS队列规则
2)基本路由、策略路由、双线互备、负载均衡、隧道
3)VPN
4)TCP/IP协议分析
3.集群和存储
4.系统调优
1)进程
2)CPU
3) 内存
4)i/o存储
5)网络net
6) 服务server
扩展
具体看什么书呢,或者有什么资料
补充
推荐一本书:鸟哥的私房菜