IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> iptables结合ipset禁止国外IP进行访问 -> 正文阅读

[网络协议]iptables结合ipset禁止国外IP进行访问

0x01 ipset

可以使用iptables对访问地址进行一定的限制,但是当受限地址数量过多时,维护管理起来就不太方便,而且数量过多的iptables条目也会影响设备的性能。此时就可以使用ipset工具来解决此种问题。

ipset理解起来比较容易,理解为地址组就好,具有相同作用的地址段存放在一个集合里面,当使用策略时,策略会对集合里面的所有地址段都生效。提高了策略的部署效率和减少了维护管理的工作量。

这里以centos7为例,要是没有ipset工具的话通过yum安装就可以yum -y install ipset,安装好了后,先创建一个空的set

ipset create testip hash:net #这里的testip是ipset的名字

除了hashipset 还可以用 bitmap 或者 list 方式存储地址,可以按需求来进行设置
在这里插入图片描述
如果是等同大小的段可以使用bitmap,不同大小段一般使用hash较多,至于list只是用一个列表来进行存放信息。

可以使用list来进行查看ipset情况

root@debian-pve:~# ipset list testip 
Name: testip
Type: hash:net
Revision: 7
Header: family inet hashsize 1024 maxelem 65536 bucketsize 12 initval 0xe08d3b99
#这里的hashsize当存储满时会自动翻倍增长,下一次就是2048,再下次就是4096
#maxelem可以改大一些,代表着最大存储的条目。
Size in memory: 456
References: 0
Number of entries: 0
Members:

在创建完ipset后,可以通过adddeltest等指令进行操作

root@debian-pve:~# ipset add testip 10.1.1.0/24

在这里插入图片描述
还可以进行测试地址段是否已经加入到ipset
在这里插入图片描述
最后需要注意的是ipsetiptables一样,需要单独保存,配置重启后会丢失。

ipset save testip > testip.ipset    #保存文件
ipset restore < testip.ipset    #恢复文件

0x02 iptables结合ipset禁止国外IP进行访问

先下载国内IP地址的网段量,可以在https://www.ipdeny.com/进行查找所需要的数据,接着将这些数据加入到ipset中,这里使用脚本简单处理下

[root@localhost ~]# cat ipset_cn.sh 
wget https://www.ipdeny.com/ipblocks/data/countries/cn.zone
ipset create cnip hash:net maxelem 1000000
for i in `cat cn.zone`
do
ipset add cnip $i
done

#可以看到此时大概有8000+条的IP段
[root@localhost ~]#  ipset list cnip |wc -l
8647

接着根据业务情况,配置合理的iptables条目,这里是禁止所有地址访问,只允许国内IP访问来实现效果。

iptables -I INPUT -m set --match-set cnip src -p tcp --dport 80 -j ACCEPT

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:42:15  更:2022-12-25 11:43:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 10:15:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码