首页
wjlink
投稿
视频
直播
壁纸
更多
留言
统计
LINK
Search
1
宝塔面板绑定域名套上cloudflare – 实现cdn访问拯救你的IP
110 阅读
2
Python 爬取YouTube某个频道下的所有视频信息
110 阅读
3
为你的 WordPress 站点配置 Telegram Instant View
63 阅读
4
苹果CMS(MACCMS)如何在标题中随机插入关键词
60 阅读
5
windows 使用 FFmpeg 按大小或时间来批量分割视频
59 阅读
技術類
自媒体
調查
问卷调查
美國站
英國站
注册丨登录
Search
标签搜索
wordpress
V2Ray
vps
苹果cms
面板
php
宝塔
ipfs
DD
脚本
语言
上传
判断
Youtube
cdn
ip
AI
HTML
1
2
Gengre
累计撰写
67
篇文章
累计收到
0
条评论
今日撰写
0
篇文章
️
首页
分类
技術類
自媒体
調查
问卷调查
美國站
英國站
页面
wjlink
投稿
视频
直播
壁纸
留言
统计
LINK
登录丨注册
搜索到
1
篇与
的结果
2023-10-21
Linux脚本iptables屏蔽指定国家或海外IP恶意访问网站的详细方法
前言:对于网站站长来说,经常遇到海外ip恶意抓取或恶意CC攻击的情况,对于这种问题,很是头痛,之前本站也有一篇教程介绍在Linux系统下使用SH脚本如何屏蔽海外ip的详细方法,虽然可以屏蔽,但功能不强大,本次在网上找到了一篇非常使用的教程,可以屏蔽指定国家的ip访问服务器,现在转载过来,希望对大家有帮助本教程相关阅读:1、Linux系统屏蔽国外(海外)IP解决被CC攻击的方法:https://blog.tag.gg/showinfo-3-36155-0.html2、被CC攻击了怎么办?Linux系统使用shell脚本自动屏蔽简单解决CC攻击方法:https://blog.tag.gg/showinfo-3-36156-0.html 功能:屏蔽指定国家地区的IP访问方法一:使用大神的开源脚本,屏蔽指定国家地区的IP访问执行如下命令下载脚本并执行 wget https://blog.tag.gg/soft/block-ips.shsh block-ips.sh 执行效果如图封禁ip时会要求你输入国家代码,国家代码以及国家对应的ip段可查看:点击进入。记住所填参数均为小写字母。比如JAPAN (JP),我们就输入jp这个参数 方法二:使用IPIP的数据库进行流量屏蔽(推荐,目前已支持centos6和7还有ubuntu系统)1、创建一个shell脚本文件例如block_ip.sh,并写入如下代码保存 #!/bin/bash#判断是否具有root权限root_need() { if [[ $EUID -ne 0 ]]; then echo “Error:This script must be run as root!” 1>&2 exit 1 fi}#检查系统分支及版本(主要是:分支->>版本>>决定命令格式)check_release() { if uname -a | grep el7 ; then release=”centos7″ elif uname -a | grep el6 ; then release=”centos6″ yum install ipset -y elif cat /etc/issue |grep -i ubuntu ; then release=”ubuntu” apt install ipset -y fi}#安装必要的软件(wget),并下载中国IP网段文件(最后将局域网地址也放进去)get_china_ip() { #安装必要的软件(wget) rpm –help >/dev/null 2>&1 && rpm -qa |grep wget >/dev/null 2>&1 ||yum install -y wget ipset >/dev/null 2>&1 dpkg –help >/dev/null 2>&1 && dpkg -l |grep wget >/dev/null 2>&1 ||apt-get install wget ipset -y >/dev/null 2>&1 #该文件由IPIP维护更新,大约一月一次更新(也可以用我放在国内的存储的版本,2018-9-8日版) [ -f china_ip_list.txt ] && mv china_ip_list.txt china_ip_list.txt.old wget https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt cat china_ip_list.txt |grep ‘js-file-line”>’ |awk -F’js-file-line”>’ ‘{print $2}’ |awk -F'< ‘ ‘{print $1}’ >> china_ip.txt rm -rf china_ip_list.txt #wget https://qiniu.wsfnk.com/china_ip.txt #放行局域网地址 echo “192.168.0.0/18” >> china_ip.txt echo “10.0.0.0/8” >> china_ip.txt echo “172.16.0.0/12” >> china_ip.txt}#只允许国内IP访问ipset_only_china() { echo “ipset create whitelist-china hash:net hashsize 10000 maxelem 1000000” > /etc/ip-black.sh for i in $( cat china_ip.txt ) do echo “ipset add whitelist-china $i” >> /etc/ip-black.sh done echo “iptables -I INPUT -m set –match-set whitelist-china src -j ACCEPT” >> /etc/ip-black.sh #拒绝非国内和内网地址发起的tcp连接请求(tcp syn 包)(注意,只是屏蔽了入向的tcp syn包,该主机主动访问国外资源不用影响) echo “iptables -A INPUT -p tcp –syn -m connlimit –connlimit-above 0 -j DROP” >> /etc/ip-black.sh #拒绝非国内和内网发起的ping探测(不影响本机ping外部主机) echo “iptables -A INPUT -p icmp -m icmp –icmp-type 8 -j DROP” >> /etc/ip-black.sh #echo “iptables -A INPUT -j DROP” >> /etc/ip-black.sh rm -rf china_ip.txt}run_setup() { chmod +x /etc/rc.local sh /etc/ip-black.sh rm -rf /etc/ip-black.sh #下面这句主要是兼容centos6不能使用”-f”参数 ipset save whitelist-china -f /etc/ipset.conf || ipset save whitelist-china > /etc/ipset.conf [ $release = centos7 ] && echo “ipset restore -f /etc/ipset.conf” >> /etc/rc.local [ $release = centos6 ] && echo “ipset restore < /etc/ipset.conf” >> /etc/rc.local echo “iptables -I INPUT -m set –match-set whitelist-china src -j ACCEPT” >> /etc/rc.local echo “iptables -A INPUT -p tcp –syn -m connlimit –connlimit-above 0 -j DROP” >> /etc/rc.local echo “iptables -A INPUT -p icmp -m icmp –icmp-type 8 -j DROP” >> /etc/rc.local #echo “iptables -A INPUT -j DROP” >> /etc/rc.local}main() { check_release get_china_ip ipset_only_chinacase “$release” incentos6) run_setup ;;centos7) chmod +x /etc/rc.d/rc.local run_setup ;;ubuntu) sed -i ‘/exit 0/d’ /etc/rc.local run_setup echo “exit 0” >> /etc/rc.local ;;esac}main 2、输入命令 block_ip.sh 执行脚本即可。希望对大家有帮助
2023年10月21日
9 阅读
0 评论
0 点赞