linux防火墙firewalld与iptables的区别

linux | 2019-09-13 10:02:39

    在较老的CentOS系统中,防火墙是用iptables控制的,但是从新版本(Fedora 18)开始,已经不再使用iptables,而是使用firewalld取而代之。

    从Centos7以后,iptables服务的启动脚本已被忽略。请使用firewalld来取代iptables服务。在RHEL7里,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables。firewalld是iptables的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面。

    

firewalld 与 iptables的比较:


1,firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效;


2,firewalld使用区域和服务而不是链式规则;


3,firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制;


4,firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。只不过firewalld和iptables的结果以及使用方法不一样!


firewalld是iptables的一个封装,可以让你更容易地管理iptables规则。它并不是iptables的替代品,虽然iptables命令仍可用于firewalld,但建议firewalld时仅使用firewalld命令。


使用方式区别:

iptables要给http服务添加80端口允许规则,需要在/etc/sysconfig/iptables中添加如下内容:


-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


然后


systemctl stop iptables

systemctl restart iptables

systemctl enable iptables


firewalld实现同样的功能,可以用下面2种方式:


1.直接添加服务


firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --reload


2.添加端口


firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --reload


当然,firewalld.service需要设为开机自启动。


登录后即可回复 登录 | 注册
    
关注编程学问公众号