ubuntu系统关闭防火墙命令 ubuntu防火墙设置

简单说,firewalld是新的防火墙管理工具,iptables是过去的管理工具,两者都是linux提供给用户的操作界面,真正的执行者是netfilter.

ubuntu系统关闭防火墙命令 ubuntu防火墙设置

文章插图
ubuntu系统关闭防火墙命令 ubuntu防火墙设置

文章插图
ubuntu系统关闭防火墙命令 ubuntu防火墙设置

文章插图
NF_IP_PRE_ROUTING数据报在进入路由代码被处理之前,数据报在IP数据报接收函数ip_rcv()(位于net/ipv4/ip_input.c,Line379)的最后,也就是在传入的数据报被处理之前经过这个HOOK 。在ip_rcv()中挂接这个HOOK之前,进行的是一些与类型、长度、版本有关的检查 。经过这个HOOK处理之后,数据报进入ip_rcv_finish()(位于net/ipv4/ip_input.c,Line306),进行查路由表的工作,并判断该数据报是发给本地机器还是进行转发 。在这个HOOK上主要是对数据报作报头检测处理,以捕获异常情况 。
  • 涉及功能(优先级顺序):conntrack、mangle、DNAT
NF_IP_LOCAL_IN目的地为本地主机的数据报在IP数据报本地投递函数ip_local_deliver()(位于net/ipv4/ip_input.c,Line290)的最后经过这个HOOK 。经过这个HOOK处理之后,数据报进入ip_local_deliver_finish()(位于net/ipv4/ip_input.c,Line219) 。这样,iptables模块就可以利用这个HOOK对应的INPUT规则链表来对数据报进行规则匹配的筛选了 。防火墙一般建立在这个HOOK上 。
  • 涉及功能:mangle、filter、SNAT、conntrack
NF_IP_FORWARD目的地非本地主机的数据报,包括被NAT修改过地址的数据报,都要在IP数据报转发函数ip_forward()(位于net/ipv4/ip_forward.c,Line73)的最后经过这个HOOK 。经过这个HOOK处理之后,数据报进入ip_forward_finish()(位于net/ipv4/ip_forward.c,Line44) 。另外,在net/ipv4/ipmr.c中的ipmr_queue_xmit()函数(Line1119)最后也会经过这个HOOK 。(ipmr为多播相关,估计是在需要通过路由转发多播数据时的处理) 。这样,IPTables模块就可以利用这个HOOK对应的FORWARD规则链表来对数据报进行规则匹配的筛选了 。
  • 涉及功能:mangle、filter
NF_IP_LOCAL_OUT本地主机发出的数据报在IP数据报构建/发送函数ip_queue_xmit()(位于net/ipv4/ip_output.c,Line339)、以及ip_build_and_send_pkt()(位于net/ipv4/ip_output.c,Line122)的最后经过这个HOOK 。(在数据报处理中,前者最为常用,后者用于那些不传输有效数据的SYN/ACK包) 。经过这个HOOK处理后,数据报进入ip_queue_xmit2()(位于net/ipv4/ip_output.c,Line281) 。另外,在ip_build_xmit_slow()(位于net/ipv4/ip_output.c,Line429)和ip_build_xmit()(位于net/ipv4/ip_output.c,Line638)中用于进行错误检测;在igmp_send_report()(位于net/ipv4/igmp.c,Line195)的最后也经过了这个HOOK,进行多播时相关的处理 。这样,iptables模块就可以利用这个HOOK对应的OUTPUT规则链表来对数据报进行规则匹配的筛选了 。
  • 涉及功能:conntrack、mangle、DNAT、filter
NF_IP_POST_ROUTING所有数据报,包括源地址为本地主机和非本地主机的,在通过网络设备离开本地主机之前,在IP数据报发送函数ip_finish_output()(位于net/ipv4/ip_output.c,Line184)的最后经过这个HOOK 。经过这个HOOK处理后,数据报进入ip_finish_output2()(位于net/ipv4/ip_output.c,Line160)另外,在函数ip_mc_output()(位于net/ipv4/ip_output.c,Line195)中在克隆新的网络缓存skb时,也经过了这个HOOK进行处理 。
  • 涉及功能:mangle、SNAT、conntrack
其中,入口为net_rx_action()(位于net/core/dev.c,Line1602),作用是将数据报一个个地从CPU的输入队列中拿出,然后传递给协议处理例程 。
【ubuntu系统关闭防火墙命令 ubuntu防火墙设置】出口为dev_queue_xmit()(位于net/core/dev.c,Line1035),这个函数被高层协议的实例使用,以数据结构struct sk_buff *skb的形式在网络设备上发送数据报 。
iptablesiptables提供了管理员与netfilter的交互接口,iptables是按照规则来办事的,所谓规则其实就是网络管理员预定义的条件,规则一般的定义为”如果数据包头符合这样的条件,就这样处理这个数据包” 。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等 。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等 。配置防火墙的主要工作就是添加、修改和删除这些规则 。
四表五链iptables的规则组成,又被称为四表五链