简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

站内搜索

搜索

活动公告

11-02 12:46
10-23 09:32
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,将及时处理!
10-23 09:31
10-23 09:28
通知:签到时间调整为每日4:00(东八区)
10-23 09:26

CentOS新手必看系统安装后第一时间应该做的安全配置和基础设置详解

3万

主题

424

科技点

3万

积分

大区版主

木柜子打湿

积分
31917

三倍冰淇淋无人之境【一阶】财Doro小樱(小丑装)立华奏以外的星空【二阶】⑨的冰沙

发表于 2025-9-20 14:30:00 | 显示全部楼层 |阅读模式 [标记阅至此楼]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 系统更新与补丁管理

系统安装后的第一件事应该是确保系统是最新的,这可以修复已知的安全漏洞并提高系统稳定性。

1.1 检查并更新系统

CentOS使用yum包管理器来管理系统更新。首先,检查可用的更新:
  1. sudo yum check-update
复制代码

然后,安装所有可用的更新:
  1. sudo yum update -y
复制代码

-y参数会自动回答”yes”以确认安装,这在自动化脚本中很有用。

1.2 设置自动更新

为了确保系统始终保持最新状态,可以设置自动更新:
  1. sudo yum install -y yum-cron
  2. sudo systemctl enable yum-cron
  3. sudo systemctl start yum-cron
复制代码

然后编辑/etc/yum/yum-cron.conf文件:
  1. sudo vi /etc/yum/yum-cron.conf
复制代码

确保以下设置正确配置:
  1. apply_updates = yes
复制代码

这将使系统自动下载并安装安全更新。

2. 用户账户安全配置

2.1 创建新用户并配置sudo权限

不要直接使用root账户进行日常操作,应该创建一个普通用户并授予sudo权限:
  1. # 创建新用户
  2. sudo adduser newuser
  3. # 设置用户密码
  4. sudo passwd newuser
  5. # 将用户添加到wheel组(具有sudo权限)
  6. sudo usermod -aG wheel newuser
复制代码

2.2 禁用root SSH登录

为了提高安全性,应该禁用root账户通过SSH直接登录:
  1. sudo vi /etc/ssh/sshd_config
复制代码

找到以下行并修改:
  1. PermitRootLogin no
复制代码

然后重启SSH服务:
  1. sudo systemctl restart sshd
复制代码

2.3 配置密码策略

设置强密码策略可以增强系统安全性:
  1. sudo yum install -y libpwquality
  2. sudo vi /etc/security/pwquality.conf
复制代码

修改或添加以下设置:
  1. minlen = 12
  2. minclass = 3
  3. dcredit = -1
  4. ucredit = -1
  5. lcredit = -1
  6. ocredit = -1
复制代码

这些设置要求密码至少12个字符,包含至少3种字符类型(大写、小写、数字、特殊字符),并且至少包含一个数字、一个大写字母、一个小写字母和一个特殊字符。

3. 防火墙设置

CentOS 7及以后版本使用firewalld作为默认防火墙管理工具。

3.1 启动并启用防火墙
  1. sudo systemctl start firewalld
  2. sudo systemctl enable firewalld
复制代码

3.2 配置防火墙规则

查看当前活动的区域和规则:
  1. sudo firewall-cmd --get-active-zones
  2. sudo firewall-cmd --list-all
复制代码

开放必要的端口,例如SSH(22)、HTTP(80)和HTTPS(443):
  1. sudo firewall-cmd --permanent --add-service=ssh
  2. sudo firewall-cmd --permanent --add-service=http
  3. sudo firewall-cmd --permanent --add-service=https
复制代码

重新加载防火墙配置:
  1. sudo firewall-cmd --reload
复制代码

3.3 高级防火墙配置

如果需要更复杂的规则,可以创建自定义服务:
  1. # 创建自定义服务文件
  2. sudo vi /etc/firewalld/services/custom-service.xml
复制代码

示例内容:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <service>
  3.   <short>Custom Service</short>
  4.   <description>A custom service for specific ports</description>
  5.   <port protocol="tcp" port="1234"/>
  6.   <port protocol="udp" port="5678"/>
  7. </service>
复制代码

然后重新加载防火墙并添加服务:
  1. sudo firewall-cmd --reload
  2. sudo firewall-cmd --permanent --add-service=custom-service
  3. sudo firewall-cmd --reload
复制代码

4. SSH安全配置

SSH是远程管理Linux系统的主要方式,因此确保SSH的安全至关重要。

4.1 更改默认SSH端口

更改默认SSH端口可以减少自动化攻击:
  1. sudo vi /etc/ssh/sshd_config
复制代码

找到并修改以下行:
  1. Port 2222
复制代码

然后重启SSH服务:
  1. sudo systemctl restart sshd
复制代码

4.2 禁用密码认证,启用密钥认证

使用SSH密钥对比密码认证更安全:
  1. # 在本地计算机上生成SSH密钥对(如果还没有)
  2. ssh-keygen -t rsa -b 4096
  3. # 将公钥复制到服务器
  4. ssh-copy-id -p 2222 newuser@your_server_ip
复制代码

然后在服务器上编辑SSH配置:
  1. sudo vi /etc/ssh/sshd_config
复制代码

修改以下设置:
  1. PasswordAuthentication no
  2. PubkeyAuthentication yes
复制代码

重启SSH服务:
  1. sudo systemctl restart sshd
复制代码

4.3 配置SSH登录限制

可以限制哪些用户或组可以SSH登录:
  1. sudo vi /etc/ssh/sshd_config
复制代码

添加以下行之一:
  1. # 仅允许特定用户登录
  2. AllowUsers user1 user2
  3. # 仅允许特定组登录
  4. AllowGroups group1 group2
复制代码

重启SSH服务:
  1. sudo systemctl restart sshd
复制代码

4.4 使用Fail2Ban防止暴力破解

Fail2Ban可以监控日志文件并自动封禁恶意IP:
  1. # 安装EPEL仓库
  2. sudo yum install -y epel-release
  3. # 安装Fail2Ban
  4. sudo yum install -y fail2ban
  5. # 启动并启用Fail2Ban
  6. sudo systemctl start fail2ban
  7. sudo systemctl enable fail2ban
复制代码

创建一个自定义的jail配置:
  1. sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  2. sudo vi /etc/fail2ban/jail.local
复制代码

配置SSH保护:
  1. [sshd]
  2. enabled = true
  3. port = 2222
  4. findtime = 600
  5. bantime = 3600
  6. maxretry = 3
复制代码

重启Fail2Ban:
  1. sudo systemctl restart fail2ban
复制代码

5. 禁用不必要的服务

减少系统上运行的服务数量可以减少攻击面。

5.1 查看运行的服务
  1. sudo systemctl list-units --type=service --state=running
复制代码

5.2 禁用不必要的服务

根据系统用途,禁用不需要的服务。例如,如果系统不作为打印服务器:
  1. sudo systemctl stop cups
  2. sudo systemctl disable cups
复制代码

常见可以禁用的服务包括:
  1. # 如果不使用Postfix邮件服务器
  2. sudo systemctl stop postfix
  3. sudo systemctl disable postfix
  4. # 如果不使用Avahi(网络设备发现)
  5. sudo systemctl stop avahi-daemon
  6. sudo systemctl disable avahi-daemon
  7. # 如果不使用NFS服务器
  8. sudo systemctl stop nfs-server
  9. sudo systemctl disable nfs-server
复制代码

5.3 使用systemctl mask防止服务启动

对于确定不需要的服务,可以使用mask命令彻底防止其启动:
  1. sudo systemctl mask cups.service
复制代码

6. 安全审计与日志配置

6.1 安装和配置auditd

auditd提供系统审计功能,可以记录系统调用和文件访问:
  1. # auditd通常已经安装,如果没有则安装
  2. sudo yum install -y audit
  3. # 启动并启用auditd
  4. sudo systemctl start auditd
  5. sudo systemctl enable auditd
复制代码

配置审计规则:
  1. sudo vi /etc/audit/rules.d/audit.rules
复制代码

添加一些基本规则:
  1. # 监控密码文件访问
  2. -w /etc/passwd -p wa -k identity
  3. -w /etc/shadow -p wa -k identity
  4. -w /etc/group -p wa -k identity
  5. # 监控sudo使用
  6. -w /etc/sudoers -p wa -k priv_esc
  7. # 监控系统时间修改
  8. -a always,exit -F arch=b64 -S adjtimex -S settimeofday -S stime -k time_change
复制代码

重启auditd以应用新规则:
  1. sudo systemctl restart auditd
复制代码

6.2 配置日志轮转

配置日志轮转可以防止日志文件占用过多磁盘空间:
  1. sudo vi /etc/logrotate.conf
复制代码

确保以下设置合理:
  1. # 保留4周的日志
  2. rotate 4
  3. # 每周轮转一次
  4. weekly
  5. # 压缩旧日志
  6. compress
  7. # 延迟压缩
  8. delaycompress
复制代码

6.3 安装和配置rsyslog

rsyslog是CentOS的默认日志服务,确保它正确配置:
  1. sudo vi /etc/rsyslog.conf
复制代码

取消以下行的注释以接收远程日志(如果需要):
  1. # Provides UDP syslog reception
  2. $ModLoad imudp
  3. $UDPServerRun 514
  4. # Provides TCP syslog reception
  5. $ModLoad imtcp
  6. $InputTCPServerRun 514
复制代码

重启rsyslog:
  1. sudo systemctl restart rsyslog
复制代码

7. 系统监控工具安装

7.1 安装基础监控工具
  1. sudo yum install -y htop iotop iftop nethogs
复制代码

这些工具提供系统资源使用情况的实时视图:

• htop: 增强的进程查看器
• iotop: 磁盘I/O监控
• iftop: 网络带宽监控
• nethogs: 按进程监控网络带宽使用

7.2 安装和配置netdata

Netdata是一个实时系统监控工具:
  1. # 安装依赖
  2. sudo yum install -y zlib libgcrypt libmnl libuuid lm_sensors autogen
  3. # 下载并安装Netdata
  4. bash <(curl -Ss https://my-netdata.io/kickstart.sh)
  5. # 启动并启用Netdata
  6. sudo systemctl start netdata
  7. sudo systemctl enable netdata
复制代码

访问Netdata Web界面:http://your_server_ip:19999

7.3 安装Nagios或Zabbix(可选)

对于更高级的监控需求,可以考虑安装Nagios或Zabbix:
  1. # 安装Nagios
  2. sudo yum install -y nagios nagios-plugins-all
  3. # 启动并启用Nagios
  4. sudo systemctl start nagios
  5. sudo systemctl enable nagios
复制代码

或安装Zabbix:
  1. # 安装Zabbix仓库
  2. sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
  3. # 安装Zabbix服务器
  4. sudo yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
  5. # 配置数据库等后续步骤...
复制代码

8. 其他基础设置

8.1 设置时区

确保系统时区正确:
  1. # 列出所有可用时区
  2. timedatectl list-timezones
  3. # 设置时区(例如上海)
  4. sudo timedatectl set-timezone Asia/Shanghai
  5. # 验证时区设置
  6. timedatectl status
复制代码

8.2 配置NTP同步

确保系统时间与NTP服务器同步:
  1. # 安装chrony(CentOS 7及以后版本推荐)
  2. sudo yum install -y chrony
  3. # 启动并启用chrony
  4. sudo systemctl start chronyd
  5. sudo systemctl enable chronyd
  6. # 检查同步状态
  7. chronyc sources -v
复制代码

8.3 配置主机名

设置合适的主机名:
  1. # 查看当前主机名
  2. hostnamectl
  3. # 设置静态主机名
  4. sudo hostnamectl set-hostname your-hostname
  5. # 验证设置
  6. hostnamectl status
复制代码

8.4 配置网络

如果需要静态IP配置:
  1. # 查看网络接口
  2. ip addr
  3. # 编辑网络配置文件(例如ens33)
  4. sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码

修改配置:
  1. BOOTPROTO=static
  2. IPADDR=192.168.1.100
  3. NETMASK=255.255.255.0
  4. GATEWAY=192.168.1.1
  5. DNS1=8.8.8.8
  6. DNS2=8.8.4.4
  7. ONBOOT=yes
复制代码

重启网络服务:
  1. sudo systemctl restart network
复制代码

8.5 安装常用工具

安装一些常用工具:
  1. sudo yum install -y vim wget curl git unzip tar bzip2
复制代码

8.6 配置SELinux

SELinux是CentOS的安全增强功能,建议保持启用状态:
  1. # 检查SELinux状态
  2. sestatus
  3. # 设置SELinux为 enforcing 模式
  4. sudo setenforce 1
  5. sudo vi /etc/selinux/config
复制代码

确保以下设置:
  1. SELINUX=enforcing
复制代码

8.7 创建快照或备份

在进行任何重大更改之前,创建系统备份:
  1. # 安装rsnapshot(基于rsync的备份工具)
  2. sudo yum install -y rsnapshot
  3. # 配置rsnapshot
  4. sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
  5. sudo vi /etc/rsnapshot.conf
复制代码

基本配置示例:
  1. snapshot_root   /backup/
  2. cmd_cp          /bin/cp
  3. cmd_rm          /bin/rm
  4. cmd_rsync       /usr/bin/rsync
  5. cmd_ssh         /usr/bin/ssh
  6. cmd_du          /usr/bin/du
  7. cmd_logger      /usr/bin/logger
  8. retain  hourly  24
  9. retain  daily   7
  10. retain  weekly  4
  11. retain  monthly 12
  12. backup  /etc/      localhost/
  13. backup  /home/     localhost/
  14. backup  /root/     localhost/
复制代码

测试配置:
  1. sudo rsnapshot configtest
  2. sudo rsnapshot -t hourly
复制代码

创建第一个备份:
  1. sudo rsnapshot hourly
复制代码

结论

以上步骤涵盖了CentOS系统安装后应该立即进行的安全配置和基础设置。这些配置将大大提高系统的安全性,并为后续的系统管理和应用部署打下坚实的基础。根据系统的具体用途,可能还需要进行其他特定的配置和优化。

记住,系统安全是一个持续的过程,定期更新和维护这些配置是保持系统安全的关键。建议定期审查系统日志、更新软件包,并关注最新的安全公告和最佳实践。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

频道订阅

频道订阅

加入社群

加入社群

联系我们|TG频道|RSS

Powered by Pixtech

© 2025 Pixtech Team.