文章目录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/opsEOF # 允许 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|grepTime zone配置NTP时间同步# CentOS/RHEL 8sudodnfinstallchrony-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-01sudohostnamectl 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-servicessh firewall-cmd--permanent--add-port8080/tcp# 应用端口firewall-cmd--reload# 查看防火墙状态firewall-cmd --list-all#Ubuntu 可使用 ufwaptinstallufw-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# 修改为 SELINUXenforcing# 查看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# 添加或修改以下参数minlen12dcredit-1ucredit-1lcredit-1ocredit-1minclass4maxrepeat3maxsequence3dictcheck1# 配置账户锁定策略vim/etc/pam.d/system-auth# CentOS/RHEL# 或vim/etc/pam.d/common-auth# Debian/Ubuntu# 添加以下行auth required pam_faillock.so preauth silent auditdeny5unlock_time900auth[defaultdie]pam_faillock.so authfail auditdeny5unlock_time900account required pam_faillock.so# 配置登录超时vim/etc/profile.d/timeout.sh# 添加以下内容TMOUT900readonlyTMOUTexportTMOUTchmodx /etc/profile.d/timeout.sh内核参数安全加固(谨慎操作)创建/etc/sysctl.d/99-security.conf并加载# 开启 SYN Cookie防御 SYN Floodnet.ipv4.tcp_syncookies1# 不响应 ICMP 重定向net.ipv4.conf.all.accept_redirects0net.ipv6.conf.all.accept_redirects0# 禁止 IP 源路由net.ipv4.conf.all.accept_source_route0# 开启反向路径过滤防 IP 欺骗net.ipv4.conf.all.rp_filter1# 记录有异常包net.ipv4.conf.all.log_martians1系统审计配置# 安装审计工具# 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-Farchb64-Sexecve-kexec-aalways,exit-Farchb32-Sexecve-kexec-w/var/log/-pwa-klogs# 重启审计服务systemctl restart auditd# 查看审计日志ausearch-kidentity aureport-auv4 自动化脚本二期专题待更新中…
运维专题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/opsEOF # 允许 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|grepTime zone配置NTP时间同步# CentOS/RHEL 8sudodnfinstallchrony-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-01sudohostnamectl 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-servicessh firewall-cmd--permanent--add-port8080/tcp# 应用端口firewall-cmd--reload# 查看防火墙状态firewall-cmd --list-all#Ubuntu 可使用 ufwaptinstallufw-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# 修改为 SELINUXenforcing# 查看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# 添加或修改以下参数minlen12dcredit-1ucredit-1lcredit-1ocredit-1minclass4maxrepeat3maxsequence3dictcheck1# 配置账户锁定策略vim/etc/pam.d/system-auth# CentOS/RHEL# 或vim/etc/pam.d/common-auth# Debian/Ubuntu# 添加以下行auth required pam_faillock.so preauth silent auditdeny5unlock_time900auth[defaultdie]pam_faillock.so authfail auditdeny5unlock_time900account required pam_faillock.so# 配置登录超时vim/etc/profile.d/timeout.sh# 添加以下内容TMOUT900readonlyTMOUTexportTMOUTchmodx /etc/profile.d/timeout.sh内核参数安全加固(谨慎操作)创建/etc/sysctl.d/99-security.conf并加载# 开启 SYN Cookie防御 SYN Floodnet.ipv4.tcp_syncookies1# 不响应 ICMP 重定向net.ipv4.conf.all.accept_redirects0net.ipv6.conf.all.accept_redirects0# 禁止 IP 源路由net.ipv4.conf.all.accept_source_route0# 开启反向路径过滤防 IP 欺骗net.ipv4.conf.all.rp_filter1# 记录有异常包net.ipv4.conf.all.log_martians1系统审计配置# 安装审计工具# 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-Farchb64-Sexecve-kexec-aalways,exit-Farchb32-Sexecve-kexec-w/var/log/-pwa-klogs# 重启审计服务systemctl restart auditd# 查看审计日志ausearch-kidentity aureport-auv4 自动化脚本二期专题待更新中…