运维专题1——服务器标准初始化流程
文章目录
- v1 登录管理
- v1-1 专用运维账号
- 禁用Root远程登录
- 配置sodu权限
- v1-2 SSH服务配置
- v1-3 清理无用账户
- v2 基础配置
- v2-1 时区时间
- 设置系统时区
- 配置NTP时间同步
- v2-2 主机名
- 设置主机名
- 更新/etc/hosts文件
- v3 安全配置
- v3-1 防火墙及安全配置
- 配置主机防火墙
- SELinux/AppArmor配置
- 文件权限加固
- 登录安全配置
- 内核参数安全加固(谨慎操作)
- 系统审计配置
- v4 自动化脚本
v1 登录管理
v1-1 专用运维账号
- 运维账号(如
ops):赋予sudo权限,供工程师日常巡检与排错。 - 应用账号(如
appuser):运行应用进程,通常不赋予sudo,甚至可设为 nologin。
# 创建运维账号并设置密码useradd-m-s/bin/bash opspasswdops# 创建应用账号 (无交互登录)useradd-r-s/sbin/nologin appuser禁用Root远程登录
# 备份原配置文件sudocp/etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date+%Y%m%d)# 编辑SSH配置文件sudovim/etc/ssh/sshd_config# 修改以下参数PermitRootLogin no PasswordAuthentication no配置sodu权限
# 为运维账号设置 sudo,需密码,仅允许必要的系统管理命令cat>/etc/sudoers.d/ops<<'EOF' # 允许 ops 执行用户管理、服务管理和查看日志 ops ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl, /usr/bin/passwd, /usr/sbin/useradd, /usr/sbin/usermod # 允许免密码重启服务 (示例) ops ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart app* EOFchmod440/etc/sudoers.d/opsv1-2 SSH服务配置
安全加固项包括:
- 禁止 root 登录
- 仅允许协议 2
- 关闭密码认证,启用密钥认证
- 禁止空密码
- 限制允许的用户/组
- 关闭 DNS 反解(加速连接,降低依赖风险)
- 设置会话超时
- 降低认证尝试次数
配置示例:
Protocol2Port22# 如业务需要可修改,但必须在云防火墙放行PermitRootLogin no PubkeyAuthenticationyesPasswordAuthentication no PermitEmptyPasswords no AllowUsers ops# 仅允许 ops 用户SSH登录MaxAuthTries3MaxSessions5ClientAliveInterval300ClientAliveCountMax0UseDNS no X11Forwarding no#最后重启服务systemctl restart sshdv1-3 清理无用账户
# 查看系统账户cat/etc/passwd|grep-E'/bin/bash|/bin/sh'# 删除不必要的系统账户(谨慎操作)sudouserdel-rgamessudouserdel-rftpsudouserdel-rnews# 查看并清理无用用户组cat/etc/groupsudogroupdelgamessudogroupdelftpv2 基础配置
v2-1 时区时间
设置系统时区
# 查看当前时区timedatectl# 设置为Asia/Shanghai时区sudotimedatectl set-timezone Asia/Shanghai# 验证时区设置timedatectl|grep"Time zone"配置NTP时间同步
# CentOS/RHEL 8+sudodnfinstallchrony-ysudosystemctlenablechronydsudosystemctl start chronyd# 配置NTP服务器(编辑配置文件)sudovim/etc/chrony.conf# 添加或修改以下行server ntp.aliyun.com iburst server ntp1.aliyun.com iburst server ntp2.aliyun.com iburst# 重启服务sudosystemctl restart chronyd# 检查同步状态chronyc tracking chronyc sources-v# Debian/Ubuntusudoaptupdatesudoaptinstallntp-ysudovim/etc/ntp.conf# 添加NTP服务器# server ntp.aliyun.comsudosystemctl restart ntp ntpq-pv2-2 主机名
设置主机名
# 查看当前主机名hostnamectl# 设置主机名(格式建议:环境-业务-序号,如 prod-web-01)sudohostnamectl set-hostname prod-app-01# 验证设置hostnamectl使用cloud-init的云镜像,若希望实例重启不重置主机名,需配置:
# 修改 /etc/cloud/cloud.cfgpreserve_hostname:true更新/etc/hosts文件
# 备份原hosts文件sudocp/etc/hosts /etc/hosts.bak# 编辑hosts文件sudovim/etc/hosts# 添加以下内容(替换为实际IP和主机名)127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.100 prod-app-01.prod.local prod-app-01# 验证解析ping-c2prod-app-01v3 安全配置
v3-1 防火墙及安全配置
配置主机防火墙
# CentOS firewalld 示例systemctlenablefirewalld--nowfirewall-cmd--permanent--add-service=ssh firewall-cmd--permanent--add-port=8080/tcp# 应用端口firewall-cmd--reload# 查看防火墙状态firewall-cmd --list-all#Ubuntu 可使用 ufw:aptinstallufw-yufw default deny incoming ufw default allow outgoing ufw allow22/tcp ufw allow8080/tcp ufwenableufw status verboseSELinux/AppArmor配置
# CentOS/RHEL - SELinux配置# 查看当前状态getenforce# 设置为enforcing模式(推荐)setenforce1vim/etc/selinux/config# 修改为 SELINUX=enforcing# 查看SELinux策略sestatus# Debian/Ubuntu - AppArmor配置systemctlenableapparmor systemctl start apparmor文件权限加固
# 修复关键文件权限chmod644/etc/passwdchmod640/etc/shadowchmod644/etc/groupchmod640/etc/gshadowchmod600/etc/ssh/sshd_configchmod644/etc/hostschmod644/etc/resolv.conf# 检查SUID/SGID文件find/-perm-4000-o-perm-2000-typef2>/dev/null# 移除不必要的SUID权限chmodu-s /usr/bin/chfnchmodu-s /usr/bin/chsh登录安全配置
配置示例(仅供参考):
# 配置PAM密码策略vim/etc/security/pwquality.conf# 添加或修改以下参数minlen=12dcredit=-1ucredit=-1lcredit=-1ocredit=-1minclass=4maxrepeat=3maxsequence=3dictcheck=1# 配置账户锁定策略vim/etc/pam.d/system-auth# CentOS/RHEL# 或vim/etc/pam.d/common-auth# Debian/Ubuntu# 添加以下行auth required pam_faillock.so preauth silent auditdeny=5unlock_time=900auth[default=die]pam_faillock.so authfail auditdeny=5unlock_time=900account required pam_faillock.so# 配置登录超时vim/etc/profile.d/timeout.sh# 添加以下内容TMOUT=900readonlyTMOUTexportTMOUTchmod+x /etc/profile.d/timeout.sh内核参数安全加固(谨慎操作)
创建/etc/sysctl.d/99-security.conf并加载:
# 开启 SYN Cookie,防御 SYN Floodnet.ipv4.tcp_syncookies=1# 不响应 ICMP 重定向net.ipv4.conf.all.accept_redirects=0net.ipv6.conf.all.accept_redirects=0# 禁止 IP 源路由net.ipv4.conf.all.accept_source_route=0# 开启反向路径过滤(防 IP 欺骗)net.ipv4.conf.all.rp_filter=1# 记录有异常包net.ipv4.conf.all.log_martians=1系统审计配置
# 安装审计工具# CentOS/RHELyuminstallaudit-y# Debian/Ubuntuaptinstallauditd-y# 启用审计服务systemctlenableauditd systemctl start auditd# 配置审计规则(监控关键文件和操作)vim/etc/audit/rules.d/audit.rules# 添加以下规则-w/etc/passwd-pwa-kidentity-w/etc/shadow-pwa-kidentity-w/etc/group-pwa-kidentity-w/etc/sudoers-pwa-kidentity-w/etc/ssh/sshd_config-pwa-ksshd-aalways,exit-Farch=b64-Sexecve-kexec-aalways,exit-Farch=b32-Sexecve-kexec-w/var/log/-pwa-klogs# 重启审计服务systemctl restart auditd# 查看审计日志ausearch-kidentity aureport-auv4 自动化脚本
二期专题待更新中…
