如何拒绝国外IP/屏蔽国外IP访问服务器?

如何拒绝国外IP/屏蔽国外IP访问服务器?

  • 背景介绍
    • 公网上的服务器更容易受到攻击
  • 解决方案
    • 大多国内公司的服务器都是面向国内用户
  • 实现步骤
    • 整理IP地址段到Ipset
      • 1、下载IP地址段文件
      • 2、将IP地址段转换为Ipset指令
      • 3、Ipset写入地址段数据
    • 在Iptables中调用Ipset的 `china` 链完成拦截国外IP
      • 1、调整或建立Iptables规则
      • 2、持久化Iptables规则

背景介绍

公网上的服务器更容易受到攻击

  • 互联网上有很多扫描器,24小时不间断扫描服务器,然后去尝试获取一定权限,进而控制您的服务器。
  • 实际运维和查看服务器日志中,发现 大多数发起攻击的服务器在国外 ,如荷兰、美国、新加坡、日本等国家。
  • 不论我们购买的是云服务器还是IDC机房托管的服务器,只要我们对外提供了一定的服务,就会暴漏服务端口

解决方案

大多国内公司的服务器都是面向国内用户

能不能禁止国外的IP访问服务器呢?显著提升服务器的安全性,答案是肯定的。

我们首先介绍一些背景知识:

  • 服务器上都是有防火墙工具软件的(Iptables),可以用来过滤和拦截请求
  • Iptables中包含了一个叫Ipset的模块,支持匹配大批量IP地址段,同时兼具良好的性能
  • https://www.ipdeny.com/ 这个网站会定期更新全球分配的IP地址段

接下来我们梳理下禁止国外IP的思路(如下图):

  1. 首先把国内的IP地址段整理到到Ipset
  2. 接着从Iptables中调用Ipset模块判断来源IP是否在国内的IP地址段中
  3. 最后如果来源IP是国内IP地址就放行,否则就将数据包丢弃。

拦截国外IP方案

实现步骤

操作系统环境是CentOS7.6
不同版本Linux指令可能不同
有不明白的地方,可以评论沟通

下面来详细讲解基于Iptables、Ipset、Ipdeny 来屏蔽国外IP访问服务器的具体实现:

整理IP地址段到Ipset

1、下载IP地址段文件

访问网址 http://www.ipdeny.com/ipblocks/data/countries/cn.zone ,另存为国内IP地址段,然后将文件上传到服务器;
也可以直接在服务器上执行如下命令直接下载文件到服务器:

wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone

2、将IP地址段转换为Ipset指令

执行如下脚本,将IP地址段中的记录转换为Ipset指令,保存在 ipset_result.sh 可执行文件中

for i in `cat cn.zone`; do echo "ipset add china $i" >>ipset_result.sh; done
chmod +x ipset_result.sh

3、Ipset写入地址段数据

首先,创建一个名字叫 china 的Ipset的链
然后,执行前面生成的 ipset_result.sh 脚本,为 china 链添加国内地址段

ipset create china hash:net hashsize 10000 maxelem 1000000
sh ipset_result.sh

接着,添加局域网IP地址段,防止局域网IP地址被拦截

ipset add china 10.0.0.0/8
ipset add china 172.16.0.0/12
ipset add china 192.168.0.0/16

我们来检查一下china 链的数据,大概8000多条数据

ipset list china
ipset list china | wc -l

最后,为了性能考虑,Ipset数据保存在内存中。
如果服务器重启,将会导致Ipset中的IP地址段数据失效。
我们需要将数据持久化到 /etc/ipset.conf 这个文件中。

ipset save china > /etc/ipset.conf
ipset restore < /etc/ipset.conf

让服务器重启时,通过脚本在加载 /etc/ipset.conf 中的数据。

chmod +x /etc/rc.d/rc.local
echo "ipset restore < /etc/ipset.conf" >> /etc/rc.d/rc.local

在Iptables中调用Ipset的 china 链完成拦截国外IP

1、调整或建立Iptables规则

Iptables中的指令有从上到下匹配顺序的,我们需要注意拦截指令顺序

假设我们已经有Iptables指令,需要通过 iptables -I 指令插件到现有INPUT链中
注意:需要修改下面指令中的数值,即插入到INPUT链中的第几个位置

iptables -I INPUT 5 -m set ! --match-set china src -j DROP

如果之前没有启用Iptables,可以通过如下脚本清除重建Iptables
注意:不同服务器需要开放的端口和服务不同,请修改和调整如下udp或tcp端口规则

iptables -F  # 清除预设链中规则
iptables -X  # 清除自定义链中规则iptables -A INPUT -i lo -j ACCEPT                                  # 允许来自本机的全部连接
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT   # 允许已建立的连接不中断
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT       # 允许icmp协议,即允许ping服务器
iptables -A INPUT -m set ! --match-set china src -j DROP           # 匹配china链,非国内IP则直接丢弃包iptables -A INPUT -p udp --dport 5060 -j ACCEPT                    # 允许UDP协议的5060端口
iptables -A INPUT -p udp --dport 20000:30000 -j ACCEPT             # 允许UDP协议的20000-30000端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT                      # 允许TCP协议的80端口
iptables -A INPUT -p tcp --dport 443 -j ACCEPT                     # 允许TCP协议的443端口iptables -A INPUT -j DROP                                          # 未匹配以上规则的请求直接丢弃
iptables -A OUTPUT -j ACCEPT                                       # 允许全部出网数据包
iptables -A FORWARD -j DROP                                        # 不允许Iptables的FORWARD转发

2、持久化Iptables规则

让服务器重启时,通过脚本在加载 /etc/sysconfig/iptables 中的数据。

iptables-save > /etc/sysconfig/iptables  # 持久化Iptables规则chmod +x /etc/rc.d/rc.local
echo "/usr/sbin/iptables-restore < /etc/sysconfig/iptables" >> /etc/rc.d/rc.local

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/50155.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

N的阶乘末尾0的个数 (python)

分析 对N的阶乘进行质因子分解&#xff0c;N! ()&#xff0c;由于&#xff0c;所以0的个数只与X和Z有关&#xff0c;每一对2和5相乘可以得到一个10&#xff0c;于是有0的个数等于min(X,Z)&#xff0c;不难看出X大于Z。所以0的个数只与Z有关。 解法 1 要计算Z&#xff0c;最…

2022-2028全球与中国虚拟数字人市场现状及未来发展趋势

辰宇信息咨询市场调研公司最近发布-《2022-2028全球与中国虚拟数字人市场调研报告》 内容摘要 本文重点分析在全球及中国有重要角色的企业,分析这些企业虚拟数字人产品的市场规模、市场份额、市场定位、产品类型以及发展规划等。主要企业包括: 微软 歌力思 克理…

虚拟数字人市场现状研究分析-

辰宇信息咨询市场调研公司最近发布-《2022-2028中国虚拟数字人市场现状研究分析与发展前景预测报告》 内容摘要 本文研究中国市场虚拟数字人现状及未来发展趋势,侧重分析在中国市场扮演重要角色的企业,重点呈现这些企业在中国市场的虚拟数字人收入、市场份额、市场定位、…

2018中国方案商500强榜单

https://mp.weixin.qq.com/s/qOXO9AScoK8M8ez-AxrLCQ 2018中国方案商500强榜单 中国IT生态大会 特大号 7月30日 中国方案商500强&#xff08;VAR500&#xff09;&#xff0c;是由商业伙伴咨询机构推出的每年一度的大型调查评选活动。2018年中国方案商500强&#xff0c;由方案…

虚拟数字人市场现状研究分析报告 -

辰宇信息咨询市场调研公司最近发布-《2022-2028中国虚拟数字人市场现状研究分析与发展前景预测报告 》 内容摘要 本文研究中国市场虚拟数字人现状及未来发展趋势,侧重分析在中国市场扮演重要角色的企业,重点呈现这些企业在中国市场的虚拟数字人收入、市场份额、市场定位、…

需不需要给数字人装上ChatGPT ?多家公司是这样回应的

近年来&#xff0c;随着人工智能的快速发展&#xff0c;数字人与ChatGPT这样的语言模型的结合引起了广泛的关注和讨论。ChatGPT是一种强大的对话生成模型&#xff0c;能够模拟自然语言交流&#xff0c;并在各种领域提供个性化的服务。然而&#xff0c;关于给数字人装上ChatGPT是…

荣耀猎人是鸿蒙,荣耀猎人游戏本发布 | 荣耀推出全场景游戏品牌 “Hunter”

据官网消息&#xff0c;荣耀猎人V700配备了一块 16.1 英寸 1920x1080 分辨率 144Hz 刷新率 100% 的 sRGB 色域的电竞屏&#xff0c;其屏幕对比度高达 1000:1&#xff0c;并拥有 300 尼特亮度。 荣耀猎人 V700 搭载 Intel 十代酷睿 H 系列处理器&#xff0c;可选四核心 i5-10300…

腾讯花18亿获捷成独家授权!影视版权格局再变动

今年年初&#xff0c;国内影视版权大户捷成股份对外宣布&#xff0c;旗下公司与腾讯签订影视授权合同&#xff0c;以18亿的价格将公司总数量不少于6332部影视节目授权于腾讯&#xff0c;授权期达到6年。 此次授权为独家授权&#xff0c;腾讯享有独家分销权。交易之后&#xff0…

因民间借贷财产被冻结,捷成股份巨额债务危机坐实?

对曾经的“广电第一股”北京捷成世纪科技股份有限公司&#xff08;下称捷成股份&#xff0c;股票代码300182.SZ&#xff09;来说&#xff0c;最近可谓祸不单行。 一、从“债务危机”曝光到巨额财产被封&#xff0c;捷成股份成“老赖”&#xff1f; 4月23日&#xff0c;一封来…

“广电第一股”捷成股份再曝一笔巨额债务逾期 法院已受理相关诉讼

2月25日消息 北京捷成世纪科技股份有限公司&#xff08;简称捷成股份(300182,股吧)&#xff09;又一笔巨额债务逾期事件浮出水面。据知情人士爆料&#xff0c;捷成股份拖欠北京某教育公司数千万元借款也已严重逾期&#xff0c;该公司已经启动司法程序&#xff0c;而法院也已受理…

2020年复旦大学计算机学院夏令营面经

2020年复旦大学计算机学院夏令营面经 先上图 前言 前面的机试和英语&#xff0c;都是一个参考作用&#xff0c;当时选方向时的竞争情况&#xff0c;基本是6个进一个&#xff0c;难度和北大差不多 英文口语面试 是根据你的自我介绍提问的&#xff0c;比如我介绍了我在北京…

2019复旦大学计算机分数线,2019复旦大学录取分数线(在各省市录取数据)

复旦大学校名取自《尚书大传》之“日月光华&#xff0c;旦复旦兮”&#xff0c;始创于1905年&#xff0c;原名复旦公学&#xff0c;1917年定名为复旦大学&#xff0c;是中国人自主创办的第一所高等院校。2000年&#xff0c;复旦大学与上海医科大学合并。目前&#xff0c;学校拥…

2023复旦大学计算机考研经验分享

最新数据见&#xff1a;北京航空航天大学经验分享历年真题_N诺计算机考研 北京航空航天大学计算机学院官网 北京航空航天大学软件学院官网 北京航空航天大学网络空间安全学院官网 北京航空航天大学&#xff08;Beihang University&#xff09;&#xff0c;简称北航&#x…

上海交通大学2023计算机考研上岸经验贴

个人情况&#xff1a; 交大本科计算机&#xff0c;无科研经历&#xff0c;无比赛奖项&#xff0c;在你交计算机属于快倒数的水平&#xff0c;21年6月裸考六级510&#xff0c;报的学硕&#xff0c;最后初试第四总分第四拟录取&#xff08;交大是11408&#xff0c;政治76、英语8…

如何考上复旦大学研究生

考研结果出来后到现在&#xff0c;一直在思索着怎么给大家实用的考研经验&#xff0c;回顾了我这一年的考研历程&#xff0c;我觉得最实用的经验莫过于四个字&#xff1a; 认真学习 作为通用型的考研经验&#xff0c;相信我的这篇文章还是或多或少会对大家有些帮助的。个人觉得…

复旦大学计算机机试

复旦大学计算机机试 笔者最近打算刷一下各大高校的机试题&#xff0c;暂时不详细分类&#xff08;可能是夏令营&#xff0c;预推免&#xff0c;也可能是考研机试。很有可能不全&#xff09; 就按照学校分类一下&#xff1a; 先从最简单的复旦刷起。 题目来源是一个名叫N诺的…

复旦大学研究生机试(2019)

1. 计算机学院 今年的题目可以说是挺难的&#xff0c;第一题虽然像是送分题&#xff0c;实际上也不是很简单。第二题第三题是动态规划问题&#xff0c;而且复旦据说会卡大数&#xff0c;今年150人考生据说只有一个AC&#xff0c;大部分人只做出第一题&#xff0c;个别零分。 …

【保研夏令营经验贴】2021复旦大学计算机科学技术学院

本人基本情况如下 学校&#xff1a;211 专业&#xff1a;计算机科学与技术 成绩排名&#xff1a;3/137 英语水平&#xff1a;四六级飘过 在校期间参加过一项省级创新创业项目&#xff0c;和区块链有关&#xff0c;同时也参加过数学竞赛、英语竞赛、数学建模&#xff0c;在…

复旦大学2021年计算机学院机试题解

写在前面&#xff1a;本文所收录真题解答都是本人自己所写&#xff0c;由于本人水平所限&#xff0c;部分题解可能存在错误&#xff0c;如存在错误&#xff0c;望各位指出。 更新&#xff1a;CSDN不会再更新&#xff0c;移步Pykt的博客 2021年真题 第一题 题目描述&#xff…

复旦大学2021机试

2021年真题 第一题 题目描述&#xff1a;给定一颗二叉树&#xff0c;树的每个节点的值为一个正整数。如果从根节点到节点 N 的路径上不存在比节点 N 的值大的节点&#xff0c;那么节点 N 被认为是树上的关键节点。求树上所有的关键节点的个数。请写出程序&#xff0c;并解释解…