iptables和firewalld的区别
iptables与firewalld的区别
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命令。
一、使用方式区别(以http服务添加80端口允许规则):
1、iptables,vim/etc/sysconfig/iptables中添加如下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
systemctl restart iptables
2、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
3).删除端口
firewall-cmd --permanent --zone=public --remove-port=80/tcp
firewall-cmd --reload
4).针对某个IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.10" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.10" accept"
firewall-cmd --reload
5).针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
firewall-cmd --reload
6).删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
firewall-cmd --reload
二、查看方式区别
1、iptables 规则查看方式
iptables -nvL –line-number
iptables -nvL -t nat –line-number
-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数
-n 不对ip地址进行反查,加上这个参数显示速度会快很多
-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到
2、firewall规则查看方式
firewall-cmd --zone=public --list-services
firewall-cmd --zone=public --list-ports
所有的规则以xml方式存放在 cat /etc/firewalld/zones/public.xml这个目录,直接修改此目录也是可以的
systemctl status firewalld 查看防火墙状态
iptables -L -n查看防火墙规则