服务器实战部署安全策略

13次阅读

一、防火墙

防火墙是服务器的第一道防线 , 虽然不能百分百防护得到 , 但至少能阻挡大多数黑客的 DOS 或 DDOS 以及利用部分开源软件的漏洞进行病毒植入等攻击。

1. 防火墙设置开机自启动

systemctl enable firewalld

2. 防火墙常用命令

(1) 防火墙状态查看 (开启或关闭)

systemctl status firewalld

(2) 开放端口

firewall-cmd --permanent --add-port= 端口 /tcp

(3) 关闭端口

firewall-cmd --permanent --remove-port= 端口 /tcp

(4) 防火墙重启

firewall-cmd --reload

(5) 查看防火墙已开放端口

firewall-cmd --list-ports

注意:
无论是服务器开放端口还是关闭端口必须要重启防火墙生效 , 否则无效。

二、远程连接

1.ssh 端口修改

vim /etc/ssh/sshd_config

添加一行 Port 12593 即可 , 如图所示:

服务器实战部署安全策略插图

重启 sshd:

systemctl restart sshd

需要开启防火墙 :

firewall-cmd --permanent --add-port=12593/tcp firewall-cmd --reload

2. 禁用 root 远程登录

修改配置文件:

vi /etc/ssh/sshd_config

添加如下内容:

 找到 # PermitRootLogin yus 改为 PermitRootLogin no

创建用户及授权 :

useradd blog #添加用户 passwd #重置密码 chown -R 用户名 路径 

三、备份管理

1. 数据备份

编写服务脚本通过 scp 命令进行远程传输到备份服务器对应的数据备份
目录。
核心命令如下:

scp -r sql_月份或天.zip mysql@ip:/home/mysql/backup

数据备份脚本内容可供参考 (可以结合上面的 scp 命令 , 实现备份到另外的服务器):

 #!/bin/bash base_dir=/home/blog/sql_script DATE=$(date +%Y%m%d) time=$(date "+%Y-%m-%d %H:%M:%S") cd $base_dir mysqldump -uroot -p123456 --databases wordpress nacos > dump_$DATE.sql if [$? -eq 0] then echo " 成功备份 mysql 数据库, 当前日期为:"$time >> /home/blog/mysql_dump.log else echo " 备份 mysql 数据库失败: 当前日期为:"$time>> /home/blog/mysql_dump.log fi

2. 程序日志备份

目前日志主要存储在 /home/blog/dev/log 目录下。
核心命令如下 (可写入 shell 脚本定时执行):

scp -r server_log_月份或天.zip server@ip:/home/server/backup

3. 系统日志备份 (针对服务器所产生的系统日志)

一般日志主要存储在 /var/log 下。
核心命令如下 (可写入 shell 脚本定时执行):

scp -r system_log_月份或天.zip system@ip:/home/system/backup

四、定期更新系统内核

  • 1. 硬件兼容性更好 (支持更多的硬件);

  • 2. 修复原有内核系统漏洞 (有的黑客会以原有系统漏洞来达到攻击服务器的目的), 提升系统稳定性 ;

  • 3. 系统将拥有更多的内存 (内核部分将不会被交换到虚拟内存中 , 这也是不少朋友感觉服务器内存虽然 16G, 实际能用的可能只有 12~13G 左右);

  • 4. 更多的新功能和特性 , 提高效率 , 减少运维工作量

要按照实际情况更新系统内核 , 切不可随意更新 , 更新前一定要有充足的准备 , 防止更新以后出现不兼容性问题导致影响巨大 (特别是生产环境 , 要特别小心 , 可以事先做试验更新确保问题 , 同时也把坑给踩了)。

1. 更新 yum 源仓库 yum -y update 2. 启用 ELRepo 仓库 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 3. 安装 ELRepo 仓库的 yum 源 yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm 4. 查询可用的系统内核包 yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 5. 安装最新版本内核 yum --enablerepo=elrepo-kernel install kernel-ml 6. 设置新的内核为 grub2 的默认版本 grub2-set-default 0 7. 生成 grub 配置文件并重启 grub2-mkconfig -o /boot/grub2/grub.cfg (必须等待该命令执行完毕后才执行 reboot 重启服务器) reboot 8. 验证新内核 uname -r

五、服务管理

1. 应用软件

(1)MySQL

a. 避免使用默认端口 3306;

b. 如需对外暴露 , 限制 IP;

c. 对外连接账户 , 密码设置复杂且做严格库表权限控制 ;

d. 不使用根用户运行 MySQL。

(2)Redis

a. 禁止监听公网 ;

b. 禁止使用 root 用户启动 ;

c. 限制 Redis 配置文件访问权限 (chmod 600 redis.conf)

d. 修改默认端口 (最好不要为 6379);

e. 打开保护模式 ;

f. 开启账号密码认证模式 ;

g. 数据加密 , 开启 SSL 代理。

(3)Nginx

a. 隐藏版本号 (防止黑客针对版本漏洞进行攻击);

b. 开启 HTTPS;

c. 开启黑白名单 ;

d. 添加账号认证 (一般为 basic, 双重认证的体系);

e. 限制请求方法 ;

f. 拒绝 User-Agent 和 Header 头设置 ;

g. 图片防盗链 ;

h. 控制并发连接数 ;

i. 限制缓冲区大小 (防止缓冲区溢出攻击)。

2. 微服务

(1) 通过网关代理访问 , 仅暴露网关 (网关处于公网下 , 一般 Nginx 代理网关 , 网关处于内网)。

(2) 各个微服务处于内网 , 通过注册中心建立联系 , 如涉及集群 , 可通过 Nginx 负载均衡策略实现请求分发。

原文链接:https://blog.csdn.net/sundehui01/article/details/123554081

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2024-01-02发表,共计2554字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。