个人网站如何防止黑客攻击

个人网站如何防止黑客攻击

wordpress搭建个人网站越来越容易,可能在大部分人的眼里觉得我的网站反正也没有多少人访问,也没有人闲着没事来黑我的服务器。
其实不然,那些尝试暴力破解你的网站的那些黑客,其它都不是手动在操作的,这样多累啊。一般都是自己写的程序或者脚本自动扫描网络中可破解的主机,尝试登录你的服务器。

命令lastb可以帮助你查看有多少次尝试登录你的服务器,即使我改了ssh的端口号,依旧挡不住黑客想黑你的心。

案例

一位没有经验的同学,在创建数据库的时候,把用户授权给了%,这想法于把数据库就暴露在公网了啊,这是很危险
在这里插入图片描述
结果,就被黑客清了库,留言表示如果还想要你的数据,可能支付0.08比特币到某某钱包。0.08比特币,这可是4500RMB啊,抢劫吧。当然我们的同学数据库刚建,什么东西都没,清就清了呗。
在这里插入图片描述

但是还是告诉我们要做好安全措施,否则,真正丢失了重要数据的话,后果堪忧。下面我说说我建站以来所做的一些安全措施。

1. 数据库安全加固

数据库,如果你的设置成下面这样,除非你的服务器被黑了,否则你的数据库就非常安全了。
在这里插入图片描述

  1. 跑下mysql自带的初始化安全脚本
# mariadb
mysqld_safe
# mysql
mysql_secure_installation
  1. 在授权的时候,主机不要对公网发布
    示例:
grant all on *.* to dbuser@'localhost' identified by 'A1b2C3d4@q1w2e3r4';

2. 主机安全加固

  1. ssh登录密码
    最主要的就是ssh,ssh登录的密码要足够长并且复杂。
    b5;Tyvl/ep;M5FA3p0k

  2. ssh端口号
    默认的ssh端口为22,修改默认的端口号加强安全
    注意在修改之前,要先保证防火墙开放这个端口,免得22端口关了,修改后的端口被防火墙拦住了。或者同时保留22端口,重启服务后通过修改后的端口登录后再把22端口删除了,再重启服务器完成修改端口。

# vim /etc/ssh/sshd_config
Port 22
Port 2888

防火墙开放端口

iptables -I INPUT -p tcp --dport 2888 -j ACCEPT

然后重启服务

systemctl restart sshd

(可选)禁止root用户远程SSH登录

# vim /etc/ssh/sshd_config
将  PermitRootLogin yes
改为 PermitRootLogin no

3. 防火墙安全加固

防火墙一定不要关。防火墙一定不要关。防火墙一定不要关。

改了ssh端口号是阻止不了黑客想暴力破解你root密码的心,那么我们就要用防火墙来拦住那些想要破解你root密码的那些ip了。

先讲讲主要的思路,后面放出我的配置
思路:通过lastb命令查看所有尝试登录失败的ip,提取ip计数,当达到多少数目时,通过iptables进行drop掉。

我是这么做的:

  1. 准备脚本
#!/bin/bash
# ipdrop version 2
# last modify: 2019年9月30日
tmpfile=/tmp/try_tmps.txt
trytimes=3

lastb >> $tmpfile
sed -i "/^$/d" $tmpfile
sed -i "/btmp begins/d" $tmpfile
echo "" > /var/log/btmp

cat $tmpfile | awk '{print $3}' | sort | uniq -c | sort -n > /tmp/try_tmp.txt

lines=`cat /tmp/try_tmp.txt|wc -l`
for i in `seq $lines`
do
trys=`cat /tmp/try_tmp.txt|sed -n "${i}p"|awk '{print $1}'`
try_ip=`cat /tmp/try_tmp.txt|sed -n "${i}p"|awk '{print $2}'`
    if [ $trys -gt $trytimes ] ; then
        iptables -A INPUT -s $try_ip -j DROP
        sed -i "/${try_ip}/d" $tmpfile
        echo "`date +%F`  IP: $try_ip 被列入黑名单" >> /root/iptables.log
    fi
done
  1. 计划任务
crontab -e

追加

* * * * * /usr/bin/bash /root/ipdrop2.sh
* * * * 1 /usr/bin/rm -f /tmp/try_*

定时删除tmp临时目录是为了在有时候你也会输错密码,防止时间长了,你试错的次数也达到次数而被防火墙drop了。

4. wordpress防暴力破解

默认情况下,wordpress的登录地址为:http://你的域名/wp-login.php
这也是黑客常常用来暴力破解的方法,相对来说,wordpress安装的时候会让你输入帐号,只要你不用那些admin,root等的简单的帐号,一般人还猜不到帐号,就算猜到了帐号,还有密码呢,但有时候还真会就巧了,给黑蒙对了。那我们就改下登录地址,让黑客找不到登录地址。加一重保护。

当然这种方法只适合个人站长,如果是多用户的,允许别人注册登录的,就不要这么做了。

怎么做

  1. 查看你的wordpress主目录,如我的存放在/data/wordpress
    在这里插入图片描述

  2. 找到wp-login.php这个文件,改名

mv wp-login.php xxxxxx.php

xxx随便你改

  1. 打开xxxxxx.php对文件内容修改,把文件内容原来的wp-login.php修改成xxxxxx.php
sed -i.bak 's/wp-login.php/xxxxxx.php/' xxxxxx.php

这样就可以了,顺便把wordpress的登录功能关闭了,保证你网站没有可以登录后台的地方。

登录时访问:http://你的域名/xxxxxx.php
后台访问地址:https://你的域名/wp-admin

5. 备份

这点也是挺重要的,如果以后想换个云服务商,这些备份就可以快速帮你迁移
wordpress备份的插件有很多:
如:BackWPupUpdraftPlusBackUpWordPressDuplicator

也可以参考下这篇博客:7个最佳WordPress备份插件优缺点比较

另外还有一篇备份到百度云盘的教程:wordpress备份到百度云盘

发布了254 篇原创文章 · 获赞 346 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_42758707/article/details/101792503