Netfilter,iptables/OpenVPN/TCP guard:-(

我不会编程,但也不是一点都不会,我稍微会一些 :-)

Linux内核中文邮件列表的一个讨论

问题: 听了太多次大师的训诫:UNIX是如何如何的简约,如何如何的精致。以至于,几乎都快忘了这个通俗的道理:任何事物都会有它的生命期。我想,UNIX类操作系统应该也是一样。一个事物的腐烂,应该是从其最脆弱的地方开始吧?!那么,现代UNIX都有什么缺点呢?单从内核技术角度上有哪些呢?我想自己没有体会...

2010-02-09 22:37:00

阅读数:4453

评论数:2

对问题“为什么执行softirq时不能被抢占?”的解答

1.首先,在irq_exit中调用do_softirq前已经退掉了preempt_count中的HARDIRQ_MASK,因此softirq此时如果不在preempt_count加上SOFTIRQ_MASK位还是会被抢占的,我们看到softirq是在硬件中断后执行的,因此如果硬件中断是任意上下文的...

2010-02-09 22:36:00

阅读数:3702

评论数:0

对一个问题的解答

今天周日,陪老婆烫完头发回到家里,仍然不忘打开邮箱,一位朋友问了一个问题,说想用sysfs实现cdev,我觉得倒是没有什么不可,因为sysfs毕竟是一个内核和用户空间通信的接口,是个接口就可以被使用,我之所以敢打这个保票就是因为linux内核只提供机制而不提供任何策略,也就是说,只要你知道一个机制...

2010-02-09 22:36:00

阅读数:2553

评论数:0

linux共享内存的设计

posix的共享内存是通过用户空间挂在的tmpfs文件系统实现的,而system V的共享内存是由内核本身的tmpfs实现的,这里可以看出,二者其实是用同一种机制实现的,不同的是用户接口不同,posix旨在提供一套统一的可用接口而不是实现,因此posix的上层根本就不会在意其机制是内核实现的还是用...

2010-02-09 22:35:00

阅读数:5663

评论数:0

NULL指针引起的一个linux内核漏洞

NULL指针一般都是应用于有效性检测的,其实这里面有一个约定俗成的规则,就是说无效指针并不一定是 NULL,只是为了简单起见,规则约定只要指针无效了就将之设置为NULL,结果就是NULL这个指针被用来检测指针有效性,于是它就不能用作其它了,而实际上NULL就是0,代表了数值编号为0的一个内存地址,...

2010-02-09 22:35:00

阅读数:3599

评论数:3

linux内核的反复--一切都是过程

1. ZERO_PAGE 2.6.24内核中剔除了ZERO_PAGE这个鸡肋,然而近期又准备添加近来,这样做的原因还是在于当初它为何被当成了鸡肋,当成鸡肋的原因就是当zero页面加入反向映射的时候会更新其page结构体的引用计数,从而造成了固定cacheline的冲刷,仅仅这一点就将zero页面...

2010-02-09 22:35:00

阅读数:4280

评论数:0

TCP校验值的伪头以及校验值计算

tcp层的校验值难道还需要ip层的元数据也就是ip头吗?如果一切都是理想的显然不需要,因为这违背了分层隔离的原则,下层一定不能依赖上层,但是上层可以访问下层,还好tcp使用ip信息正是这一点。按照封包原则,封装到TCP层的时候,ip信息还没有封装上去,但是校验值却需要马上进行计算,所以必须手工构造...

2010-02-09 22:34:00

阅读数:5965

评论数:6

内核中实现负载均衡

在《实现一个简单的反向NAT并引申一个web请求内容过滤》中提到了一个内核nat的实现方式,如果nat可以用iptables实现而没有必要修改内核的话,那么负载均衡将是netfilter所不能做到的,虽然netfilter的灵活性足以让人们对它进行简单的修改就可以实现,但是修改内核(不使用netf...

2010-02-09 22:34:00

阅读数:2329

评论数:0

TCP的syn-cookie以及SHA1摘要算法的实现

linux内核中实现了syn-cookie,可以有效阻止syn-flood攻击,syn-cookie理论上很简单,就是在服务器接收到客户端的syn包时并不分配任何内存空间,而是巧妙的选择服务器的isn值传给客户端,isn本地也并不保存(本地不保存任何东西),然后客户端发来synack的ack确认包...

2010-02-09 22:34:00

阅读数:4535

评论数:1

再谈linux中为何没有网卡设备文件--深层次原因

这个问题其实没有什么意思,知道了问题的答案能表明一个人技术水平有多高吗?不能!这个问题有答案以及有意义吗?答案都是没有!那我还为何一直对这个问题死死揪住不放?这类问题可以提高一个人的素质以及了解一段关于网络和unix的历史,正是因为这些都很有趣,才如此值得关注。 在unix中,一切io相关的实体...

2010-02-09 22:33:00

阅读数:8833

评论数:7

实现一个简单的反向NAT并引申一个web请求内容过滤

如果不懂NAT怎么办,其实NAT基本谁都懂,关键是如果不懂配置怎么办,不精通iptables怎么办?幸亏我们玩的是linux内核,我们完全可以自己写一个简单的NAT,通过一个简单的思想就能实现一个简单的NAT,通过扩展这个思想,我们还能实现内容过滤呢。nat简单的说就是地址转换,通过将源地址转换或...

2010-02-09 22:33:00

阅读数:3192

评论数:1

为何UNIX/Linux中会有suid程序

linux的单点验证我已经说了不止一次了,linux的整体设计是机制和策略相分离的,单点验证显然是策略方面的东西,因此验证本身并没有内核的介入,那么什么是验证本身呢?其实就是诸如最简单的的密码验证和稍微复杂一点的指纹,声音或者瞳孔验证,不管怎么说这些都是策略,内核不应该介入,因此内核当中你无法知道...

2010-02-09 22:32:00

阅读数:3552

评论数:0

ptrace接口和execve同步导致的一个内核漏洞

linux中是不可以依附别的进程的,更不可能创建远程线程,然而一种不太正规的方式却可以做到这一点,这就是ptrace接口,ptrace可以依附任何用户进程,用特殊的参数甚至可以更改任何进程的寄存器和内存映射,这个功力和创建远程线程不相上下,甚至比其更加灵活,如果理解了elf映像在内存的布局便可以通...

2010-02-09 22:32:00

阅读数:2436

评论数:0

木马程序的信息存储位置

将信息置于目前不使用的扩展字段或者在不和当前信息冲突的前提下将信息“挤”进当前字段,正如current->flags可以重用一样,比如,如果标准内核中已经定义个若干flag标志,比如running,sleeping等,我们就可以使用还没有使用的标志,要知道如果flags字段是一个32位的整型...

2010-02-09 22:31:00

阅读数:1789

评论数:0

关于linux栈的一个深层次的问题

内存不用白不用,何必在一开始就限制栈的大小,linux的机制是尽量多尽量紧凑的使用虚拟内存,原则就是你现在不用我就用,没有预留的概念,当然你可以通过系统调用实现预留,就像glibc的堆管理那样,这里所说的完全是针对于操作系统内核的,用户空间程序完全可以向操作系统通过brk或者mmap实现用户空间的...

2010-02-09 22:31:00

阅读数:3795

评论数:1

两个linux内核rootkit--导语

曾经说过,linux由于其内秉的文件删除机制导致一旦发现有恶意代码很容易被清除掉,即使发现内核本身被感染也是很容易被清除掉,但是这并不能表示linux就是绝对安全的,这仅仅说明linux的补救措施很有效,因此如果想黑掉linux系统,那么首要的不是想如何让用户删不掉恶意程序,而是尽可能严谨的隐藏恶...

2010-02-09 22:30:00

阅读数:2607

评论数:0

两个linux内核rootkit--之一:enyelkm

首先,这个rootkit其实是一个内核木马,和大多数木马不同的是,恶意木马所在的机器是客户端而不是服务器,而黑客所在的机器是服务器,这样做的好处在于可以躲避防火墙,一般的防火墙对外出的包审查不是那么严格而对进入的包审查严格,如果恶意程序是服务器,那么防火墙很可能会拦截连入服务器的黑客客户端进程导致...

2010-02-09 22:30:00

阅读数:5168

评论数:0

两个linux内核rootkit--之二:adore-ng

这个rootkit使用的技术不比前一个,它不是拦截系统调用,而是拦截具体文件系统的回调函数,本身文件系统的回调函数就是动态注册的,很是不确定,那么反黑软件自然就不能简单下结论说这个函数被黑掉了,因此这个rootkit看来比前一个略胜一筹,自然的,既然是内核模块,那么模块隐藏也是一个重要的内容,以下...

2010-02-09 22:30:00

阅读数:5190

评论数:2

从linux的文件删除机制解释为何linux的病毒那么少

很多人曾经说过,linux下的病毒没有windows多的原因在于linux使用的人不多,人们不屑于开发linux下的病毒,看到这个言论我笑了,想必很多人都有过explorer被注入的经历吧,explorer被替换然后怎么也删除不掉,或者一个system32下的一个顽固文件怎么也删除不掉,更不幸的是...

2010-02-09 22:29:00

阅读数:4159

评论数:3

linux的正交性设计使之完全是windows的超集

linux是windows的超集的意思是说linux完全可以模拟成windows的系统界面,这个怎么理解呢?众所周知,linux的文件系统和windows的有着很大的区别,linux是以/为根的树形结构,而windows的却是分为好几个盘符,不过与其说这是它们的区别倒不如说windows的磁盘布局...

2010-02-09 22:29:00

阅读数:2192

评论数:0

提示
确定要删除当前文章?
取消 删除