加强站点安全管理

本人小白, 第一次部署项目, 因为大家一般都是用默认的yaml 文件, 所以DB 账号,密码, 端口号,这些默认的配置项, 给不怀好意的人截取, 就会对我们的站点有影响.

如果有说的不对的地方, 请大家指正, 也欢迎大家提供更多安全的想法, 希望我们的项目都可以稳定运行, 没有风险.

DB的默认账号问题

  1. 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 端口, 如果你的密码过于简单,很容易被暴力破解出来. 下面可以参考如下方式进行修改

  1. 登录服务器,找到sshd_config文件并进行编辑

vim /etc/ssh/sshd_config

  1. 找到#Port 22,默认是注释掉的,先把前面的#号去掉,再插入一行设置成你想要的端口号,这个端口号, 可以随机一点.

Port 22

Port 10086

  1. 保存后退出,执行重启命令

systemctl restart sshd

  1. 新开一个终端窗口测试10086端口是否可以正常连接服务器,如果成功则将Port 22删除,之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。

  2. 如果你装了防火墙, 则需要将防火墙打开, 不然会遇到kex_exchange_identification: read: Connection reset by pee 的报错.

sudo firewall-cmd --zone=public --add-port=10086/tcp --permanent

sudo firewall-cmd --reload

2 个赞

写的很棒,但是对于不懂Linux的用户来说,只建议修改22端口,其他端口只要idc控制台那边的防火墙保持关闭,公网是无法联通的(小厂的不好说)。

重点提下yml里面的数据库,我们的yml文件中配置的端口是3310:3306,意思是3310对应系统网络,3306对应容器网络。你只要保证3310端口idc那边是没有打开的,你数据库哪怕没密码也不存在安全问题。

最后,哪怕你22端口不修改,只要是强密码,一般也破不开。
esc控制台防火墙中,只要放行80,443,22即可,其他任何端口与ICMP协议全部关闭即可。

1 个赞

image

小厂机器请自行确认IDC控制台的防火墙是否默认开放全部端口,请重视这件事情。

下图为阿里云esc防火墙