首页
wjlink
投稿
视频
直播
壁纸
更多
留言
统计
LINK
Search
1
为你的 WordPress 站点配置 Telegram Instant View
53 阅读
2
重点提示:邮箱购买和调查帐号注册要求
46 阅读
3
Paypal外区账户/国际版绑大陆手机号注册教程
36 阅读
4
宝塔面板绑定域名套上cloudflare – 实现cdn访问拯救你的IP
35 阅读
5
Python 爬取YouTube某个频道下的所有视频信息
30 阅读
技術類
自媒体
調查
问卷调查
美國站
英國站
注册丨登录
Search
标签搜索
wordpress
V2Ray
vps
苹果cms
面板
php
宝塔
ipfs
DD
脚本
语言
上传
判断
Youtube
ip
AI
1
2
3
救砖
Gengre
累计撰写
65
篇文章
累计收到
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日
5 阅读
0 评论
0 点赞