最近徐老狗买的腾讯云服务器总是被黑,数据库惨遭攻击,今天他终于忍无可忍,开始加固服务器。
一、修改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了;