Firewalld的了解及应用

Firewalld基础
firewalld是centos7的一大特性,最大的好处有两个: 支持动态更新,不用重启服务;另外firewalld增加了"zone"概念
firewalld 将所有incoming 流量划分成zone,每个zone都有自己的一套规则
firewalld 在判断incoming 流量使用那一个zone,使用以下规则
    1.如果incoming packets 的源地址与zone 的某一个源规则相匹配,则使用该区域
    2.如果incoming packets 的接口与zone的filter设置相匹配,则使用该区域
    3.否则使用 default zone. 如果没有配置, default zone 为public
trusted    // 允许所有incoming/outgoing taiffic(允许多有进站和出站的流量)
home      //  除非与outgoing taiffic 相关,或与ssh,mdns,ipp-client,samba-client,dhcpv6-client这些预定义服务匹配,否则拒绝incoming taiffic
internal   // 开始时与home zone相同
work      // 除非与outgoing taiffic 相关,或与ssh,ipp-client,dhcpv6-client 这些预定义服务匹配,否则拒绝incoming taiffic
public     //除非与outgoing taiffic 相关,或与ssh,dhcpv6-client这些预定义服务匹配否则拒绝incoming taiffic(新添加的网络接口默认为此zone)


external    //除非与outgoing taiffic 相关,或与ssh预定义服务匹配,否则拒绝incoming taiffic .将通过此zone转发的ipv4 outgoing taiffic 的源地址伪装成outgoing 网络接口的ipv4地址
dmz        //除非与ouggoing taiffic 相关,或与ssh 预定义服务匹配,否则拒绝incoming taiffic
block      //除非与outgoing taiffic 相关,否则拒绝所有incoming taiffic
drop       //除非与outgoing taiffic相关,否则丢弃所有incoming taiffic(不产生包含ICMP错误的响应)


Firewalld配置
使用三种方式来管理firewalld
    1.使用命令行工具 firewall-cmd
    2.使用图形工具 firewall-config
    3.使用 /etc/firewalld/中的配置文件(不建议直接编辑配置文件,但使用配置管理工具时,配置配置会很有用)
    
使用 firewall-cmd ,几乎所有命令都对当前状态生效(除非指定 -permanent),如果没有使用 --zone, 使用默认zone


配置防火墙,通常会是使用  --permanent 配置所有更改,然后使用 firewall-cmd --reload 激活这些更改, 
测试可能有危险的新规则时,可省略 --permanent 并添加 --timeout=添加时间  一定时间后会自动删除某个规则,防止意外锁定某个系统




firewall-cmd --get-default-zone     //查看当前默认zone
列出所有可用区域
firewall-cmd --get-zones
work drop internal external trust home dmz public block
 
 firewall-cmd --set-default-zone=work    //设置默认zone 
 success
 
 列出所有预定义服务
 firewall-cmd --get-services
 列出当前正在使用的zone以及接口的信息
 firewall-cmd --get-active-zones
 public
 interfaces:eth0
 
 列出zone下所有已配置interface,source,service,port
 firewall-cmd --list-all    当前所有zone
 firewall-cmd --list-all-zones
 firewall-cmd --list-all --zone=work    
public (active)
    target: default
    icmp-block-inversion: no
    interfaces: eth0
    sources:
    services: dhcpv6-client ssh
    ports:
    protocols:
    masquerade: no
    forward-ports:
    sourceports:
    icmp-blocks:
    rich rules:
 
 firewall-cmd --permanent --add-service=http
 firewall-cmd --permanent --list-all
 firewall-cmd --list-all
 firewall-cmd --reload
 
 firewall-cmd --add-port=3000/tcp
 firewall-cmd --add-source=192.168.251.0/24
 firewall-cmd --add-protocol=tcp
 firewall-cmd --remove-protocol=tcp
 
 firewalld富规则
 man 5 firewall.richlanguage
 firewalld 的rich rule 提供了一种表达性语言,通过这种语言可以表达firewalld基本语法中为涵盖的自定义防火墙规则。
 例如:仅允许某个特定ip(而非通过某个zone路由的所有ip地址)连接到服务
 rule
    source
    destination
    service|port|protocol|icmp-block|masquerade|forward-port|source-port
    log
    audit
    accept|reject|drop|mark
 
 firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.251.105 port port=8080 prptocol=tcp accept'
 firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect routeradvertisement router-solicitation source-quench time-exceeded timestamp-reply timestamprequest


firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.251.105 icmp-block name="echo-request"'
firewall-cmd --list-rich-rules


 Allow all IPv4 traffic from host 192.168.0.14.
 
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.0.14 accept'
Deny IPv4 traffic over TCP from host 192.168.1.10 to port 22.


sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject'
Allow IPv4 traffic over TCP from host 10.1.0.3 to port 80, and forward it locally to port
6532.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=10.1.0.3 forward-port port=80 protocol=tcp to-port=6532'
Forward all IPv4 traffic on port 80 to port 8080 on host 172.31.4.2 (masquerade should beactive on the zone).
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=172.31.4.2'
 
 firewalld 伪装和端口转发
 
 vlnx251106 vlnx251105 vlnx251104
192.168.251.106 192.168.251.105 172.17.1.104 172.16.1.104
client gateway internet
server
ip route add default via 192.168.251.105
echo 1 > /proc/sys/net/ipv4/ip_forward
ip route add default via 172.16.1.105firewall-cmd --add-masquerade
or
firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.251.0/24 masquerade'
 
 vlnx251106 vlnx251105 vlnx251104
192.168.251.106 192.168.251.105 172.17.1.104 172.16.1.104
internal webserver gateway client


firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.251.106
firewall-cmd --add-rich-rule='rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=192.168.251.106
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值