本人小白, 第一次部署项目, 因为大家一般都是用默认的yaml 文件, 所以DB 账号,密码, 端口号,这些默认的配置项, 给不怀好意的人截取, 就会对我们的站点有影响.
如果有说的不对的地方, 请大家指正, 也欢迎大家提供更多安全的想法, 希望我们的项目都可以稳定运行, 没有风险.
DB的默认账号问题
- yaml 文件中, DB 的root 账号默认是123456, 这个有极大的风险. 如果没有修改默认密码的同学, 可以按照以下流程修改.
docker exec -u 0 -it aichat-db /bin/bash;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
mysql -u root-p #验证是否成功, 再次使用
全站的默认端口
修改yaml 文件中, web, 后台, DB 的端口默认值, 这样坏人就很难知道你的后台地址,端口号之类的信息了.
机器的登录方式
修改机器的ssh 端口, ssh 默认是22 端口, 如果你的密码过于简单,很容易被暴力破解出来. 下面可以参考如下方式进行修改
- 登录服务器,找到sshd_config文件并进行编辑
vim /etc/ssh/sshd_config
- 找到#Port 22,默认是注释掉的,先把前面的#号去掉,再插入一行设置成你想要的端口号,这个端口号, 可以随机一点.
Port 22
Port 10086
- 保存后退出,执行重启命令
systemctl restart sshd
-
新开一个终端窗口测试10086端口是否可以正常连接服务器,如果成功则将Port 22删除,之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。
-
如果你装了防火墙, 则需要将防火墙打开, 不然会遇到kex_exchange_identification: read: Connection reset by pee 的报错.
sudo firewall-cmd --zone=public --add-port=10086/tcp --permanent
sudo firewall-cmd --reload