给我的服务器数据库加固防线

    技术2025-05-20  90

    ​最近徐老狗买的腾讯云服务器总是被黑,数据库惨遭攻击,今天他终于忍无可忍,开始加固服务器。

    一、修改ssh默认端口:

    进入服务器执行

    vim /etc/ssh/sshd_config

    先把port 22的注释解开,在下面添加一个端口。这是防止万一你添加的端口不能用,22又被注释了,你就连不上服务器了。我这里添加的端口是56580,保存退出。

    接着使之生效:

    service sshd restart

    如果你服务器开了防火墙,那么需要开启端口56580。

    firewall-cmd --zone=public --add-port=56580/tcp --permanent

    命令含义: –zone #作用域 –add-port=1935/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效

    重启防火墙

    firewall-cmd --reload

    如果你的服务器是阿里云的话(阿里云不会像腾讯云和京东云那样开放所有端口)你还需要到安全组里开放端口

    大致流程就是:登上阿里云->进入控制台->进入云服务器ECS->点击实例ID->点击本实例安全组。。。后面我就不说了。

    完成如上操作后,你用xshell重新连接,把端口号由原来的22改成56580,只要成功那么就注释22那个端口就OK了。

    二、关闭数据库Root用户的远程连接,创建一个低权限的新用户

    1、创建一个没有删除权限的用户

    GRANT SELECT,INSERT,UPDATE,CREATE ON cj.* TO 'custom'@'%' IDENTIFIED BY 'custom123@';

    SELECT,INSERT,UPDATE,CREATE是赋予该用户的权限

    cj是数据库 *代表所有

    custom是用户名

    custom123@是密码

    2、关闭root用户远程连接

    使用Navicat通过root用户登上数据库,找到mysql数据库user表,更改root的host为localhost;

    更改之后不会立刻生效,然后要刷新数据库

    flush privileges;

    3、打开root用户远程连接

    use mysql; update user set host = "%" where user = "root"; flush privileges;

    三、更改MySQL的常用端口号

    一、创建MySQL

    docker run --name mysql01 -p 3336:3336 -v /var/mysql/data:/var/lib/mysql -d -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

    我这里MySQL的映射端口是3336,用户名是root,密码是123456

    二、进入MySQL容器

    docker exec -it mysql01 /bin/bash

    三、在容器里下载vim

    apt-get update apt-get install vim

    这里时间会很长,而且可能会失败,要重试!

    四、在容器里执行 ,vim /etc/my.cnf 按i 修改端口号

    [mysqld] port=3336 五、用exit退出容器执行:

    docker cp mysql01:/etc/mysql/my.cnf /root

    六、vim my.cnf 进入文件修改或添加端口号

    [mysqld] port=3336

    七、 将文件重新复制进容器内

    docker cp /root/my.cnf mysql01:/etc/mysql/

    八、重启容器

    docker restart mysql01

    九、重新进入容器,登陆MySQL

    mysql -u root -p

    查看端口号

    show global variables like 'port';

    ±--------------±------+ | Variable_name | Value | ±--------------±------+ | port | 3336 | ±--------------±------+ 最后改Navicat的连接端口就OK了;

    Processed: 0.012, SQL: 9