① linux下审计危险的操作
看了你的问题,说说我的想法:
linux下指令很难判断它的危险程度,举个例子,比如楼上这位说的 rm -rf,如果他是普通用户登录,那就不是危险的,至少不会危险到系统,至于会不会误删掉他自己的东西,那跟他的操作习惯有关系,我们在怎么小心也是没用的。至于系统管理员,那他应该是非常清除那些是危险操作,要不然他还经常备份干什么呢,呵呵。 所以,与其控制危险操作,不如做好用户权限管理来得容易,只要把用户权限,文件权限管理好,即使危险的指令也不会有太大问题,这也正式linux的安全的根本所在。
如果阁下是另有用途的话,就算我上面的废话了
② 用kali入门linux是一种什么体验
Kali Linux是一个高级渗透测试和安全审计Linux发行版。作为使用者,我简单的把它理解为,一个特殊的Linux发行版,集成了精心挑选的渗透测试和安全审计的工具,供渗透测试和安全设计人员使用。也可称之为平台或者框架。
作为Linux发行版,Kali Linux是在BackTrack Linux的基础上,遵循Debian开发标准,进行了完全重建。并且设计成单用户登录,root权限,默认禁用网络服务。
了解更多开源相关,去LUPA社区看看吧
③ nmap扫出来好多linux系统
如下:
Nmap是一个免费的开源网络发现和安全审计实用程序,在Linux用户社区中被广泛使用,因为它使用起来非常强大。 Nmap通过在特定目标(通过IP)发送数据包,并通过解释传入的数据包来确定哪些帖子被打开/关闭,扫描系统上运行什么服务,防火墙或过滤器是否设置和启用,什么操作系统正在运行。 这些能力由于各种各样的原因而被使用,而且howtoing.com并不鼓舞,也不建议使用nmap进行恶意攻击。
安装Nmap首先,您应该在系统中安装“nmap”软件包。在CentOS上yum install nmap在Debianapt-get install nmap在Ubuntu上sudo apt-get install nmap使用Nmap安全扫描器然后您可以在终端上运行命令“nmap”,并附带目标的IP或网站地址以及各种可用的参数。 要了解nmap可以使用的所有参数的概述,请使用“nmap -help”命令。
④ 怎么样在linux中分配审计 管理员 安全员s三个权限呢
审计员负责审计日志查询、审计功能(audit、rsyslog)的控制;
安全员主要负责对安全日志的的查询
管理员拥有对用户的增删改查;
以上权限都是独立的
⑤ linux安全审计
selinux你可以直接理解为防火墙加系统权限管理,在防火墙的更上一级。
你的问题可以说涵盖比较多,先从系统管理权限来说的话,文件使用ls -l来看的话,第一列会有10个例如-rwx--x--x这样的文字组成的,这个第一位代表这个文件是什么文件,2到4为代表创建者的权限,rwx分别代表读写执行,5-7代表用户所在组的权限,8-10代表其他的人。root超级管理员不受这个属性的控制,每个用户都有一个基本组,也会有附加组。ls -l第二列代表用户创建者,第三列代表文件拥有组。还有s和t的权限。请仔细预读关于linux系统权限管理的相关文献。这是第一层的安全控制,第二层的控制位iptables,防火墙,主要针对外网对本机的出入口的权限控制。selinux涉及一部分系统管理权限以及防火墙的功能,为第三层安全机制。
⑥ Linux中与安全审计有关的函数
我的答案是最正确的 请采纳我的内核审计系统的接口函数在Linux内核需要输出审计信息时,它先调用函数audit_log_start创建缓冲区。接着,调用函数audit_log或audit_log_format写缓冲区写入审计信息,最后调用函数audit_log_end发送审计信息,并释放缓冲区。这三个函数分别说明如下:1.函数audit_log_start 函数audit_log_start申请审计缓冲区,如果任务当前在系统调用中,系统调用被标识为可审计的,并在系统调用退出时,产生一条审计记录。函数audit_log_start的参数ctx为审计上下文结构实例;参数gfp_mask为分配内存的类型,如:__GFP_WAIT表示可以等待和重调度;参数type为审计消息类型。如果缓存区申请成功,它返回审计缓冲区的指针,否则返回NULL表示错误。函数audit_log_start申请审计缓冲区,当审计缓冲区链表的缓冲区个数超过上限时,当前进程需要等待用户空间的后台进程将审计消息写入log文件,直到缓冲区个数小于上限值为止。函数audit_log_start在申请并初始化审计缓冲区后,给缓冲区加时间戳和审计记录序列号。函数audit_log_start列出如下(在linux26/kernel/audit.c中)://声明等待队列头,用于等待审计消息被后台进程写入log文件static DECLARE_WAIT_QUEUE_HEAD(audit_backlog_wait);struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,int type){struct audit_buffer*ab= NULL;struct timespect;unsigned intserial;int reserve;unsigned long timeout_start = jiffies; //开始的时间if (!audit_initialized)//如果已初始化,就直接退出return NULL;if (unlikely(audit_filter_type(type)))return NULL;if (gfp_mask & __GFP_WAIT)reserve = 0;elsereserve = 5; /*允许调用者多出5个条目*/ //当链表中审计缓冲区数超出上限时,进程等待auditd处理链表中缓冲区while (audit_backlog_limit&& skb_queue_len(&audit_skb_queue) > audit_backlog_limit + reserve) {if (gfp_mask & __GFP_WAIT && audit_backlog_wait_time && time_before(jiffies, timeout_start + audit_backlog_wait_time)) {/* 等待后台进程auditd从队列中处理部分缓冲区 */DECLARE_WAITQUEUE(wait, current);set_current_state(TASK_INTERRUPTIBLE); //设置当前进程的状态为可中断等待状态add_wait_queue(&audit_backlog_wait, &wait); //将当前进程加入等待队列if (audit_backlog_limit && skb_queue_len(&audit_skb_queue) > audit_backlog_limit)schele_timeout(timeout_start + audit_backlog_wait_time - jiffies);//调度__set_current_state(TASK_RUNNING);//设置当前进程为运行状态remove_wait_queue(&audit_backlog_wait, &wait);continue;} //检查每秒发送的记录数不能超过上限,以防止受非法攻击if (audit_rate_check())printk(KERN_WARNING "audit: audit_backlog=%d > " "audit_backlog_limit=%d\n", skb_queue_len(&audit_skb_queue), audit_backlog_limit);audit_log_lost("backlog limit exceeded");audit_backlog_wait_time = audit_backlog_wait_overflow;wake_up(&audit_backlog_wait);return NULL;}ab = audit_buffer_alloc(ctx, gfp_mask, type);//申请审计缓冲区if (!ab) {audit_log_lost("out of memory in audit_log_start");return NULL;}//得到当前时间存入t,计算审计记录的序列号,存入serialaudit_get_stamp(ab->ctx, &t, &serial); //将时间戳和序列号写入审计记录audit_log_format(ab, "audit(%lu.%03lu:%u): ", t.tv_sec, t.tv_nsec/1000000, serial);return ab;}函数audit_buffer_alloc申请审计缓冲区,先尝试从空闲链表上取下一个缓冲区,如果空闲链表中没有,就分配一个缓冲区。然后,填充netlink消息头。该函数列出如下: static DEFINE_SPINLOCK(audit_freelist_lock);//定义自旋锁,用于锁住链表audit_freeliststatic struct audit_buffer * audit_buffer_alloc(struct audit_context *ctx,gfp_t gfp_mask, int type){unsigned long flags;struct audit_buffer *ab = NULL;struct nlmsghdr *nlh; //从空闲链表中得到一个缓冲区spin_lock_irqsave(&audit_freelist_lock, flags);//加锁if (!list_empty(&audit_freelist)) {ab = list_entry(audit_freelist.next,struct audit_buffer, list);list_del(&ab->list);--audit_freelist_count;}spin_unlock_irqrestore(&audit_freelist_lock, flags);//释放锁 //如果空闲链表中没有空闲缓冲区成员,就分配一个缓冲区if (!ab) {ab = kmalloc(sizeof(*ab), gfp_mask);if (!ab)goto err;}ab->skb = alloc_skb(AUDIT_BUFSIZ, gfp_mask);//分配套接字缓冲区if (!ab->skb)goto err;ab->ctx = ctx;ab->gfp_mask = gfp_mask; //扩展套接字缓冲区skb的已使用数据区,将netlink消息头数据nlmsghdr加到skbnlh = (struct nlmsghdr *)skb_put(ab->skb, NLMSG_SPACE(0));nlh->nlmsg_type = type;nlh->nlmsg_flags = 0;nlh->nlmsg_pid = 0;nlh->nlmsg_seq = 0;return ab;err:audit_buffer_free(ab);return NULL;}2.函数audit_log_format函数audit_log_format将一个审计消息按格式写入审计缓冲区,参数ab为审计缓冲区,参数fmt为格式化的字符串。其列出如下:void audit_log_format(struct audit_buffer *ab, const char *fmt, ...){va_list args;if (!ab)return;va_start(args, fmt);audit_log_vformat(ab, fmt, args);va_end(args);}函数audit_log_vformat将一个审计消息按格式写入套接字缓冲区中,如果审计缓冲区没有足够的空间,就扩展套接字缓冲区的数据域。由于printk缓冲区为1024,扩展的套接字缓冲区最小应为1024。函数audit_log_vformat列出如下: static void audit_log_vformat(struct audit_buffer *ab, const char *fmt, va_list args){int len, avail;struct sk_buff *skb;va_list args2;if (!ab)return;BUG_ON(!ab->skb);skb = ab->skb;avail = skb_tailroom(skb);//计算套接字缓冲区的空闲数据空间if (avail == 0) {//如果套接字缓冲区没有空闲数据空间,扩展空间avail = audit_expand(ab, AUDIT_BUFSIZ);// AUDIT_BUFSIZ为1024,if (!avail)goto out;}va_(args2, args);len = vsnprintf(skb->tail, avail, fmt, args);//将信息写入到缓冲区if (len >= avail) {//如果实际信息长度比可用的缓冲区大,扩展空间/* 由于printk缓冲区是1024,因此,扩展空间最少为1024 */avail = audit_expand(ab,max_t(unsigned, AUDIT_BUFSIZ, 1+len-avail));if (!avail)goto out;len = vsnprintf(skb->tail, avail, fmt, args2); //将审计信息写入到缓冲区}if (len > 0)skb_put(skb, len); //将写入信息的数据缓冲区附加到skb上out:return;}
函数audit_expand扩展在审计缓冲区中的套接字缓冲区,扩展成功,返回可用的空间大小,扩展失败返回0,表示没有空间。参数ab表示审计缓冲区的指针,参数extra表示加到套接字缓冲区skb尾部的缓冲区空间大小。函数audit_expand列出如下:static inline int audit_expand(struct audit_buffer *ab, int extra){struct sk_buff *skb = ab->skb;int ret = pskb_expand_head(skb, skb_headroom(skb), extra, ab->gfp_mask);if (ret < 0) {audit_log_lost("out of memory in audit_expand");return 0;}return skb_tailroom(skb);//返回可用的缓冲区空间大小}3.函数audit_log_end当进程完成了将审计记录写入审计缓冲区的操作时,它调用函数audit_log_end将套接字缓冲区中的审计记录数据发送给用户空间后台进程,由后台进程写入到log文件。如果审计后台进程存在,使用netlink机制传输数据,由审计后台将套接字缓冲区中的审计记录数据写入审计文件audit.log中;如果审计后台不存在,使用函数printk记录数据,然后由日志后台进程将数据写入到日志文件中。当数据发送完成后,函数audit_log_end唤醒等待队列kauditd_wait。有些进程因为审计套接字缓冲区链表上的缓冲区数量超过上限而在队列kauditd_wait等待,当其他进程发送了数据时,应唤醒这些等待进程。函数audit_log_end列出如下:void audit_log_end(struct audit_buffer *ab){if (!ab)return;if (!audit_rate_check()) {//检查审计系统的传输速度,如果netlink机制传输速度超过上限,则返回错误audit_log_lost("rate limit exceeded");} else {if (audit_pid) {//如果审计后台的进程ID存在,使用netlink机制传输数据struct nlmsghdr *nlh = (struct nlmsghdr *)ab->skb->data;nlh->nlmsg_len = ab->skb->len - NLMSG_SPACE(0);skb_queue_tail(&audit_skb_queue, ab->skb);ab->skb = NULL;wake_up_interruptible(&kauditd_wait);//发送了数据,唤醒等待队列} else {//使用printk记录数据printk(KERN_NOTICE "%s\n", ab->skb->data + NLMSG_SPACE(0));}}audit_buffer_free(ab);}
⑦ 绿盟安全审计系统SASNX3-HDB615
摘要
管理对象
⑧ Linux服务器安全策略详解的序言
Linux系统属于开放源代码软件,由于Linux系统具有稳定、安全、网络负载力强、占用硬件资源少等技术特点,自问世以来得到了迅速推广和应用,并已发展为当今世界的主流操作系统之一。目前对Linux感兴趣的用户主要集中在一些垂直行业当中。在国外,企图提升利润率的有零售、家电行业,包括石油、动画设计等在内的计算密集型应用企业,还有想通过Linux的成本控制来提高企业竞争优势的一些电信、政府和医疗行业。对于零售行业的POS终端和数据中心而言,Linux既可靠又便宜。石油行业则通常利用上千个结点的Linux集群来承担石油勘探中的大量运算工作。国内的企业应用同样也迅速普及。由于电子政务的“崛起”,政府行业已占据了Linux市场的大量份额。能源行业的Linux应用在国内市场份额上也名列前茅。金融、电信等传统大行业应用Linux的趋势已然显露。可以总结出Linux的擅长应用领域是:
1.单一应用的基础服务器,如DNS和DHCP服务器、Web服务器、防火墙、文件和互联网代理服务器。
2.界定清晰,与其他系统没有交叉的应用。
3.高性能计算及计算密集型应用,如风险分析、数据分析、数据建模等。
4.中小型数据库。
对于那些应用很单纯的企业,购买Linux软件的成本优势则十分明显。与Windows系列相比,Linux令人欣慰的一点是其出色的安全性,可以降低管理成本。这也是使很多公司转向Linux的一个非常重要的原因。在Windows服务器上,补丁让人应接不暇,耗费大量时间和精力。于是,人们选择了Linux。尽管Linux也会受病毒和黑客的侵扰,但是Linux内核毕竟是由众多具有黑客背景的程序员逐步完善而来的,相对安全一些。
目前,关于Linux方面的书虽然较多,但大多数都是介绍如何安装,以及如何使用像KDE和GNOME这类图形界面的,对Linux作为服务器应用的介绍相对较少,Linux真正的优势和发展方向是作为服务器操作系统。根据需要,Linux可安装成各种各样的服务器。
Linux是一个十分稳定的操作系统,目前用户已逾千万。但是,Linux服务器是否安全,这对Linux的用户来说是十分关心的问题。本书的目的,就是要说明Linux服务器通过加固配置后是安全的。
第2版说明
本书第1版在2007年7月出版后,得到广大读者的关注,同时也得到一些热心读者的宝贵意见和反馈。所以在第2版中做了一些内容的添加和删除。在第8章FTP服务器安全策略部分删除了现在Linux平台应用比较少的Wu-ftp和ProFTPD 两种服务器的内容。从21章开始是第2版添加的主要内容,首先使用三章的篇幅详细论述了两大开源数据库MySQL和PostgreSQL安全策略。然后以此介绍了Linux下新闻组服务器构建、网络钓鱼的防范、Linux无线网络构建及其安全策略、使用Linux安全审计以及使用Selinux保护Linux服务器的方法。附录部分笔者介绍了Linux服务器应急响应的流程与步骤。
限于本书的篇幅已经比较多了,关于虚拟化、集群、Web 2.0 等内容本书没有介绍,对此感兴趣的读者可以查看笔者的《Red Hat Enterprise Linux 5.0服务器构建与故障排除》。另外对于第1版的附录也做了较大的修改。删除了Linux命令的介绍,这么做的原因是考虑到目前已经有专门介绍Linux命令的相关图书,于是这里笔者节省了宝贵的篇,对此感兴趣的读者可以查看笔者的《Linux系统最佳实践工具:命令行技术》。

⑨ linux 是否有安全审计
有。除了PAM类的文件规定进程的创建、访问及认证配置外。
SElinux可以实现更多关于用户、组、特权等等的详细划分,但基于安全等级设定,其设置也比较繁琐。
⑩ linux服务器安全审计怎么弄
材料:
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 /proction/
以上命令对/proction目录进行保护。
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=0name="/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=40000003syscall=5
success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231auid=4294967295 uid=1000 gid=1000euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295
comm="sudo" exe="/usr/bin/sudo"key=(null)
以上审计日志显示文件未被改动。