CentOS 最小化安装 NTP 服务器搭建指南

CentOS 最小化安装  NTP 服务器搭建指南
一、概述为什么选择最小化安装优势说明干净剔除 GUI、浏览器、文件管理器、开发工具链攻击面小安全没有 FTP / Samba / Web / 数据库等额外服务漏洞暴露面极低低资源仅核心组件内存占用 256MB适合长期运行的 NTP 服务专用完全贴合“一台机器只做一件事”的运维理念✅ 默认包含Linux 内核、Bash Shell、systemd文件系统工具ext4 / xfs / 挂载管理网卡驱动、IP 协议栈TCP / UDPyum包管理器、rsyslog日志以下命令默认可用ip、ping、curl、ssh、systemctl⚠️ 常见陷阱ifconfig、netstat、vim、wget、lsof不在最小化安装中这些属于 net-tools/vim-enhanced/wget 包需手动安装。替代命令ip addr 代替 ifconfigss 代替 netstat。❌ 默认不包含分类被移除的组件桌面环境GUI、浏览器、文件管理器开发工具链gcc、make、调试工具额外服务FTP、Samba、HTTPD、MySQL第三方软件无预装软件包二、安装后初始化检查1. 查看 CPU 架构 系统版本uname-m# x86_64 / aarch64cat/etc/redhat-release# CentOS 版本号cat/proc/cpuinfo|grepmodel name# CPU 型号free-h# 内存大小df-h# 磁盘空间2. 如果还没有 IP最小化安装后网卡可能未激活先检查当前网络状态ipaddr# 查看所有网卡及 IP最小化自带nmcli device status# 查看网卡是否被 NetworkManager 管理如果网卡没有 IP二选一获取# 方案 Adhclient 直接获取注意指定网卡名否则可能和 NM 冲突dhclient ens33# 替换 ens33 为实际网卡名# 方案 B用 NetworkManager 获取推荐不会冲突nmcli device connect ens33 nmcli connection up ens33⚠️ 注意不要裸跑 dhclient不指定网卡它会尝试接管所有网卡可能和 NetworkManager 冲突导致路由混乱。始终指定网卡名dhclient 网卡名。三、网络配置 —— 设置静态 IP3 种方法⚠️ 前置先执行 ip addr 或 nmcli connection show 确认网卡名常见ens33 / eth0 / enp0s3以下所有 ens33 替换为你的实际网卡名。规划参数按实际情况修改参数示例值说明IP 地址192.168.1.100确保不与现有设备冲突子网掩码/24255.255.255.0网关192.168.1.1通常为路由器地址DNS223.5.5.5、119.29.29.29国内推荐阿里 / 腾讯 DNS方法一nmcli推荐CentOS 7/8/9 通用# 一键修改替换 ens33 为实际网卡名nmcli connection modify ens33\ipv4.addresses192.168.1.100/24\ipv4.gateway192.168.1.1\ipv4.dns223.5.5.5,119.29.29.29\ipv4.method manual\connection.autoconnectyes\ipv4.ignore-auto-dnsyes# 重载生效nmcli connection up ens33参数作用ipv4.method manual关闭 DHCP可用静态 IPconnection.autoconnect yes开机自动连接ipv4.ignore-auto-dns yes禁止 DHCP 覆盖手动设置的 DNS方法二nmtui交互式适合新手备选nmtui-edit ens33# 直接编辑指定连接# 或者nmtui# 进入 TUI 菜单 → Edit a connection在 TUI 界面中IPv4 CONFIGURATION →Manual→ 填入 Addresses / Gateway / DNS → OK → Back → Quit。修改后自动生效。方法三配置文件CentOS 7 可用8/9 仅兼容不推荐# 备份必做cp/etc/sysconfig/network-scripts/ifcfg-ens33{,.bak}# 编辑vi/etc/sysconfig/network-scripts/ifcfg-ens33完整模板TYPEEthernetNAMEens33DEVICEens33ONBOOTyes# 开机自启BOOTPROTOstatic# 静态模式NM_CONTROLLEDyes# 让 NetworkManager 管理此连接IPADDR192.168.1.100PREFIX24# 等价 NETMASK255.255.255.0GATEWAY192.168.1.1DNS1223.5.5.5DNS2119.29.29.29DEFROUTEyesIPV4_FAILURE_FATALnoIPV6INITno# 不需要 IPv6 则关闭⚠️ 关键参数 NM_CONTROLLEDCentOS 7 默认由 NetworkManager 管理网络。如果配置文件中缺少 NM_CONTROLLEDyesNetworkManager 可能会忽略该配置文件导致静态 IP 不生效。# 重启生效systemctl restart network# CentOS 7nmcli connection reload\nmcli connection up ens33# CentOS 8 / 9验证静态 IPipaddr show ens33# 查看 IP 是否已变ping-c3192.168.1.1# 测试网关ping-c3223.5.5.5# 测试 DNS 服务器ping-c3baidu.com# 测试域名解析版本差异速查版本网络管理推荐方法CentOS 7network NetworkManagernmcli 或配置文件均可CentOS 8 / 9 Stream仅 NetworkManager废弃network服务必须用 nmcli四、系统更新 基础工具安装1. 更新系统yum update-y2. 安装常用工具最小化安装缺失的yuminstall-y\vim-enhanced\wget\curl\net-tools\lsof\bash-completion\epel-release3. 验证网络连通性ping-c38.8.8.8curl-Ihttps://www.baidu.com五、配置 YUM / EPEL 源1. 备份原配置cp/etc/yum.repos.d/CentOS-Base.repo{,.bak}2. 替换为阿里云镜像源CentOS 7 示例wget-O/etc/yum.repos.d/CentOS-Base.repo\https://mirrors.aliyun.com/repo/Centos-7.repo3. 清理并重建缓存yum clean all yum makecache4. 安装 EPEL 扩展源yuminstall-yepel-release六、防火墙按端口开放推荐 vs 直接关闭1. 查看防火墙状态systemctl status firewalld firewall-cmd--state2. 方案 A按需开放端口推荐# 开放 SSH默认 22firewall-cmd--permanent--add-servicessh# 开放 NTPUDP 123firewall-cmd--permanent--add-servicentp# 重载生效firewall-cmd--reload# 查看已开放firewall-cmd --list-all3. 方案 B临时关闭调试用systemctl stop firewalld systemctl disable firewalld4. 方案 C完全禁用生产环境不推荐systemctl mask firewalld七、SELinux 处理CentOS 最小化安装默认启用 SELinuxEnforcing。NTP 服务可能因 SELinux 策略限制而无法正常工作如读取自定义配置文件、绑定非标准端口等。查看当前状态getenforce# 输出 Enforcing / Permissive / Disabledsestatus# 详细信息方案 A仅放行 NTP✅ 推荐# 查看 NTP 相关的 SELinux 布尔值getsebool-a|grepntp# 允许 NTP 服务写日志和自定义配置setsebool-Pntp_disable_trans0方案 B设为 Permissive记录但不拦截setenforce0# 临时设为 Permissive重启失效# 永久修改sed-is/^SELINUXenforcing/SELINUXpermissive//etc/selinux/config方案 C完全关闭⚠️ 不推荐除非排查sed-is/^SELINUXenforcing/SELINUXdisabled//etc/selinux/config# 需重启生效或执行 setenforce 0 临时关闭⚠️ 警告禁用 SELinux 会显著降低系统安全性。仅在确认 NTP 相关 AVC 拒绝日志ausearch -m avc -ts recent且无法通过策略修复时才考虑方案 B 或 C。八、SSH 安全加固最小化安装后 SSH 服务通常默认运行。默认配置不够安全建议加固。确认 SSH 服务状态systemctl status sshd# 查看状态systemctlenablesshd# 开机自启systemctl start sshd# 启动如未运行安全加固配置# 备份原配置cp/etc/ssh/sshd_config{,.bak}# 编辑配置文件vi/etc/ssh/sshd_config建议修改的参数参数建议值说明PermitRootLoginno禁止 root 直接 SSH 登录PasswordAuthenticationno禁用密码登录仅允许密钥配置好密钥后再改Port改 22 端口如2222减少暴力扫描MaxAuthTries3最大尝试次数ClientAliveInterval3005 分钟无操作发送心跳防止僵死连接# 修改后重启 SSH 服务systemctl restart sshd⚠️ 重要在关闭 PasswordAuthentication 之前务必先配置好 SSH 密钥登录并验证可用否则会把自己锁在外面建议保留一个已登录的会话窗口作为后备。九、时区设置 硬件时钟同步9.1 查看当前时区timedatectl status# 当前时区、NTP 同步状态ls-l/etc/localtime# 查看时区文件链接9.2 设为 UTC8中国标准时间timedatectl list-timezones|grepShanghai# 确认时区名存在timedatectl set-timezone Asia/Shanghai# 设置时区timedatectl status# 验证应显示 CST, 0800date# 验证当前时间 提示修改时区即时生效无需重启。时区文件路径/usr/share/zoneinfo/。如果是较老的系统不支持 timedatectl可手动链接ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。9.3 硬件时钟同步硬件时钟RTC与系统时间是两套独立的时间。建议硬件时钟使用 UTC系统时间通过 NTP 同步。hwclock--show# 查看硬件时钟timedatectl set-local-rtc0# 硬件时钟使用 UTC0UTC, 1本地时间同步方向命令场景硬件 → 系统hwclock -s–hctosys系统时间乱了以硬件为准恢复系统 → 硬件hwclock -w–systohcNTP 同步完成后把准确时间写入硬件⚠️ 建议NTP 服务配置好、系统时间同步准确后再执行 hwclock -w 写入硬件时钟。不要在 NTP 同步前执行 hwclock -s否则可能用错误的硬件时钟覆盖系统时间。十、NTP 服务端配置核心章节以下配置适用于CentOS 7使用 ntp 包。CentOS 8 推荐使用 chrony见 第十一章。10.1 安装 NTP 服务yuminstall-yntp# 安装 NTP 服务端systemctlenablentpd# 开机自启10.2 备份并编辑配置cp/etc/ntp.conf{,.bak}vi/etc/ntp.conf10.3 完整配置模板# 上游时间服务器 # 国内推荐阿里云 NTP低延迟、高可用server ntp.aliyun.com iburst server ntp1.aliyun.com iburst server ntp2.aliyun.com iburst# 备选ntp.org 公共池国外服务器延迟较高# server 0.cn.pool.ntp.org iburst# server 1.cn.pool.ntp.org iburst# 访问控制 # 禁止所有外部修改本机时间restrict default kod nomodify notrap nopeer noquery restrict-6default kod nomodify notrap nopeer noquery# 允许本机完全访问restrict127.0.0.1 restrict ::1# 允许局域网客户端同步按需修改网段restrict192.168.1.0 mask255.255.255.0 nomodify notrap# 日志 漂移文件 driftfile /var/lib/ntp/drift logfile /var/log/ntp.log10.4 restrict 参数说明参数含义kod收到异常请求时发送 Kiss-of-Death 包nomodify禁止客户端修改本机 NTP 配置notrap禁止 NTP 控制消息nopeer禁止与本机建立对等关系noquery禁止ntpq/ntpdc查询仅时间同步iburst服务启动时快速完成初始同步8 个包代替 1 个⚠️ 重要restrict