在当今数字化时代,服务器安全是每个系统管理员必须关注的问题。对于运行在CentOS 7系统上的服务器来说,安全加固是确保其稳定运行的关键。本文将为您介绍如何使用一键脚本进行CentOS 7系统的安全加固,并设置实时监控,以确保服务器安全。
一键脚本:自动化安全加固
1. 脚本准备
首先,我们需要创建一个安全加固脚本。以下是一个简单的示例:
#!/bin/bash
# 更新系统
yum update -y
# 安装安全加固工具
yum install -y openssh-server firewalld
# 修改SSH端口
sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
systemctl restart sshd
# 开启Firewalld
systemctl start firewalld
systemctl enable firewalld
# 设置Firewalld规则
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
# 安装安全增强工具
yum install -y fail2ban
# 配置Fail2Ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sed -i 's/^enabled = false/enabled = true/' /etc/fail2ban/jail.local
# 启动Fail2Ban服务
systemctl start fail2ban
systemctl enable fail2ban
# 安装日志监控工具
yum install -y rsyslog
2. 脚本使用
将上述脚本保存为 sec加固.sh,并赋予执行权限:
chmod +x sec加固.sh
然后,运行脚本进行安全加固:
./sec加固.sh
二、实时监控:守护服务器安全
1. 安装Nagios
Nagios是一个开源的监控解决方案,可以帮助您实时监控服务器状态。以下是安装Nagios的步骤:
yum install -y epel-release
yum install -y nagios nagios-plugins nagios-nrpe-server
2. 配置Nagios
编辑 /etc/nagios/nrpe.cfg 文件,添加以下内容:
command[check_ssh]=/usr/local/nagios/var/spool/checks_NRPE/ssh.sh
command[check_firewalld]=/usr/local/nagios/var/spool/checks_NRPE/firewalld.sh
创建 ssh.sh 和 firewalld.sh 脚本,用于检查SSH端口和Firewalld状态:
# ssh.sh
echo "Checking SSH..."
ssh -o BatchMode=yes -o ConnectTimeout=3 root@localhost 2>/dev/null
if [ $? -ne 0 ]; then
echo "SSH is not running!"
exit 2
fi
echo "SSH is running."
# firewalld.sh
echo "Checking Firewalld..."
firewall-cmd --state
if [ $? -ne 0 ]; then
echo "Firewalld is not running!"
exit 2
fi
echo "Firewalld is running."
3. 配置NRPE
编辑 /etc/nagios/nrpe.cfg 文件,添加以下内容:
allowed_hosts=127.0.0.1,192.168.1.0/24
重启NRPE服务:
systemctl restart nrpe
4. 查看监控结果
在Nagios服务器上,查看SSH和Firewalld状态:
nagios -s | grep "check_ssh"
nagios -s | grep "check_firewalld"
通过以上步骤,您已经成功实现了CentOS 7系统的安全加固和实时监控。这可以帮助您及时发现并解决服务器安全问题,确保服务器稳定运行。
