Title here
Summary here
October 27, 20242 minutes
虽然仅仅是一台开发服务器,但是不代表安全问题可以被忽略。首先在华为云控制台配置下安全组的访问规则。只开放必要的端口。 我目前仅保留了SSH、MySQL、Redis、RabbitMQ和RabbitMQ管理页面的端口。后续有需要再放开其他相关端口,比如80和443这种。 然后通过VNC进入服务器,对服务器进行相关配置。
SSH的默认端口是22,最好是修改下默认端口。同时,禁用root用户直接登录以及禁用密码验证。
# 修改SSH配置提升安全性
vim /etc/ssh/sshd_config
Port X # 修改默认22端口
PermitRootLogin no # 禁止root直接登录
PasswordAuthentication no # 禁用密码验证
PubkeyAuthentication yes # 启用密钥验证默认防火墙应该是关闭状态,将防火墙打开后配置相关服务的端口即可。
# 配置防火墙开启必要端口
sudo firewall-cmd --permanent --add-port=X/tcp # SSH
sudo firewall-cmd --permanent --add-port=3306/tcp # MySQL
sudo firewall-cmd --permanent --add-port=6379/tcp # Redis
sudo firewall-cmd --permanent --add-port=5672/tcp # RabbitMQ
sudo firewall-cmd --permanent --add-port=15672/tcp # RabbitMQ管理界面
sudo firewall-cmd --reload禁用root用户直接登录以后,我们需要创建一个用户,并将其添加到sudo组中,方便我们后续使用。
sudo adduser harveyma
sudo passwd harveyma
# 添加到sudo组
sudo usermod -aG wheel harveyma
# 修改密码策略
sudo vim /etc/security/pwquality.conf
# 设置以下参数
minlen = 8 # 最小长度
minclass = 4 # 至少包含小写字母、大写字母、数字和特殊字符
maxrepeat = 3 # 最多重复字符次数
# 设置密码有效期
sudo chage -M 90 username # 90天后密码过期最好再更新下系统。
# 更新系统
sudo dnf update -y
# 安装基础工具包
sudo dnf install -y wget vim net-tools lsof完成基础安装配置以后,下面就可以逐个安装相关服务了。
# 安装MySQL
dnf install -y mysql-server
# 设置开机自启
systemctl enable mysqld
# 检查服务状态
systemctl status mysqld
# 登录MySQL
mysql -uroot -p
# 修改Root的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
# 创建可以远程连接的用户
CREATE USER 'devmysql'@'%' IDENTIFIED BY 'password';
# 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'devmysql'@'%';
# 刷新权限
FLUSH PRIVILEGES;以上操作完成以后,就可以使用数据库工具访问一下,看看是否能够远程连接到数据库。 由于服务器配置比较低,除了基本的安装以外,还需要再进行一些额外的优化配置。
[mysqld]
# 内存配置(2G内存的情况)
innodb_buffer_pool_size = 1G
innodb_log_buffer_size = 16M
key_buffer_size = 128M
# 并发配置
max_connections = 500
innodb_thread_concurrency = 8
# 日志配置
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2为了方便Redis的安装,先安装一下EPEL仓库
dnf install epel-release -y然后我们可以直接安装Redis
dnf install redis -y
# 启动Redis
systemctl start redis
# 设置开机自启
systemctl enable redis
# 检查Redis状态
systemctl status redis开启Redis的远程连接
# 备份原配置文件
cp /etc/redis.conf /etc/redis.conf.backup
# 编辑配置文件
vim /etc/redis.conf同样的优化一下配置文件
# 内存配置
maxmemory 1gb
maxmemory-policy allkeys-lru
# 持久化配置
appendonly yes
appendfsync everysec
# 连接配置
maxclients 10000最后重启一下Redis
systemctl restart redis暂时用不到,后续补充