前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >firewall zone_firewalld关闭端口

firewall zone_firewalld关闭端口

作者头像
全栈程序员站长
发布2022-11-08 15:01:27
5210
发布2022-11-08 15:01:27
举报
文章被收录于专栏:全栈程序员必看

目录

自定义zone

自定义ipset

案例一:centos8源地址访问限制

案例二:(留个小尾巴,后面会接续介绍firewalld预定义zone的作用)

开篇先讲一下写本文的由来:了解/etc/hosts.allow和/etc/hosts.deny的同学肯定知道,这是用来做源地址访问控制的两个配置文件。实质上,是由TCP_Wrappers实现的安全访问控制;凡是包含有libwrap.so库文件的程序就会受TCP_Wrappers的安全控制。所以,这也是它的局限性。更甚,CentOS8已经舍弃了TCP_Wrappers(tcp_wrappers-libs包),即便我们手动进行安装,也不会生效;原因就是CentOS8自带的ssh等软件不再集成libwrap.so库。 那么,没有了TCP_Wrappers怎么做源地址访问控制呢?答案是通过系统自带防火墙,无论iptables还是firewalld都能做到(见案例一)。当然,一些软件本身也自带了访问控制功能(比如:ssh的Match指令) 注:TCP_Wrappers是一个工作在网络传输层的安全工具,它对有状态连接的特定服务进行安全检测并实现访问控制。

自定义zone

代码语言:javascript
复制
# 添加/删除zone
firewall-cmd --new-zone=mysshzone --permanent
firewall-cmd --delete-zone=mysshzone --permanent
# 查询所有zone列表
firewall-cmd --get-zones 
block dmz drop external home internal mysshzone public trusted work
# 显示生效的zone
firewall-cmd --get-active-zone
mysshzone
  sources: 192.168.186.103 192.168.10.182 ipset:4mysshzone
public
  interfaces: ens192
trusted
  sources: 192.168.10.124
## 查看zone信息
firewall-cmd --info-zone=mysshzone
### 上面命令效果同:
firewall-cmd --zone=mysshzone --list-all
# 查看所有zone的详细配置
firewall-cmd --list-all-zones
## zone添加/删除源地址
firewall-cmd --permanent --zone=mysshzone --add-source=192.168.186.103
firewall-cmd --permanent --zone=mysshzone --remove-source=192.168.186.103
## zone绑定/解绑ipset
firewall-cmd --permanent --zone=mysshzone --add-source=ipset:4mysshzone
firewall-cmd --permanent --zone=mysshzone --remove-source=ipset:4mysshzone

自定义ipset

代码语言:javascript
复制
## 查看ipset列表
firewall-cmd --permanent --get-ipsets
4mysshzone
## 查看ipset详细信息
firewall-cmd --permanent --info-ipset=4mysshzone
4mysshzone
  type: hash:ip
  options: 
  entries: 192.168.186.125
## 查看ipset配置文件存放路径
firewall-cmd --permanent --path-ipset=4mysshzone
/etc/firewalld/ipsets/4mysshzone.xml
### 查看ipset XML文件
cat /etc/firewalld/ipsets/4mysshzone.xml                                  
<?xml version="1.0" encoding="utf-8"?>
<ipset type="hash:ip">
  <entry>192.168.186.125</entry>
</ipset>
## 删除ipset
firewall-cmd --delete-ipset=4mysshzone --permanent
## 创建ipset
firewall-cmd --new-ipset=4mysshzone --type=hash:ip --permanent
## ipset添加/删除entry
firewall-cmd --permanent --ipset=4mysshzone --add-entry=192.168.186.125 
firewall-cmd --permanent --ipset=4mysshzone --remove-entry=192.168.186.125
firewall-cmd --permanent --ipset=4mysshzone --add-entry=192.168.186.1/24  #type: hash:ip可以加网段
## 获取所有ipset的entry
firewall-cmd --permanent --ipset=4mysshzone --get-entries
192.168.186.125
192.168.186.1/24
## 验证某IP是否在该ipset的entry中,并不会匹配网段范围
firewall-cmd --permanent --ipset=4mysshzone --query-entry=192.168.186.125
yes
### 不能匹配到192.168.186.1/24
firewall-cmd --permanent --ipset=4mysshzone --query-entry=192.168.186.12
no

## 查看所有ipset类型
firewall-cmd --get-ipset-types
hash:ip hash:ip,mark hash:ip,port hash:ip,port,ip hash:ip,port,net hash:mac hash:net hash:net,iface hash:net,net hash:net,port hash:net,port,net

案例一:centos8源地址访问限制

代码语言:javascript
复制
# 安全加固
firewall-cmd --new-zone=mysshzone --permanent
firewall-cmd --delete-zone=mysshzone --permanent
## 语法: --add-source=source[/mask]|MAC|ipset:ipset
firewall-cmd --permanent --zone=mysshzone --add-source=192.168.186.103
firewall-cmd --permanent --zone=mysshzone --add-port=22/tcp
firewall-cmd --reload

案例二:(留个小尾巴,后面会接续介绍firewalld预定义zone的作用)

代码语言:javascript
复制
# 避免管理客户端被关在防火墙之外,设置白名单
firewall-cmd --permanent --zone=trusted --add-source=192.168.10.124
firewall-cmd --reload

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185261.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月6日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自定义zone
  • 自定义ipset
  • 案例一:centos8源地址访问限制
  • 案例二:(留个小尾巴,后面会接续介绍firewalld预定义zone的作用)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档