Linux系统如何加固_完整流程拆解让问题迎刃而解【技巧】

发布时间 - 2025-12-24 00:00:00    点击率:
Linux系统加固围绕“收缩攻击面+收紧访问控制+强化身份验证”三主线展开,涵盖账号口令、SSH服务、端口服务、权限审计四步实战操作,强调逐项验证而非堆砌命令。

Linux系统加固不是堆砌命令,而是围绕“收缩攻击面+收紧访问控制+强化身份验证”三根主线展开的系统性操作。核心目标是:让系统只做该做的事,只让该进的人进,只用最必要的东西。下面按实战逻辑分步拆解,每一步都可直接落地。

账号与口令:从源头掐断弱入口

默认账户和弱密码是入侵第一跳板,必须优先清理:

  • 删或锁无用账号:用 userdel -r username 彻底删除(如 ftp、games、sync),或用 passwd -l username 锁定临时禁用
  • 查高危账号:运行 awk -F: '($2=="")' /etc/shadow 找空口令;用 awk -F: '($3==0)' /etc/passwd 确认 UID=0 的只有 root
  • 设强策略:编辑 /etc/login.defs,至少配置 PASS_MAX_DAYS 90PASS_MIN_LEN 12PASS_WARN_AGE 7;再通过 /etc/security/pwquality.conf 加入 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1,强制大小写+数字+特殊字符
  • 防暴力爆破:在 /etc/pam.d/system-auth 中添加 auth [default=die] pam_faillock.so preauth silent deny=5 unlock_time=900,输错5次锁9分钟

SSH服务:远程登录的唯一正门必须上三把锁

绝大多数入侵始于 SSH,它不能只靠改端口应付:

  • 禁 root 登录:修改 /etc/ssh/sshd_config,设 PermitRootLogin no
  • 禁密码登录:设 PasswordAuthentication noPubkeyAuthentication yes,并确保密钥权限为 600
  • 改端口+限IP(可选但推荐):设 Port 2222,再配合防火墙仅放行运维IP段,例如 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="2222" protocol="tcp" accept'
  • 重启生效:systemctl restart sshd

服务与端口:关掉所有不亮的灯

每个监听端口都是潜在后门,宁可少开,不可多留:

  • 查当前监听:ss -tulnnetstat -tuln,重点关注非业务必需端口(如 21/ftp、23/telnet、111/rpcbind、2049/nfs)
  • 停并禁用服务:systemctl stop rpcbind && systemctl disable rpcbind;对旧系统用 chkconfig rpcbind off
  • 检查 xinetd/inetd:编辑 /etc/xinetd.d/*/etc/inetd.conf,注释掉不用服务
  • 确认启动项干净:systemctl list-unit-files --state=enabled | grep -E "(ftp|telnet|nfs|rsh)"

权限与审计:让系统自己盯紧自己

权限失控和日志缺失等于给攻击者发通行证:

  • 限制 sudo 权限:用 visudo 编辑,避免 %wheel ALL=(ALL) NOPASSWD:ALL 这类宽泛授权,改为 adminuser ALL=(root) /usr/bin/systemctl restart nginx, /usr/bin/journalctl 等精确命令
  • 规范文件权限:对敏感文件执行 chmod 600 /etc/shadowchmod 644 /etc/passwd;设默认 umask 为 027(在 /etc/bashrc/etc/profile 中加 umask 027
  • 启用审计:启动 auditd 服务,往 /etc/audit/rules.d/local.rules 加规则,例如 -w /etc/passwd -p wa -k identity,监控关键文件变更
  • 装 AIDE 做完整性校验:yum install aide && aide --init && cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz,之后定期 aide --check

基本上就这些。不需要一步到位,建议按顺序逐项验证——先清账号、再锁 SSH、接着关服务、最后配审计。每次改完都用 ss -tulnlastb 快速复核,比盲目堆命令更可靠。


# linux  # word  # nginx  # 防火墙  # 端口  # ai  # linux系统  # red  # die  #   # var  # default  # ssh  # 的人  # 身份验证  # 访问控制  # 都是  # 不需要  # 这类  # 可选  # 可直接  # 而非  # 都用 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Java解压缩zip - 解压缩多个文件或文件夹实例  昵图网官网入口 昵图网素材平台官方入口  如何用好域名打造高点击率的自主建站?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  如何打造高效商业网站?建站目的决定转化率  jQuery 常见小例汇总  js实现获取鼠标当前的位置  千库网官网入口推荐 千库网设计创意平台入口  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何在云主机上快速搭建多站点网站?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  智能起名网站制作软件有哪些,制作logo的软件?  如何在宝塔面板中创建新站点?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  高防服务器租用指南:配置选择与快速部署攻略  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  jQuery中的100个技巧汇总  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Python文件操作最佳实践_稳定性说明【指导】  Android中AutoCompleteTextView自动提示  Swift中switch语句区间和元组模式匹配  如何选择PHP开源工具快速搭建网站?  如何用虚拟主机快速搭建网站?详细步骤解析  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Laravel如何处理和验证JSON类型的数据库字段  JavaScript实现Fly Bird小游戏  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  深圳网站制作平台,深圳市做网站好的公司有哪些?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel怎么实现验证码(Captcha)功能  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何生成URL和重定向?(路由助手函数)  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  简单实现Android验证码  Laravel如何实现模型的全局作用域?(Global Scope示例)  iOS中将个别页面强制横屏其他页面竖屏  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全