firewalld的防火墙管理

2016-01-28 | 阅读

使用firewalld

#启动:
systemctl start  firewalld
#查看状态
systemctl status firewalld 或者 firewall-cmd --state
#停止:
systemctl disable firewalld
#禁用:
systemctl stop firewalld

firewalld根据区域zone来管理.默认有以下区域:

  • drop : 丢弃,所有流入包都被丢弃.只允许流出.
  • block : 所有进入的网络连接都会被拒绝,但是能够接收 icmp 协议包.
  • public : 公开的部分,但是只允许选中的服务连入.
  • external : 用在路由器等启用伪装的外部网络。与公开功能相似.
  • dmz : 隔离区
  • work : 工作区
  • home : 家庭组
  • internal : 受信任的,允许所有网络连接.

这些区域内用于同一管理接口.控制命令:

firewall-cmd --state #状态
firewall-cmd --reload #重新加载防火墙
firewall-cmd --get-zones # 获取支持的区域列表
firewall-cmd --get-services #获取所有支持的服务
firewall-cmd --list-all-zones #列出所有启动的区域详细.当前区域内的端口,和支持的服务等信息.
firewall-cmd --get-default-zone #获取默认区域设置
firewall-cmd --set-default-zone=<zone>  #设置默认区域

然后针对指定区域的操作:

firewall-cmd [--zone=<zone>] --list-all #输出指定区域的详细信息,不输入zone则显示默认区域信息
firewall-cmd --zone=dmz --add-port=8080/tcp #加入一个端口到区域 . 协议有tcp和udp两种. 永久生效再加上 --permanent 然后reload防火墙
 firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol> #删除端口

端口转发 :

firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

可以转发到当前主机的指定端口,也可以转发到其他主机,目标端口可以是单个端口,也可以是端口范围.例如下:

--remove-forward-port # 删除端口转发
--query-forward-port # 查询端口转发

第一个选项使用 --permanent就可以永久改变状态.

针对特定IP开放端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source 		address="115.28.192.172" port protocol="tcp" port="7080" accept"

删除该端口时 :

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source 		address="115.28.192.172" port protocol="tcp" port="7080" accept"