|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
CentOS Stream安全设置与系统加固全攻略 提升服务器安全性的必备指南
引言
在当今数字化时代,服务器安全性已成为企业和个人用户不可忽视的重要议题。CentOS Stream作为RHEL(Red Hat Enterprise Linux)的上游开发平台,提供了稳定且先进的操作系统环境,但默认安装并不能满足高安全性需求。本文将详细介绍CentOS Stream的安全设置与系统加固方法,帮助您构建一个更加安全可靠的服务器环境。
一、CentOS Stream简介及其安全特性
CentOS Stream是CentOS项目的一个新方向,它位于Fedora Linux和RHEL之间的中间位置。作为一个滚动发布的Linux发行版,CentOS Stream为用户提供了接近RHEL的功能,同时保持了对最新软件包的访问。
CentOS Stream的一些安全特性包括:
• SELinux(Security-Enhanced Linux)集成
• 内核级安全模块
• 定期安全更新
• 强化的访问控制机制
尽管CentOS Stream具备这些安全特性,但仍需进行适当的配置和加固以确保系统安全。
二、系统初始化安全设置
在安装CentOS Stream时,选择最小化安装可以减少不必要的软件包,从而降低潜在的攻击面。
- # 在安装过程中选择"Minimal Install"
- # 安装完成后检查已安装的软件包
- dnf list installed
复制代码
安装完成后,立即更新系统到最新版本以修复已知的安全漏洞。
- # 更新系统
- dnf update -y
- # 如果可用,安装安全更新
- dnf update --security -y
- # 设置自动更新
- dnf install -y dnf-automatic
- systemctl enable --now dnf-automatic.timer
复制代码
设置一个描述性的主机名有助于系统管理和识别。
- # 查看当前主机名
- hostnamectl
- # 设置新的主机名
- hostnamectl set-hostname server.example.com
- # 验证设置
- hostnamectl status
复制代码
正确设置时区有助于日志记录和时间同步。
- # 列出所有可用时区
- timedatectl list-timezones
- # 设置时区(例如:Asia/Shanghai)
- timedatectl set-timezone Asia/Shanghai
- # 验证设置
- timedatectl status
复制代码
确保系统时间准确对于日志分析和安全审计至关重要。
- # 安装chrony(NTP客户端)
- dnf install -y chrony
- # 启动并启用chrony服务
- systemctl enable --now chronyd
- # 验证时间同步状态
- chronyc tracking
复制代码
三、用户和权限管理
直接使用root账户远程登录存在安全风险,建议使用普通用户登录后通过sudo提升权限。
- # 创建新用户
- useradd -m adminuser
- passwd adminuser
- # 将用户添加到wheel组(具有sudo权限)
- usermod -aG wheel adminuser
- # 编辑SSH配置文件禁用root远程登录
- vi /etc/ssh/sshd_config
复制代码
找到PermitRootLogin参数,将其设置为no:
重启SSH服务:
设置强密码策略可以防止暴力破解攻击。
- # 安装libpwquality(密码质量检查库)
- dnf install -y libpwquality
- # 编辑密码质量配置文件
- vi /etc/security/pwquality.conf
复制代码
设置以下参数:
- minlen = 12
- minclass = 3
- dcredit = -1
- ucredit = -1
- lcredit = -1
- ocredit = -1
- maxrepeat = 3
复制代码
这些设置要求密码至少12个字符,包含至少3种字符类型(大写、小写、数字和特殊字符),每种类型至少一个,最多连续重复3个字符。
配置账户锁定策略可以防止暴力破解攻击。
- # 编辑系统认证配置文件
- vi /etc/pam.d/system-auth
复制代码
在auth部分添加以下行:
- auth required pam_tally2.so deny=5 unlock_time=900 onerr=fail
复制代码
这将在5次失败尝试后锁定账户15分钟。
限制只有wheel组的用户才能使用su命令切换到root账户。
- # 编辑PAM配置文件
- vi /etc/pam.d/su
复制代码
取消以下行的注释:
- auth required pam_wheel.so use_uid
复制代码
定期审查系统中的用户账户,移除不必要的账户。
- # 列出所有用户
- awk -F: '{print $1}' /etc/passwd
- # 查看最近登录的用户
- lastlog
- # 查找具有UID 0(root权限)的账户
- awk -F: '($3 == "0") {print}' /etc/passwd
复制代码
四、网络安全配置
使用firewalld管理网络流量是CentOS Stream的推荐做法。
- # 安装firewalld
- dnf install -y firewalld
- # 启动并启用firewalld
- systemctl enable --now firewalld
- # 查看默认区域
- firewall-cmd --get-default-zone
- # 查看当前活动的区域和规则
- firewall-cmd --list-all
- # 开放必要的端口(例如:SSH、HTTP、HTTPS)
- firewall-cmd --permanent --add-service=ssh
- firewall-cmd --permanent --add-service=http
- firewall-cmd --permanent --add-service=https
- # 重新加载防火墙规则
- firewall-cmd --reload
复制代码
SSH是远程管理服务器的常用工具,但也是攻击者的主要目标之一。
- # 备份SSH配置文件
- cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
- # 编辑SSH配置文件
- vi /etc/ssh/sshd_config
复制代码
修改以下参数:
- # 更改SSH默认端口(例如:2222)
- Port 2222
- # 禁用协议1
- Protocol 2
- # 禁用空密码
- PermitEmptyPasswords no
- # 设置最大认证尝试次数
- MaxAuthTries 3
- # 禁用X11转发
- X11Forwarding no
- # 仅允许特定用户登录
- AllowUsers adminuser user1 user2
- # 设置登录超时时间(秒)
- LoginGraceTime 60
- # 使用SSH密钥认证
- PubkeyAuthentication yes
- PasswordAuthentication no
复制代码
重启SSH服务:
通过调整内核参数增强网络安全性。
- # 编辑sysctl配置文件
- vi /etc/sysctl.d/99-security.conf
复制代码
添加以下参数:
- # 启用IP欺骗保护
- net.ipv4.conf.all.rp_filter = 1
- net.ipv4.conf.default.rp_filter = 1
- # 忽略ICMP重定向请求
- net.ipv4.conf.all.accept_redirects = 0
- net.ipv4.conf.default.accept_redirects = 0
- net.ipv4.conf.all.secure_redirects = 0
- net.ipv4.conf.default.secure_redirects = 0
- # 忽略发送ICMP重定向
- net.ipv4.conf.all.send_redirects = 0
- net.ipv4.conf.default.send_redirects = 0
- # 不接受源路由包
- net.ipv4.conf.all.accept_source_route = 0
- net.ipv4.conf.default.accept_source_route = 0
- # 启用TCP SYN Cookie保护
- net.ipv4.tcp_syncookies = 1
- # 防止SYN洪水攻击
- net.ipv4.tcp_max_syn_backlog = 2048
- net.ipv4.tcp_synack_retries = 2
- net.ipv4.tcp_syn_retries = 5
- # 记录可疑数据包
- net.ipv4.conf.all.log_martians = 1
- net.ipv4.conf.default.log_martians = 1
- # 忽略广播ping
- net.ipv4.icmp_echo_ignore_broadcasts = 1
- # 忽略所有ping
- net.ipv4.icmp_echo_ignore_all = 1
- # 启用IP转发(如果作为路由器)
- # net.ipv4.ip_forward = 1
复制代码
应用设置:
- sysctl -p /etc/sysctl.d/99-security.conf
复制代码
限制网络接口的广播和组播通信。
- # 编辑网络接口配置文件
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
复制代码
添加以下参数:
- # 禁用网络接口的广播和组播
- BROADCAST=no
- MULTICAST=no
复制代码
重启网络服务:
- systemctl restart network
复制代码
五、服务安全加固
禁用不必要的服务可以减少攻击面。
- # 列出所有启用的服务
- systemctl list-unit-files | grep enabled
- # 禁用不必要的服务(示例)
- systemctl disable --now avahi-daemon
- systemctl disable --now cups
- systemctl disable --now postfix
- systemctl disable --now telnet.socket
- systemctl disable --now rsh.socket
- systemctl disable --now ypbind
- systemctl disable --now nfs-server
- systemctl disable --now rpcbind
- systemctl disable --now smb
- systemctl disable --now vsftpd
复制代码
SELinux(Security-Enhanced Linux)是Linux内核的一个安全模块,提供了强制访问控制(MAC)机制。
- # 检查SELinux状态
- sestatus
- # 设置SELinux为强制模式
- setenforce 1
- # 编辑SELinux配置文件
- vi /etc/selinux/config
复制代码
确保以下设置:
- SELINUX=enforcing
- SELINUXTYPE=targeted
复制代码
对于Apache:
- # 安装Apache
- dnf install -y httpd
- # 编辑Apache配置文件
- vi /etc/httpd/conf/httpd.conf
复制代码
修改以下参数:
- # 隐藏Apache版本信息
- ServerTokens Prod
- ServerSignature Off
- # 禁用目录列表
- Options -Indexes
- # 限制HTTP请求方法
- <LimitExcept GET POST HEAD>
- Require all denied
- </LimitExcept>
复制代码
对于Nginx:
- # 安装Nginx
- dnf install -y nginx
- # 编辑Nginx配置文件
- vi /etc/nginx/nginx.conf
复制代码
修改以下参数:
- # 隐藏Nginx版本信息
- server_tokens off;
- # 禁用目录列表
- autoindex off;
- # 添加安全相关的HTTP头
- add_header X-Frame-Options "SAMEORIGIN";
- add_header X-Content-Type-Options "nosniff";
- add_header X-XSS-Protection "1; mode=block";
- add_header Referrer-Policy "strict-origin-when-cross-origin";
- add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; style-src 'self' 'unsafe-inline';";
复制代码- # 安装MariaDB
- dnf install -y mariadb-server
- # 启动并启用MariaDB
- systemctl enable --now mariadb
- # 运行安全安装脚本
- mysql_secure_installation
复制代码
该脚本将引导您完成以下安全设置:
• 设置root密码
• 移除匿名用户
• 禁止root远程登录
• 移除测试数据库
• 重新加载权限表
编辑MariaDB配置文件:
- vi /etc/my.cnf.d/mariadb-server.cnf
复制代码
在[mariadb]部分添加以下参数:
- # 禁用远程访问
- skip-networking
- bind-address = 127.0.0.1
- # 增强安全性
- local-infile=0
- symbolic-links=0
复制代码
重启MariaDB服务:
- systemctl restart mariadb
复制代码- # 安装PHP
- dnf install -y php php-fpm
- # 编辑PHP配置文件
- vi /etc/php.ini
复制代码
修改以下参数:
- # 隐藏PHP版本信息
- expose_php = Off
- # 禁用危险函数
- disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
- # 增强会话安全性
- session.cookie_httponly = 1
- session.use_only_cookies = 1
- session.cookie_secure = 1
- session.cookie_samesite = Strict
- # 限制文件上传
- file_uploads = On
- upload_tmp_dir = /var/www/php_tmp
- upload_max_filesize = 2M
- max_file_uploads = 20
- # 禁用全局变量
- register_globals = Off
复制代码
创建临时上传目录并设置权限:
- mkdir -p /var/www/php_tmp
- chown -R apache:apache /var/www/php_tmp
- chmod -R 750 /var/www/php_tmp
复制代码
重启PHP-FPM服务:
- systemctl restart php-fpm
复制代码
六、文件系统安全
确保关键文件和目录具有适当的权限。
- # 设置关键目录权限
- chmod 700 /root
- chmod 750 /home/*
- chmod 644 /etc/passwd
- chmod 600 /etc/shadow
- chmod 644 /etc/group
- chmod 600 /etc/gshadow
- chmod 644 /etc/sudoers
- chmod 600 /boot/grub/grub.cfg
- # 查找全局可写文件
- find / -type f -perm -o+w -exec ls -l {} \;
- # 查找没有所有者的文件
- find / -nouser -o -nogroup
复制代码
编辑/etc/fstab文件,为关键分区添加安全挂载选项。
- # 备份fstab文件
- cp /etc/fstab /etc/fstab.bak
- # 编辑fstab文件
- vi /etc/fstab
复制代码
为以下分区添加挂载选项:
- # /tmp分区
- /dev/sdaX /tmp ext4 defaults,nodev,nosuid,noexec 0 0
- # /home分区
- /dev/sdaX /home ext4 defaults,nodev,nosuid 0 0
- # /var分区
- /dev/sdaX /var ext4 defaults,nodev,nosuid 0 0
- # /boot分区
- /dev/sdaX /boot ext4 defaults,nodev,nosuid,noexec 0 0
复制代码
重新挂载分区:
- mount -o remount /tmp
- mount -o remount /home
- mount -o remount /var
- mount -o remount /boot
复制代码
使用chattr命令设置关键文件为不可变,防止未经授权的修改。
- # 设置关键文件为不可变
- chattr +i /etc/passwd
- chattr +i /etc/shadow
- chattr +i /etc/group
- chattr +i /etc/gshadow
- chattr +i /etc/sudoers
- chattr +i /etc/ssh/sshd_config
- # 查看文件属性
- lsattr /etc/passwd
复制代码
如需修改这些文件,需要先移除不可变属性:
限制用户和组的磁盘使用量,防止磁盘空间耗尽攻击。
- # 安装配额工具
- dnf install -y quota
- # 编辑/etc/fstab,为需要配额的分区添加usrquota和grpquota选项
- vi /etc/fstab
复制代码
例如:
- /dev/sdaX /home ext4 defaults,usrquota,grpquota 0 0
复制代码
重新挂载分区并创建配额数据库:
- mount -o remount /home
- quotacheck -cug /home
- quotaon -vug /home
复制代码
为用户设置配额:
- # 为用户adminuser设置软限制10GB,硬限制12GB
- setquota -u adminuser 10G 12G 0 0 /home
- # 查看用户配额
- quota -u adminuser
复制代码
七、系统监控与日志审计
配置rsyslog服务以集中管理日志。
- # 安装rsyslog
- dnf install -y rsyslog
- # 启动并启用rsyslog
- systemctl enable --now rsyslog
- # 编辑rsyslog配置文件
- vi /etc/rsyslog.conf
复制代码
取消以下行的注释以接收远程日志:
- # Provides UDP syslog reception
- module(load="imudp")
- input(type="imudp" port="514")
- # Provides TCP syslog reception
- module(load="imtcp")
- input(type="imtcp" port="514")
复制代码
添加自定义日志规则:
- # 记录所有认证相关日志
- authpriv.* /var/log/secure
- # 记录所有cron相关日志
- cron.* /var/log/cron
- # 记录所有邮件相关日志
- mail.* -/var/log/maillog
- # 记录所有内核消息
- kern.* /var/log/kern.log
- # 记录所有认证失败消息
- authpriv.* /var/log/auth.log
复制代码
重启rsyslog服务:
- systemctl restart rsyslog
复制代码
配置logrotate以管理日志文件大小和保留期。
- # 编辑logrotate配置文件
- vi /etc/logrotate.conf
复制代码
修改以下参数:
- # 设置日志轮转周期
- weekly
- # 设置保留的日志文件数量
- rotate 4
- # 压缩旧日志
- compress
- # 延迟压缩
- delaycompress
- # 如果日志文件不存在,不报错
- missingok
- # 如果日志文件为空,不轮转
- notifempty
- # 创建新的日志文件
- create 0640 root root
- # 包含自定义配置
- include /etc/logrotate.d
复制代码
为特定服务创建自定义轮转配置:
- # 为Apache创建自定义轮转配置
- vi /etc/logrotate.d/httpd
复制代码
添加以下内容:
- /var/log/httpd/*log {
- daily
- missingok
- rotate 30
- compress
- delaycompress
- notifempty
- sharedscripts
- postrotate
- /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
- endscript
- }
复制代码
使用auditd服务监控系统活动。
- # 安装auditd
- dnf install -y audit
- # 启动并启用auditd
- systemctl enable --now auditd
- # 编辑审计规则
- vi /etc/audit/rules.d/audit.rules
复制代码
添加以下规则:
- # 监控文件访问
- -w /etc/passwd -p wa -k identity
- -w /etc/shadow -p wa -k identity
- -w /etc/group -p wa -k identity
- -w /etc/gshadow -p wa -k identity
- -w /etc/sudoers -p wa -k identity
- -w /etc/ssh/sshd_config -p wa -k sshd_config
- # 监控系统调用
- -a always,exit -F arch=b64 -S chown -F auid>=1000 -F auid!=-1 -k perm_mod
- -a always,exit -F arch=b64 -S fchmod -F auid>=1000 -F auid!=-1 -k perm_mod
- -a always,exit -F arch=b64 -S fchmodat -F auid>=1000 -F auid!=-1 -k perm_mod
- -a always,exit -F arch=b64 -S setreuid -F auid>=1000 -F auid!=-1 -k setuid
- -a always,exit -F arch=b64 -S setuid -F auid>=1000 -F auid!=-1 -k setuid
- -a always,exit -F arch=b64 -S seteuid -F auid>=1000 -F auid!=-1 -k setuid
- -a always,exit -F arch=b64 -S setresuid -F auid>=1000 -F auid!=-1 -k setuid
- -a always,exit -F arch=b64 -S setregid -F auid>=1000 -F auid!=-1 -k setgid
- -a always,exit -F arch=b64 -S setgid -F auid>=1000 -F auid!=-1 -k setgid
- -a always,exit -F arch=b64 -S setegid -F auid>=1000 -F auid!=-1 -k setgid
- -a always,exit -F arch=b64 -S setresgid -F auid>=1000 -F auid!=-1 -k setgid
- # 监控登录活动
- -w /var/log/lastlog -p wa -k logins
- -w /var/log/faillog -p wa -k logins
- -w /var/log/tallylog -p wa -k logins
- # 监控网络活动
- -a always,exit -F arch=b64 -S bind -F auid>=1000 -F auid!=-1 -k network
- -a always,exit -F arch=b64 -S connect -F auid>=1000 -F auid!=-1 -k network
- # 监控权限提升
- -a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k priv_esc
- -a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k priv_esc
复制代码
重新加载审计规则:
安装和配置系统监控工具,如top、htop、vmstat、iostat等。
- # 安装监控工具
- dnf install -y htop sysstat vmstat iotop
- # 启动sysstat服务
- systemctl enable --now sysstat
- # 使用vmstat监控系统资源
- vmstat 1 10
- # 使用iostat监控磁盘I/O
- iostat -xz 1 10
- # 使用iotop监控进程I/O
- iotop -o
复制代码
八、安全更新与补丁管理
配置系统自动安装安全更新。
- # 安装dnf-automatic
- dnf install -y dnf-automatic
- # 编辑dnf-automatic配置文件
- vi /etc/dnf/automatic.conf
复制代码
修改以下参数:
- [commands]
- # 自动下载并安装更新
- apply_updates = yes
- [emitters]
- # 启用系统日志
- system_name = host.domain
- emit_via = syslog
- [email]
- # 配置邮件通知(可选)
- email_from = root@domain.com
- email_to = admin@domain.com
- email_host = localhost
- [base]
- # 仅安装安全更新
- upgrade_type = security
- random_sleep = 300
复制代码
启动并启用dnf-automatic服务:
- systemctl enable --now dnf-automatic.timer
复制代码
配置YUM/DNF插件以增强安全性。
- # 安装安全插件
- dnf install -y dnf-plugin-security
- # 检查可用的安全更新
- dnf updateinfo list security
- # 查看安全公告详情
- dnf updateinfo info
复制代码
定期使用安全扫描工具检查系统漏洞。
- # 安装OpenSCAP
- dnf install -y openscap-scanner scap-security-guide
- # 运行系统扫描
- oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_stig --results-arf arf.xml /usr/share/xml/scap/ssg/content/ssg-centos8-ds.xml
- # 生成HTML报告
- oscap xccdf generate report arf.xml > report.html
复制代码
九、入侵检测与防御
AIDE是一个文件完整性检查工具,可以检测文件系统的未授权更改。
- # 安装AIDE
- dnf install -y aide
- # 初始化AIDE数据库
- aide --init
- # 重命名数据库文件
- mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
- # 配置AIDE
- vi /etc/aide.conf
复制代码
根据需要修改AIDE配置,例如添加要监控的目录:
- # 监控/etc目录
- /etc p+i+n+u+g+s+b+m+c+md5+sha256
- # 监控/boot目录
- /boot p+i+n+u+g+s+b+m+c+md5+sha256
- # 监控/bin目录
- /bin p+i+n+u+g+s+b+m+c+md5+sha256
- # 监控/sbin目录
- /sbin p+i+n+u+g+s+b+m+c+md5+sha256
- # 监控/lib目录
- /lib p+i+n+u+g+s+b+m+c+md5+sha256
- # 监控/usr目录
- /usr p+i+n+u+g+s+b+m+c+md5+sha256
- # 监控/var目录
- /var p+i+n+u+g+s+b+m+c+md5+sha256
复制代码
运行AIDE检查:
创建定期检查的cron任务:
添加以下内容:
- # 每天凌晨3点运行AIDE检查
- 0 3 * * * /usr/sbin/aide --check | mail -s "AIDE Report" admin@domain.com
复制代码
Fail2ban是一个入侵防御软件,可以防止暴力破解攻击。
- # 安装EPEL仓库
- dnf install -y epel-release
- # 安装Fail2ban
- dnf install -y fail2ban
- # 启动并启用Fail2ban
- systemctl enable --now fail2ban
- # 创建Fail2ban配置文件
- cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- # 编辑Fail2ban配置
- vi /etc/fail2ban/jail.local
复制代码
修改以下参数:
- [DEFAULT]
- # 设置默认禁止时间(秒)
- bantime = 1h
- # 设置查找时间窗口
- findtime = 10m
- # 设置最大尝试次数
- maxretry = 3
- # 设置发送邮件
- destemail = admin@domain.com
- sender = root@domain.com
- mta = sendmail
- # 启用SSH保护
- [sshd]
- enabled = true
- port = 2222
- filter = sshd
- logpath = /var/log/secure
- maxretry = 3
- bantime = 1d
复制代码
重启Fail2ban服务:
- systemctl restart fail2ban
复制代码
ClamAV是一个开源的防病毒引擎,可以检测恶意软件。
- # 安装EPEL仓库
- dnf install -y epel-release
- # 安装ClamAV
- dnf install -y clamav clamav-update
- # 更新病毒数据库
- freshclam
- # 配置自动更新
- vi /etc/sysconfig/freshclam
复制代码
注释掉以下行:
创建定时任务自动更新病毒数据库:
添加以下内容:
- # 每3小时更新一次病毒数据库
- 0 */3 * * * /usr/bin/freshclam --quiet
复制代码
创建定时任务定期扫描系统:
添加以下内容:
- # 每天凌晨2点扫描系统
- 0 2 * * * /usr/bin/clamscan -r / --exclude-dir=/sys --exclude-dir=/proc --exclude-dir=/dev | mail -s "ClamAV Scan Report" admin@domain.com
复制代码
十、安全最佳实践总结
定期进行系统安全审计,检查系统配置和日志。
- # 检查登录失败
- grep "Failed password" /var/log/secure
- # 检查成功登录
- grep "Accepted password" /var/log/secure
- # 检查sudo使用
- grep "sudo" /var/log/secure
- # 检查用户账户
- awk -F: '($3 == "0") {print}' /etc/passwd
- # 检查SUID/SGID文件
- find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
- # 检查无主文件
- find / -nouser -o -nogroup
复制代码
制定并实施定期备份策略,确保数据安全。
- # 安装rsync
- dnf install -y rsync
- # 创建备份脚本
- vi /usr/local/bin/backup.sh
复制代码
添加以下内容:
- #!/bin/bash
- # 设置备份目录
- BACKUP_DIR="/backup"
- DATE=$(date +%Y%m%d)
- # 创建备份目录
- mkdir -p $BACKUP_DIR/$DATE
- # 备份系统配置文件
- rsync -avz --delete /etc $BACKUP_DIR/$DATE/
- # 备份用户数据
- rsync -avz --delete /home $BACKUP_DIR/$DATE/
- # 备份网站数据
- rsync -avz --delete /var/www $BACKUP_DIR/$DATE/
- # 备份数据库
- mysqldump --all-databases -u root -p'password' | gzip > $BACKUP_DIR/$DATE/mysql.sql.gz
- # 清理旧备份(保留7天)
- find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \;
复制代码
设置脚本可执行权限:
- chmod +x /usr/local/bin/backup.sh
复制代码
创建定时任务:
添加以下内容:
- # 每天凌晨1点执行备份
- 0 1 * * * /usr/local/bin/backup.sh
复制代码
制定并维护系统安全文档和政策,包括:
• 系统配置标准
• 用户管理政策
• 密码策略
• 事件响应计划
• 备份与恢复程序
定期为系统管理员和用户提供安全意识培训,包括:
• 识别钓鱼邮件
• 安全密码实践
• 社会工程防范
• 安全事件报告程序
结论
CentOS Stream的安全设置与系统加固是一个持续的过程,需要管理员不断学习和适应新的安全威胁。本文提供了一系列安全配置和加固措施,从系统初始化设置到日常监控和维护,涵盖了服务器安全的各个方面。通过实施这些措施,您可以显著提高CentOS Stream服务器的安全性,保护系统和数据免受未授权访问和恶意攻击。
请记住,安全是一个持续的过程,而不是一次性的任务。定期审查和更新您的安全配置,保持对最新安全威胁的了解,并采取适当的预防措施,是确保服务器长期安全运行的关键。 |
|