最近徐老狗買的騰訊雲服務器總是被黑,數據庫慘遭攻擊,今天他終於忍無可忍,開始加固服務器。
一、修改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了;