作者:JHH先森 | 来源:互联网 | 2024-11-10 13:04
一、防火墙防火墙是服务器的第一道防线,虽然不能百分百防护得到,但至少能阻挡大多数黑客的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.更新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负载均衡策略实现请求分发。