您的位置:首页 > 运维架构 > Linux

linux 防火墙--firewalld学习

2016-01-12 15:45 561 查看
firewalld是centos7默认的防火墙,相比于iptables重要的优势:

1 支持动态更新;

2 不用重启服务;

同时增加了防火墙的“zone”概念,具体差异没做过多了解,这篇文章只记录firewalld简单学习历程

centos7默认安装的就是firewalld,默认的public中开启dhcpv6-client ssh这两个服务,这也就是当装完centos7后启动nginx 80端口拒绝连接,我们却找不到iptables命令的原因。

启动、关闭、重启firewalld服务命令:

$ systemctl start firewalld
$ systemctl stop firewalld
$ systemctl restart firewalld
$ firewall-cmd --state  # 查看firewalld运行情况


其他可查阅systemctl命令。

规则管理命令

$ firewall-cmd --panic-on           # 丢弃
$ firewall-cmd --panic-off          # 取消丢弃
$ firewall-cmd --query-panic        # 查看丢弃状态
$ firewall-cmd --reload             # 更新规则,不重启服务
$ firewall-cmd --complete-reload   # 更新规则,重启服务


firewalld zone区域是新引入的概念,Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别

drop: 丢弃所有进入的包,而不给出任何响应

block: 拒绝所有外部发起的连接,允许内部发起的连接

public: 允许指定的进入连接

external: 同上,对伪装的进入连接,一般用于路由转发

dmz: 允许受限制的进入连接

work: 允许受信任的计算机被限制的进入连接,类似 workgroup

home: 同上,类似 homegroup

internal: 同上,范围针对所有互联网用户

trusted: 信任所有连接

firewalld-cmd 支持动态更新,修改更新操作默认为立刻生效,--
permanent
参数配合重新加载实现永久生效

对应zone常用的命令:

$ firewall-cmd --list-all-zone #获取全部zone
$ firewall-cmd --get-active-zone  #获取活跃的zone
$ firewall-cmd --get-default-zone  #获取默认的zone
$ firewall-cmd --set-default-zone=work  #修改默认的zone
$ firewall-cmd --zone=work --change-interface=eno16777736  #修改网卡关联的zone
$ firewall-cmd --zone=public --list-all  #查询zone=public配置信息


服务管理

$ firewall-cmd --zone=work --add-service=smtp
$ firewall-cmd --zone=work --remove-service=smtp
$ firewall-cmd --get-service


端口号管理

$ firewall-cmd --zome=dmz --list-ports
$ firewall-cmd --zone=dmz --add-port=8080/tcp
$ firewall-cmd --zome=public --add-port=8080-8090/udp


firewalld
有一个被称为 “direct interface”(直接接口),它可以直接通过 iptablesip6tablesebtables 的规则。它适用于应用程序,而不是用户。如果您不太熟悉 iptables,那么使用直接接口是很危险的,因为您可能无意中导致防火墙被入侵。
firewalld
保持对所增加项目的追踪,所以它还能质询
firewalld
和发现由使用直接端口模式的程序造成的更改。直接端口由增加
--direct
选项到
firewall-cmd
命令来使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: