扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
→如果信息包与某条规则匹配,那么内核就对该信息包执行由该项规则的目标指定的操作。
&如果目标为ACCEPT,则允许该信息包通过,并将该包发给相应的本地进程处理。
&如果目标为DROP或REJECT,则不允许该信息包通过,并将该包阻塞并杀死。
→如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。
→最后,如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。理想的策略应该告诉内核DROP该信息包。
1.2.5 Red Hat linux 9中的Netfilter/iptables
Red Hat linux 9使用2.4版本的内核,并且内核的编译选项中包含对Netfilter的支持,同时iptables软件包是被默认安装的,所以可以直接使用。
另外,为了完成转发功能,必须打开系统内核的IP转发功能。使Linux变成路由器。
在Red Hat中有两种方法:
(1)修改内核变量ip_forward
#echo “1”>;/proc/sys/net/ipv4/ip_forward
(2)修改脚本/etc/sysconfig/network。
将FORWARD_IPV4=false
改为FORWARD_IPV4=true
2.1 相关的TCP/IP知识
2.1.1建立TCP连接(通过3次握手实现)
假如服务器A和客户机B通信。
(1)B->;A。当B要和A通信时,B首先向A发一个SYN标记的包,告诉A请求建立连接。只有当A收到B发来的SYN包,才可以建立连接,除此之外别无它法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不能让外部任何主机主动建立连接。
(2)B<-A。接着,A收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作。
(3)B->;A。B收到SYN/ACK包后,B发一个确认包(ACK),通知A连接已建立。至此,3次握手完成,一个TCP连接完成。
需要注意的是,当3次握手完成、连接建立以后,TCP连接的每个包都会设置ACK位。这就是为何连接跟踪很重要的原因了,没有连接跟踪,防火墙将无法判断收到的ACK包是否属于一个已经建立的连接。
2.1.2 结束TCP连接(通过4次握手实现)
假如服务器A和客户机B通信。注意,由于TCP连接是双向连接,因此关闭连接需要在两个方向上做。
(1)B->;A。当B要与A结束通信时,B首先向A发一个FIN标记的包,告诉A请求结束连接。由于连接还没有关闭,FIN包总是打上ACK标记。没有ACK标记而仅有FIN标记的包不是合法的包,并且通常被认为是恶意的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。