小子咦4
作者:geek玩物
网络安全有一句话“当攻击成本大于收益时,你的系统就是安全的”
对于我们这种普通用户来说,收益甚微。只配使用脚本攻击,也就是说只要提高脚本小子的攻击成本就能够那么我们的内网设备就是相对安全的。
对于我个人而言,我是很不喜欢直接将内网设备直接暴露在公网中的。比如直接暴露端口到公网或者通过frp/nps工具间接的将端口暴露到公网中。这意味着所有人都可以可以访问位于内网中的设备,若是密码强度不够脚本小子就可以暴力破解密码登陆你的内网设备
对此我都是通过诸如像“Zerotier“之类的虚拟局域网工具。只暴露一个端口,用高强度公私钥提高攻击成本来确保相对安全。但是虚拟局域网工具对于家庭成员使用起来过于麻烦,直接网址就能访问的方式对于不懂电脑的家庭成员来说是最优解。那如何保证直接暴露在公网的内网设备安全了?在内网穿透第三篇教程里,通过nginx配置双向ssl来拒绝非授权用户访问内网设备。但是大部分的app都不支持自定义ssl双向认证因此被拒绝访问,只能通过浏览器访问时才能使用双向ssl。不能使用app,假设在内网的nas使用体验直接砍半。
还是那句话:提高攻击成本来抵御攻击。通过这几年云主机的使用经验来说,大部分的暴力破解尝试登陆都是来自国外ip,来自国内的ip几乎没有。因此屏蔽国外ip访问,只允许国内ip访问就能杜绝大部分脚本小子的攻击。
此教程针对性 centos6,centos7,ubuntu系统。
基本原理
通过设置防火墙白名单,仅仅允许白名单内ip入站,来允许我们希望的ip访问服务器。当我们把国内的ip段加载到白名单时就能实现屏蔽国外ip的作用。
安装ipset
#Debian/Ubuntu系统
apt-get -y install ipset
#CentOS系统
yum -y install ipset
新建一个allcn.sh文件,并复制下列内容到其中。服务器切换到root用户,并将allcn.sh文件上传到/root目录,之后允许命令“chmod +x allcn.sh”。如果你用家里的服务器,请在#放行局域网地址下面加入自己的内网地址段。
之后用root权限执行命令“/root/allcn.sh“就能屏蔽国外ip,执行“/root/allcn.sh stop“停止屏蔽国外ip。
#! /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维护更新,大约一月一次更新(也可以用我放在国内的存储的版本,2019-05-18日版)
[ -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'> china_ip.txt
rm -rf china_ip_list.txt
#wget https://www.321dz.com/shell/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_china
case "$release" in
centos6)
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
脚本执行完成后就可以禁止国外ip访问服务器了,我使用一个新加坡的vps访问腾讯云华南区的云服务可以看到没办法访问。
由于对应国家ip段是会发生变化的,所以需要定时更新,所以需要加入定时任务。ip段库是一个月更新一次的,所以我们让脚本一个月执行一次就好了。执行命令“vim /etc/crontab“。按住i键,将下面这行复制到文件的最后一行。按esc键,输入”:wq!“保存退出。执行命令”crontab /etc/crontab“使得计划任务生效。
* * * 1 * root bash /root/allcn.sh
宁查咽4174索尼克音速小子4:第一章黑屏解决方法
隆月洁13047438807 ______ 《索尼克音速小子4:第一章》黑屏的原因有很多种,下面整理了一些常见的黑屏原因,希望能帮助各位玩家解决问题.1、可能是缺少《谷歌市场》和《谷歌服务框架》导致的,这里推荐使用拇指玩开发的《谷歌安装器》解决. 2、更新APK版...
宁查咽4174索尼克音速小子4:第一章安装到SD卡方法
隆月洁13047438807 ______ 通过拇指玩手机客户端,我们可以轻易将下好的《索尼克音速小子4:第一章》安装到存储卡中,方法也很简单,只要您的手机ROOT了便可.在设置里找到安装设置分类,里面有一个安装数据包至存储卡的选项,点击打开即可. 索尼克音速小...
宁查咽4174电击小子第四部好久出来 会不会出来i -
隆月洁13047438807 ______ 时间在14年2月份出的
宁查咽4174索尼克音速小子4:第一章修改金币方法
隆月洁13047438807 ______ 在玩《索尼克音速小子4:第一章》的时候,想必很多玩家因金币不够而导致自己做不了很多事情,在这里小编给各位玩家介绍几款好用的修改器,如:八门神器、葫芦侠、烧饼修改器等修改软件.下载安装好后按照下面的步骤修改就OK了....
宁查咽4174电击小子4几时出 -
隆月洁13047438807 ______ 2014年10月1号出电击小子4预告 2015年4月26号放
宁查咽4174客户端下载的索尼克音速小子4:第一章安装包放在哪了?
隆月洁13047438807 ______ 拇指玩客户端下载的《索尼克音速小子4:第一章》安装包默认放在SD卡的MzwDownloads目录下,您可以在“设置-下载存放目录”中进行修改.索尼克音速小子4:第一章版本:1.0.0发布:2012-01-28大小:108.17M分类:休闲益智语言:英文适用:1.0下载:43100次开发商:世嘉立即查看
宁查咽4174电击小子大电影4是什么 -
隆月洁13047438807 ______ 电击小子4四圣团
宁查咽4174索尼克音速小子4:第一章一直卡在加载界面解决办法!
隆月洁13047438807 ______ 在运行《索尼克音速小子4:第一章》后,一直卡在加载界面这种情况是因为手机的运存太低所致,解决发放也很简单,运行前把后台在运行的一些应用全都关掉即可,如果依然如此可以尝试将画质等一些设置调低便可完美解决! 索尼克音速小...
宁查咽4174索尼克音速小子4:第一章闪退解决方法
隆月洁13047438807 ______ 运行《索尼克音速小子4:第一章》的时候如果遇到闪退,首先,先要确认自己是否安装好了《谷歌市场》和《谷歌服务框架》.如果依然存在闪退现象,很有可能是数据包文件丢失所造成的,这时我们只需重新安装,覆盖原有数据包即可. 这...
宁查咽4174索尼克音速小子4:第一章更新后黑屏、闪退解决方法
隆月洁13047438807 ______ 这种情况一般是《索尼克音速小子4:第一章》数据包的问题,含数据包的游戏更新时,数据包也需要更新,如果你只更新了单独的应用程序而没有下载更新数据包,游戏当然是无法运行的,需要下载含数据包版,并将数据包也同时更新即可....