热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

服务器部署中的安全策略实践与优化

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

防火墙是服务器的第一道防线,虽然不能百分百防护得到,但至少能阻挡大多数黑客的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负载均衡策略实现请求分发。


推荐阅读
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 基于Dubbo与Zipkin的微服务调用链路监控解决方案
    本文提出了一种基于Dubbo与Zipkin的微服务调用链路监控解决方案。通过抽象配置层,支持HTTP和Kafka两种数据上报方式,实现了灵活且高效的调用链路追踪。该方案不仅提升了系统的可维护性和扩展性,还为故障排查提供了强大的支持。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 近期,针对Axis2默认凭据漏洞的攻击案例在安全社区引起了广泛关注。这些攻击通常利用Axis2的默认用户名和密码进行渗透测试,技术手段相对固定。本文在综合分析多个案例的基础上,详细探讨了该漏洞的安全风险,并提出了有效的防范措施,以帮助企业和开发者加强Web服务的安全防护。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • (1)前期知识:1. 单机架构:单一服务器计算机——其处理能力和存储容量有限。2. 集群架构(负载均衡器与多节点服务器)——通过增加节点数量来提升系统性能和可靠性,实现高效的任务分配和资源利用。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
author-avatar
JHH先森
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有