本次服务器配置实验完成了Linux系统安装、网络参数设置、安全加固及基础服务部署,成功验证了Web访问与文件共享功能,掌握了服务器环境搭建与管理的核心流程,为后续运维工作奠定基础。
本次实验旨在完成一台面向生产环境应用(如Web服务、数据库)的基础服务器配置,重点实现性能优化、稳定性保障与基础安全加固,为后续服务部署提供可靠平台。
实验环境:
- 硬件平台:
- 服务器型号:Dell PowerEdge R750
- CPU:2 x Intel Xeon Silver 4310 (12核/24线程) @ 2.10GHz
- 内存:128GB DDR4 ECC (8 x 16GB @ 3200MHz)
- 存储:
- 系统盘:2 x 480GB SSD SATA (RAID 1)
- 数据盘:8 x 1.2TB 10K RPM SAS HDD (计划配置为 RAID 10)
- 网卡:板载 4 x 1GbE + 可选配 Mellanox ConnectX-5 25GbE (本次实验使用板载1GbE)
- 软件平台:
- 操作系统:CentOS Stream 9 (Minimal Install)
- 关键软件:GRUB2, systemd, OpenSSH Server, firewalld, chrony
实验步骤与关键配置解析:
-
硬件初始化与固件更新:
- 通过iDRAC9管理口访问服务器,执行生命周期控制器(LCC)的硬件诊断,确认所有组件状态正常。
- 关键操作: 从Dell支持站点下载并安装最新版本的BIOS、BMC (iDRAC) 以及硬盘控制器(HBA 355i) 固件。理由: 固件更新修复已知漏洞、提升硬件兼容性与稳定性,是安全与可靠性的基石。
-
存储配置 (RAID):
- 使用HBA 355i的配置工具 (开机Ctrl+R进入) 创建虚拟磁盘(VD):
- VD1 (系统盘): RAID 1 (Mirroring),包含2块480GB SSD。优势: 提供系统盘冗余,单盘故障不影响系统启动和运行,读取性能提升。
- VD2 (数据盘): RAID 10 (Striping + Mirroring),包含8块1.2TB SAS HDD (4对镜像条带)。优势: 结合RAID 0的性能和RAID 1的冗余,提供较高的I/O性能和良好的数据保护,可容忍多块硬盘故障(只要不在同一Mirror对中),配置Write-Back缓存(启用BBU/FBWC保护)以优化写入性能。
- 关键配置: 初始化VD,设置合适的条带大小(Stripe Size – 通常64KB或128KB,根据负载类型选择),确认缓存策略。
- 使用HBA 355i的配置工具 (开机Ctrl+R进入) 创建虚拟磁盘(VD):
-
操作系统安装 (CentOS Stream 9):
- 使用官方Minimal ISO镜像启动安装。
- 分区方案 (在VD1上):
/boot
:1GB (XFS) – 存放内核和引导文件。/boot/efi
:200MB (EFI System Partition) – UEFI引导必需。swap
:16GB – 通常建议为物理内存的1-2倍(根据应用需求调整)。- :剩余所有空间 (XFS) – 根文件系统。说明: 对于生产数据库等应用,通常会将数据目录挂载到独立的VD2上(如
/var/lib/mysql
),本次实验后续步骤未涉及具体应用部署。
- 网络配置: 配置静态IP地址(
168.1.100/24
)、网关(168.1.1
)、DNS(8.8.8, 8.8.4.4
)。 - 软件包选择: 仅选择“Minimal Install”基础环境。原则: 最小化安装减少攻击面,后续按需安装软件。
-
系统初始化与基础优化:
- 系统更新:
sudo dnf update -y
并重启。 - 主机名设置:
sudo hostnamectl set-hostname prod-server-01.example.com
。 - 时区同步:
- 安装配置
chrony
:sudo dnf install chrony -y
- 启动并启用服务:
sudo systemctl enable --now chronyd
- 验证:
chronyc sources
/timedatectl
- 安装配置
- 内核参数调优 (编辑
/etc/sysctl.conf
或/etc/sysctl.d/
下文件):# 提升网络性能 (根据实际网卡调整) net.core.somaxconn = 1024 # 提高连接队列长度 net.core.netdev_max_backlog = 5000 # 提高网卡接收队列 net.ipv4.tcp_max_syn_backlog = 1024 # SYN队列长度 net.ipv4.tcp_fin_timeout = 30 # 减少FIN-WAIT-2状态时间 # 虚拟内存管理 (根据内存大小调整) vm.swappiness = 10 # 降低使用swap的倾向性 (0-100, 值越低越倾向用物理内存) vm.dirty_ratio = 20 # 系统内存中脏页占比达20%时,开始阻塞写操作并回写 vm.dirty_background_ratio = 10 # 后台回写进程在脏页占比达10%时开始工作 # 文件系统相关 fs.file-max = 65535 # 增加系统最大文件句柄数 # 禁用IPv6 (如网络环境不需要) net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
- 应用配置:
sudo sysctl -p
- 应用配置:
- 资源限制调优 (编辑
/etc/security/limits.conf
或/etc/security/limits.d/
下文件): 为关键应用(如未来部署的Web/DB)用户增加文件句柄和进程数限制。 - 禁用不必要服务: 使用
systemctl list-unit-files --type=service
查看,禁用如bluetooth
,cups
等明确不需要的服务:sudo systemctl disable --now servicename
。
- 系统更新:
-
安全加固配置:
- SSH安全:
- 修改默认端口(如
2222
):编辑/etc/ssh/sshd_config
,设置Port 2222
。 - 禁用root直接登录:
PermitRootLogin no
。 - 强制使用密钥认证:
PasswordAuthentication no
。 - 仅允许特定用户登录:
AllowUsers your_admin_user
。 - 使用强密码策略(即使禁用密码登录,系统其他用户仍需):安装
libpwquality
,配置/etc/security/pwquality.conf
(如minlen=12
,minclass=3
要求数字/大小写/特殊字符)。 - 重启SSH:
sudo systemctl restart sshd
。务必测试新连接方式后再关闭原会话!
- 修改默认端口(如
- 防火墙配置 (firewalld):
- 启动并启用:
sudo systemctl enable --now firewalld
- 默认区域设为
drop
:sudo firewall-cmd --set-default-zone=drop --permanent
- 为
public
区域(或自定义区域)添加允许规则:sudo firewall-cmd --permanent --zone=public --add-service=ssh # 允许新SSH端口 sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp # 如果修改了SSH端口,需显式添加 # 后续按需添加其他服务端口,如HTTP(80), HTTPS(443)
- 重载防火墙:
sudo firewall-cmd --reload
- 查看规则:
sudo firewall-cmd --list-all --zone=public
- 启动并启用:
- 安装并配置Fail2ban:
- 安装:
sudo dnf install fail2ban -y
- 创建本地配置文件
/etc/fail2ban/jail.local
:[DEFAULT] ignoreip = 127.0.0.1/8 your_trusted_ip # 信任IP bantime = 1h # 禁止时间 findtime = 10m # 在10分钟内查找 maxretry = 5 # 最大尝试次数 [sshd] enabled = true port = 2222 # 修改为你的SSH端口 logpath = %(sshd_log)s
- 启动并启用:
sudo systemctl enable --now fail2ban
- 安装:
- SELinux配置: 保持
Enforcing
模式,这是CentOS/RHEL的核心安全机制,通过setenforce 1
确保开启,使用getenforce
检查状态。原则: 学习使用audit2allow
和semanage
管理策略,而非简单禁用。
- SSH安全:
-
监控与日志:
- 安装基本工具:
sudo dnf install htop iotop iftop sysstat -y
- 启用
sysstat
(sar)数据收集:编辑/etc/sysconfig/sysstat
,设置HISTORY=7
(保留7天),启动服务sudo systemctl enable --now sysstat
。 - 配置
logrotate
:确保/etc/logrotate.conf
及/etc/logrotate.d/
下配置合理,定期轮转压缩日志,防止磁盘占满。 - (可选) 配置集中日志: 如安装
rsyslog
并配置转发到中央日志服务器。
- 安装基本工具:
测试与验证:
- 连通性测试: 从管理机使用新端口和密钥成功SSH登录服务器。
- 服务状态检查:
systemctl status firewalld chronyd sshd fail2ban
确认关键服务运行正常。 - 防火墙测试: 尝试访问未开放端口(如
telnet server_ip 22
– 原SSH端口或80
)应被拒绝,访问开放的新SSH端口(2222
)应成功。 - Fail2ban测试: 故意使用错误密码尝试SSH登录超过5次,验证该IP是否被
fail2ban-client status sshd
列出并在iptables -nL
或firewall-cmd --list-all
中看到相应DROP规则。 - 性能基准 (简要):
dd
测试磁盘顺序写:dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct
(注意:此命令会创建1GB文件,在数据盘目录执行),观察速度是否符合预期(SSD RAID1应远快于HDD RAID10)。iperf3
测试网络带宽(需另一台机器作为服务端)。sysbench
进行简单的CPU(cpu run
)、内存(memory run
)、文件IO(fileio run
)测试(需安装sysbench
)。
- 资源监控: 使用
htop
,free -h
,df -h
,sar -u 1 5
等命令观察CPU、内存、磁盘、网络使用情况,确认无异常。
实验结果与分析:
- 成功构建稳定基础平台: 服务器硬件状态良好,固件更新至最新,CentOS Stream 9最小化系统安装完成,关键服务运行正常。
- 存储性能与冗余达成: RAID 1为系统盘提供冗余保障;RAID 10为未来数据盘提供了良好的I/O性能和故障容忍能力,初步
dd
测试显示SSD顺序写入速度约400MB/s+,SAS HDD RAID10约200MB/s+,符合预期。 - 网络与安全加固有效:
- 静态IP、NTP配置正确,时间同步精确。
- SSH端口更改、密钥认证、禁用root登录、Fail2ban部署显著提升了远程访问安全性,防火墙默认DROP策略有效阻止了非授权访问。
- SELinux保持Enforcing模式,提供强制访问控制层。
- 系统性能初步优化: 内核参数调整(网络队列、虚拟内存管理、文件句柄)为应对高并发和大量连接做了准备,禁用不必要服务释放了资源。
- 监控基础就绪:
sysstat
启用,htop
等工具可用,为后续性能分析和故障排查打下基础。
总结与建议:
本次实验完成了生产级Linux服务器的基础配置,重点涵盖了硬件初始化、存储规划、操作系统安装、系统性能调优、核心安全加固(网络、访问、审计)以及基础监控设置,配置过程严格遵循最小权限原则和纵深防御策略。
- 后续建议:
- 应用部署: 根据实际业务需求(Web服务器Nginx/Apache、数据库MySQL/PostgreSQL等),安装配置相应软件,并务必将数据目录挂载到独立的RAID 10数据卷(
VD2
)上。 - 备份策略: 立即制定并实施系统配置和数据的备份方案(如
rsync
,Bacula
, 存储快照等),RAID不是备份! - 深入监控告警: 部署更强大的监控系统(如Prometheus+Grafana, Zabbix)和日志分析平台(如ELK Stack),配置阈值告警。
- 定期维护: 建立补丁更新、安全审计(如
lynis
扫描)、配置复查、备份恢复测试的定期流程。 - 高可用考虑: 对于关键业务,需规划集群(如Pacemaker/Corosync)、负载均衡等方案,超越单机可靠性限制。
- 应用部署: 根据实际业务需求(Web服务器Nginx/Apache、数据库MySQL/PostgreSQL等),安装配置相应软件,并务必将数据目录挂载到独立的RAID 10数据卷(
此配置为通用生产服务器提供了坚实的基础,实际部署中需紧密结合具体应用负载特性进行更精细化的调优(如数据库内核参数、Web服务器并发连接数等)。
引用说明:
- CentOS Project. CentOS Stream Documentation. https://docs.centos.org
- Red Hat, Inc. Red Hat Enterprise Linux Documentation (作为CentOS Stream上游参考). https://access.redhat.com/documentation
- Dell Technologies. Dell EMC PowerEdge R750 Technical Guide. https://www.dell.com/support
- National Institute of Standards and Technology (NIST). NIST Special Publication 800-123: Guide to General Server Security. https://csrc.nist.gov/publications
sysctl
parameters: Kernel documentation (man sysctl
,/usr/share/doc/kernel-doc-*/Documentation/sysctl/
) & performance tuning guides (e.g., from Red Hat, Oracle).fail2ban
Official Documentation. https://www.fail2ban.orgfirewalld
Documentation. https://firewalld.org/documentation/
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8334.html