Linux安全配置误区总结_常见错误规避技巧【教程】

发布时间 - 2025-12-29 00:00:00    点击率:
必须禁用root弱口令、定期更新防火墙规则、关闭SSH密码登录、为/tmp挂载noexec/nosuid选项。管理员常忽视配置与实际运行态的持续对齐,导致安全策略形同虚设。

root密码设成123456或空密码

很多管理员在初始化系统后,为图省事把 root 密码设成弱口令,甚至留空。这等于给攻击者直接开后门——只要能连上 SSH 或本地终端,就能立刻获得最高权限。

  • 检查方式:
    sudo grep 'root:' /etc/shadow | cut -d: -f2
    若输出为 *! 或为空,说明密码被锁定或未设置;若是一串短哈希(如 $1$...),需用工具验证强度
  • 强制启用强密码策略:安装 pam_pwquality,并在 /etc/pam.d/common-password 中确保有 password requisite pam_pwquality.so retry=3 minlen=12 difok=3
  • 更安全的做法是禁用 root 密码登录,改用密钥+普通用户提权:
    PermitRootLogin no
    加入 /etc/ssh/sshd_config,再用 sudo 控制权限边界

firewalld或iptables规则长期不更新

刚装系统时配了一套防火墙规则,之后几年从不 review,这是典型“一次配置,永久遗忘”。新服务上线、端口变更、内网拓扑调整都会让旧规则失效甚至起反作用。

  • 定期导出当前规则比对:
    sudo firewall-cmd --list-all
    sudo iptables -L -n -v
    ,重点关注 INPUT 链中是否开放了 2280443 以外的端口
  • 避免无条件放行内网:source zone: internal 不等于安全,内部网段若存在失陷主机,会绕过所有外网限制
  • 临时调试后忘记关闭端口很常见:用 firewall-cmd --remove-port=8080/tcp --permanent 清理残留,再 firewall-cmd --reload

SSH默认端口22 + 密码登录长期开启

暴露 22 端口在公网等于每天接收数万次暴力破解请求。即便密码够强,高频尝试也会触发 PAM 锁定机制,反而导致合法用户被踢出。

  • 改端口只是基础项,真正有效的是禁用密码登录:
    PasswordAuthentication no
    PubkeyAuthentication yes
    必须同时生效
  • 密钥必须带密码短语(passphrase),否则私钥文件一旦泄露即等同于密码泄露
  • 限制可登录用户范围比改端口更重要:
    AllowUsers deploy@192.168.1.* admin@2001:db8::/64
    可精确到 IP 段和用户名

/tmp 目录未挂载 noexec,nosuid

/tmp 是攻击链常用跳板:上传恶意二进制、构造 LD_PRELOAD、利用 world-writable 目录提权。默认挂载几乎都不加安全选项。

  • 检查当前挂载参数:
    mount | grep ' /tmp '
    ,若没看到 noexec,nosuid,nodev 就存在风险
  • 临时挂载(重启失效):
    sudo mount -o remount,noexec,nosuid,nodev /tmp
  • 永久生效需改 /etc/fstab 对应行,例如:
    tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G 0 0
    ;注意不要影响依赖 /tmp 写临时文件的服务(如某些 Java 应用)

实际运维中,最常被忽略的是规则与现实的脱节——比如防火墙放行了数据库端口,但应用早已迁走;或者 SSH 密钥轮换了,却忘了清理旧公钥。安全不是配完就结束的事,而是持续对齐配置与运行态的过程。


# linux  # word  # java  # node  # 防火墙  # 端口  # 工具 


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


相关推荐: 教你用AI将一段旋律扩展成一首完整的曲子  JavaScript如何实现路由_前端路由原理是什么  如何撰写建站申请书?关键要点有哪些?  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  高防服务器租用首荐平台,企业级优惠套餐快速部署  详解阿里云nginx服务器多站点的配置  如何在局域网内绑定自建网站域名?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Python自动化办公教程_ExcelWordPDF批量处理案例  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel如何创建自定义Facades?(详细步骤)  Android滚轮选择时间控件使用详解  三星、SK海力士获美批准:可向中国出口芯片制造设备  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  香港服务器租用费用高吗?如何避免常见误区?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  制作企业网站建设方案,怎样建设一个公司网站?  EditPlus中的正则表达式实战(5)  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  浅谈Javascript中的Label语句  如何在阿里云完成域名注册与建站?  Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel中的withCount方法怎么高效统计关联模型数量  如何快速搭建高效服务器建站系统?  Python3.6正式版新特性预览  新三国志曹操传主线渭水交兵攻略  如何基于PHP生成高效IDC网络公司建站源码?  Windows Hello人脸识别突然无法使用  js实现点击每个li节点,都弹出其文本值及修改  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何用腾讯建站主机快速创建免费网站?  如何正确选择百度移动适配建站域名?  如何用好域名打造高点击率的自主建站?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  如何在宝塔面板中创建新站点?  如何在腾讯云免费申请建站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  使用C语言编写圣诞表白程序  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  利用JavaScript实现拖拽改变元素大小