CentOS Firewalld管理

基本

firewall-cmd --state           # 查看状态
firewall-cmd --list-all        # 查看防火墙策略(只显示/etc/firewalld/zones/public.xml中防火墙策略)
firewall-cmd --list-all-zones  # 查看所有策略(即显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --reload          # 重载配置文件

关闭

systemctl stop firewalld.service      # 停止firewall
systemctl disable firewalld.service   # 禁止firewall开机启动

基本使用

systemctl start firewalld # 启动
systemctl status firewalld # 查看状态
systemctl stop firewalld # 关闭

自启动

systemctl enable firewalld # 允许开机自启
systemctl disable firewalld # 禁止开机自启
systemctl is-enabled firewalld # 查看是否开机自启

配置

# 查看版本
firewall-cmd --version

# 查看帮助
firewall-cmd --help

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

# 查看区域信息
firewall-cmd --get-active-zones

# 查看指定接口所属区域
firewall-cmd --get-zone-of-interface=eth0

# 查看所有服务
firewall-cmd --get-services

# 添加开放端口
firewall-cmd --zone=public --add-port=[port]/tcp --permanent

# 查看端口
firewall-cmd --zone= public --query-port=[port]/tcp

# 添加端口段
firewall-cmd --zone=public --add-port=[start]-[end]/tcp --permanent

# 添加端口+允许访问的IP
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='[IP CIDR]' port protocol='tcp' port='[port]' accept"

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

# 删除端口+允许访问的IP
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family='ipv4' source address='[IP CIDR]' port protocol='tcp' port='[port]' accept"

# 屏蔽IP(reject)
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=[IP] reject"

# 屏蔽IP(drop)
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address='[IP CIDR]'  drop"

# 查看屏蔽的IP
firewall-cmd --list-rich-rules

warning 警告
在完成规则设置后需进行重载才能生效

firewall-cmd --reload

DROP和REJECT区别

  1. DROP动作只是简单的直接丢弃数据,并不反馈任何回应。需要Client等待超时,Client容易发现自己被防火墙所阻挡
  2. REJECT动作则会更为礼貌的返回一个拒绝(终止)数据包(TCP FINUDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作。连接马上断开,Client会认为访问的主机不存在。

REJECT在IPTABLES里面有一些返回参数,参数如下:ICMP port-unreachableICMP echo-reply 或是 tcp-reset(这个封包会要求对方关闭联机),进行完此处理动作后,将不再比对其它规则,直接中断过滤程序

至于使用DROP还是REJECT更合适一直未有定论,因为的确二者都有适用的场合

REJECT是一种更符合规范的处理方式,并且在可控的网络环境中,更易于诊断和调试网络/防火墙所产生的问题

而DROP则提供了更高的防火墙安全性和稍许的效率提高,但是由于DROP不很规范(不很符合TCP连接规范)的处理方式,可能会对你的网络造成一些不可预期或难以诊断的问题

因为DROP虽然单方面的中断了连接,但是并不返回任何拒绝信息,因此连接客户端将被动的等到tcp session超时才能判断连接是否成功,这样早企业内部网络中会有一些问题,例如某些客户端程序或应用需要IDENT协议支持,如果防火墙未经通知的应用了DROP规则的话,所有的同类连接都会失败,并且由于超时时间,将导致难以判断是由于防火墙引起的问题还是网络设备/线路 故障。

一点个人经验:在部署防火墙时,如果是面向企业内部(或部分可信任网络),那么最好使用更绅士REJECT方法,对于需要经常变更或调试规则的网络也是如此;而对于面向危险的 Internet / Extranet 的防火墙,则有必要使用更为粗暴但是安全的DROP方法,可以在一定程度上延缓恶意攻击的进度和难度

CentOS Firewalld管理 的发布基于协议 AHdark Blog License。如欲对此文章内容此文章转载、修改或行使任何超出预览和分享性质的行为,请参考此协议。

评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇