CentOS 7作为基于Red Hat Enterprise Linux 7的开源衍生版,凭借其稳定性、安全性和丰富的企业级特性,成为众多服务器部署的首选操作系统,尽管CentOS 7已于2024年6月30日停止官方支持(EOL),但在实际生产环境中仍有大量服务器在运行,掌握其配置、管理及优化技巧对运维人员至关重要,本文将从系统安装、服务部署、安全加固及维护管理等方面详细介绍CentOS 7服务器的实践操作。
系统安装与基础配置
CentOS 7服务器的安装是后续操作的基础,推荐使用最小化安装以减少资源占用和潜在安全风险,安装过程中需重点关注网络配置、磁盘分区及用户权限设置。
安装方式选择
可通过ISO镜像本地安装、网络引导安装(PXE)或云平台镜像部署,本地安装时,选择“Install CentOS 7”进入图形化界面,语言、时区等默认配置即可满足多数场景,磁盘分区建议采用LVM(逻辑卷管理),便于后续动态扩容。
网络配置
服务器IP地址通常需静态配置,避免因DHCP租约导致服务中断,安装完成后,编辑/etc/sysconfig/network-scripts/ifcfg-ens33
(网卡名称可能不同),关键参数如下:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114 ONBOOT=yes
配置完成后执行systemctl restart network
使生效,并通过ping www.baidu.com
测试网络连通性。
用户与权限管理
为避免直接使用root用户,建议创建普通用户并赋予sudo权限,执行useradd admin
创建用户,passwd admin
设置密码,然后编辑/etc/sudoers
(使用visudo
命令),添加:
admin ALL=(ALL) ALL
禁用root远程登录:编辑/etc/ssh/sshd_config
,将PermitRootLogin yes
改为no
,重启SSH服务systemctl restart sshd
。
安装方式对比表
安装类型 | 适用场景 | 特点 | 推荐命令 |
---|---|---|---|
最小化安装 | 服务器、虚拟机 | 无图形界面,资源占用少 | yum groupinstall "Minimal Install" |
基础服务器安装 | 需要基础管理工具 | 包含常用命令行工具 | yum groupinstall "Base" |
图形界面安装 | 需要图形化管理 | 包含GNOME桌面,资源占用大 | yum groupinstall "GNOME Desktop" |
常用服务部署
服务器核心功能依赖于各类服务的稳定运行,以下介绍Web、数据库及FTP服务的部署方法。
Web服务(Nginx)
Nginx因其高性能、低资源占用成为主流Web服务器,安装执行:
yum install epel-release -y && yum install nginx -y
主配置文件为/etc/nginx/nginx.conf
,虚拟主机配置可放在/etc/nginx/conf.d/
目录下,例如创建www.conf
:
server { listen 80; server_name www.example.com; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } }
启动Nginx并设置开机自启:systemctl start nginx && systemctl enable nginx
,通过浏览器访问服务器IP即可测试。
数据库服务(MariaDB)
CentOS 7默认使用MariaDB替代MySQL,安装与配置如下:
yum install mariadb-server mariadb -y systemctl start mariadb && systemctl enable mariadb
执行mysql_secure_installation
进行安全配置,包括root密码设置、匿名用户删除、测试数据库删除等,创建数据库和用户:
mysql -u root -p CREATE DATABASE wordpress; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
FTP服务(vsftpd)
vsftpd是轻量级FTP服务器,安装后需配置匿名/本地用户访问:
yum install vsftpd -y systemctl start vsftpd && systemctl enable vsftpd
编辑/etc/vsftpd/vsftpd.conf
,关键参数:
anonymous_enable=NO # 禁用匿名访问 local_enable=YES # 允许本地用户 write_enable=YES # 允许写操作 chroot_local_user=YES # 限制用户主目录
重启服务并配置防火墙(见安全加固部分)。
安全加固
服务器安全是运维重点,需从防火墙、访问控制、系统更新等方面加固。
防火墙配置
CentOS 7默认使用firewalld,管理端口开放需谨慎:
firewall-cmd --permanent --add-service=http # 开放HTTP firewall-cmd --permanent --add-service=https # 开放HTTPS firewall-cmd --permanent --add-port=21/tcp # FTP端口 firewall-cmd --reload # 重新加载规则
SELinux配置
SELinux(安全增强型Linux)可强制访问控制,建议开启并配置:
getenforce # 查看状态(enforcing/permissive/disabled) setenforce 1 # 临时开启( enforcing)
永久修改需编辑/etc/selinux/config
,将SELINUX=disabled
改为SELINUX=enforcing
,重启后生效,若服务异常,可通过semanage port -a -t http_port_t -p tcp 8080
添加端口策略。
系统更新与补丁
尽管CentOS 7 EOL,但可通过第三方源获取更新(如CentOS Vault),或定期检查关键补丁:
yum update --security # 仅安装安全补丁
维护管理
日常维护包括日志监控、性能优化及数据备份,确保服务器长期稳定运行。
日志管理
系统日志默认存放在/var/log/
目录,关键日志包括:
/var/log/messages
:系统核心日志/var/log/secure
:安全认证日志/var/log/nginx/error.log
:Nginx错误日志
使用journalctl -u nginx -f
实时查看Nginx日志,或通过logrotate
工具自动切割日志(配置文件/etc/logrotate.conf
)。
性能监控
- CPU/内存:
top
或htop
(需安装yum install htop -y
)查看实时负载 - 磁盘IO:
iostat -dx 2
(安装yum install sysstat -y
) - 网络流量:
nload
或iftop
(安装yum install iftop -y
)
数据备份
采用rsync
实现增量备份,例如每日备份/data
目录到远程服务器:
rsync -avz --delete /data/ user@backup-server:/backup/data/
通过crontab -e
添加定时任务:
0 2 * * * rsync -avz --delete /data/ user@backup-server:/backup/data/
相关问答FAQs
问题1:CentOS 7已于2024年6月30日停止支持,如何安全迁移系统?
解答:迁移步骤如下:
- 评估环境:列出当前服务器安装的所有服务、依赖包及数据量,确保目标系统兼容性。
- 选择目标系统:推荐迁移至Rocky Linux、AlmaLinux(1:1兼容CentOS)或Oracle Linux,或升级至RHEL 7(需订阅)。
- 数据备份:全量备份关键数据(
tar -czf backup.tar.gz /data
)及配置文件(/etc
目录)。 - 迁移工具:使用
dnf upgrade
(若目标系统为dnf-based)或rsync
同步文件;对于复杂环境,可借助preupgrade-assistant
评估兼容性问题。 - 逐步验证:先在测试环境迁移并测试服务,确认无误后执行生产环境迁移,最后更新DNS或负载均衡配置。
问题2:CentOS 7下如何解决firewalld和iptables冲突?
解答:冲突原因在于两者均为防火墙管理工具,底层机制不同,解决方法:
- 确认状态:执行
systemctl status firewalld
和systemctl status iptables
查看当前运行的防火墙。 - 选择工具:
- 使用firewalld:停止并禁用iptables:
systemctl stop iptables && systemctl disable iptables
- 使用iptables:停止并禁用firewalld:
systemctl stop firewalld && systemctl disable firewalld
- 使用firewalld:停止并禁用iptables:
- 配置规则:若使用iptables,需手动编写规则(如
/etc/sysconfig/iptables
),执行systemctl restart iptables
使生效;firewalld则通过firewall-cmd
命令管理规则。 - 验证:通过
curl http://服务器IP
测试服务是否正常,确保防火墙规则未阻断流量。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/25364.html