CentOS7防火墙firewalld管理

firewalld简介

  firewalld是firewall daemon,CentOS7以上默认的防火墙管理工具,拥有运行时配置和永久配置选项,也允许服务或应用程序直接添加防火墙规则的接口。firewalld使用zones和services的概念,而iptables使用chains和rules。与iptables相比,firewalld提供了更灵活的方式来管理防火墙。firewalld自身不具备防火墙功能,而是和iptables一样需要通过内核netfilter来实现。

  相较于传统的防火墙管理工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了好几套防火墙访问控制策略集合(模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现策略之间的快速切换。基于用户对网络中设备和通信所给与的信任程度,firewalld可用于将网络划分成不同的区域,为每个区域提供不同级别的安全性。

  block:限制,任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。
  dmz:非军事区,外部受限地访问内部网络,仅接收经过选定的网络连接。
  drop:丢弃,任何接收的网络数据包都被丢弃,且没有任何回复,仅能有发送的网络连接。
  external:外部,为路由器启用了伪装功能的外部网络,不信任网络内的其它计算机,仅接收经过选定的网络连接。
  home:家庭,网络内的其它计算机通常是可信任的,仅接收经过选定的网络连接。
  internal:内部,网络内的其它计算机通常是可信任的,仅接收经过选定的网络连接。
  public:公共,也是初始默认区域,不信任网络内的其它计算机,仅接收经过选定的网络连接。当网络接口连接加入了NetworkManager,它们就被绑定至默认区域。
  trusted:信任,接受所有网络连接。
  work:工作,网络内的其它计算机通常是可信任的,仅接收经过选定的网络连接。

# 获取系统所有的zone
[root@host log]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

# 获取系统当前默认是的zone
[root@host log]# firewall-cmd --get-default-zone
public

# 查看系统当前所有的service
[root@host log]# firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

# 查看系统当前zone下有哪些service
[root@host log]# firewall-cmd --list-services
dhcpv6-client ssh
[root@host log]# firewall-cmd --list-service
dhcpv6-client ssh

firewalld安装

1rpm -qa |grep firewalld
2、 yum install firewalld
3、 systemctl start firewalld.service

firewalld常规操作

1、端口管理
2、服务管理

# 查看firewalld状态
systemctl  status firewalld.service

# 显示firewalld的状态
[root@host]# firewall-cmd  --state
running

# 查看public中所有打开的端口
firewall-cmd  --zone=public --list-ports

# 将特定网卡加入默认区域
firewall-cmd --zone=public --add-interface=eth0
firewall-cmd --zone=public --query-interface=eth0
firewall-cmd --zone=pubic --list-all

# 添加开放端口,如果80/tcp 3306/tcp等
# --permanent为永久生效,需要通过--reload或重启系统才会永久生效
# 如无--permanent选项执行后立即生效,但不会写入配置文件,一旦重启系统或reload失效
firewall-cmd  --zone=public --add-port=80/tcp --permanent
firewall-cmd  --zone=public --add-port=5432/tcp --permanent
firewall-cmd  --zone=public --add-port=6379/tcp --permanent

# 更新防火墙规则,添加和删除规则后,需要--reload更新生效
firewall-cmd  --reload

# 查看端口释放开放
firewall-cmd  --zone=public --query-port=80/tcp

# 删除开放端口
firewall-cmd  --zone=public --remove-port=80/tcp --permanent

# 通过富语言放通某个IP或者IP段(常用于应用服务迁移下线后的操作,封闭一段时间流量)
# 富语言:规则允许使用易于理解的命令创建更复杂的防火墙规则
# accept: 所有新的连接请求都被允许
# reject:连接将被拒绝,连接来源将接收到一个拒绝信息,拒绝信息可被设定为另一种值
# drop:所有数据包都会被丢弃,且不会向来源地址发送任何信息
firewall-cmd  --permanent --add-rich-rule="rule family=ipv4 source address=172.18.60.0/24 port protocol=tcp port=3306 accept"
firewall-cmd  --permanent --add-rich-rule='rule family=ipv4 source address=172.18.68.3 accept'
[root@host log]# firewall-cmd  --list-rich-rule # 查看已启用的富语言规则
rule family="ipv4" source address="172.18.60.0/24" port port="3306" protocol="tcp" accept
rule family="ipv4" source address="172.18.68.3" accept

# 查看上述添加各种fw规则后的信息
[root@host log]# firewall-cmd  --list-all
public (default, active)
  interfaces: eth0
  sources: 172.18.60.73/24 172.18.60.0/24
  services: dhcpv6-client ssh
  ports: 5432/tcp 6379/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="172.18.60.0/24" port port="3306" protocol="tcp" accept
	rule family="ipv4" source address="172.18.68.3" accept

firewalld!!!高危操作(紧急模式panic-on)

# 什么是紧急模式? 拒绝所有的数据包,强制关闭所有网络连接(包括当前的ssh),此时只能重启机器解决了
# 查看是否启用紧急模式
firewall-cmd  --query-panic

# 启用紧急模式(!!!慎用)
firewall-cmd --panic-on

# 禁用紧急模式
firewall-cmd --panic-off

firewalld记录日志

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值