如何在Linux中配置具体安全加固项的操作步骤
在Linux安全加固中,必须将PermitRootLogin设为no以禁用root远程登录;同时禁用密码认证并启用密钥认证;通过AllowUsers限制登录用户;防火墙策略应设为默认丢弃所有未明确允许的流量。各配置项需协同生效并逐一验证。
在Linux安全加固的众多配置中,PermitRootLogin 必须设为 no 是一项不可妥协的底线。直接允许 root 账户远程登录,等于把暴力破解的靶心暴露给攻击者——他们无需猜测普通用户名,只需集中爆破 root 密码即可,而默认情况下这个通道始终敞开。一旦设为 no,SSH 服务将直接拒绝所有以 root 身份发起的连接请求,即使输入了正确密码也无法进入。这不是简单的登录方式变更,而是彻底封堵最危险的攻击路径。

为什么必须将 PermitRootLogin 设为 no
直接允许 root 远程登录,几乎是所有暴力破解攻击的首选突破口。攻击者不必猜测普通用户名,只需专注爆破 root 密码——而默认配置下这个通道永远敞开。
设置为 no 之后,SSH 会拒绝所有以 root 身份发起的连接请求,即使密码正确也无法进入。这并非“换个方式登录”,而是从根本上阻断这条最危险的路径。
- 修改配置之前,务必先用
useradd创建一个普通用户,并通过usermod -aG sudo(Ubuntu/Debian)或usermod -aG wheel(RHEL/CentOS)赋予提权权限,否则修改后您将把自己锁在系统之外 - 修改的对象是服务器端配置文件
/etc/ssh/sshd_config,而非客户端配置;修改完成后需执行sudo systemctl restart sshd使配置生效 - 部分发行版(如 Rocky 9)默认情况下已经是
no,但不能掉以轻心——必须通过grep -i "permitrootlogin" /etc/ssh/sshd_config手动确认当前设置
PasswordAuthentication no 与 PubkeyAuthentication yes 必须联合配置
禁用密码登录的目的并非“图省事”,而是为了消除可被自动化脚本穷举的攻击面。单独设置 PasswordAuthentication no 远远不够,必须同时确保 PubkeyAuthentication yes 生效,否则所有 SSH 登录尝试都会失败。
密钥认证的核心机制是“持有私钥即证明身份”,它不依赖记忆强度、不通过网络传输密码,且无法被中间人截获或重放。
- 使用
ssh-copy-id传输公钥后,务必检查目标用户家目录下~/.ssh/authorized_keys是否成功写入,且该文件权限必须为600 - 如果选用
ed25519密钥(强烈推荐),需确认服务器 OpenSSH 版本 ≥ 6.5;较旧的系统可能仅支持rsa,但密钥长度必须 ≥ 3072 位 - 切勿忽略
StrictModes yes(默认开启)——此选项会拒绝读取组或全局可写的~/.ssh目录或authorized_keys文件,这是常见的配置失败原因
Use AllowUsers 精准控制可登录账号,而非简单添加白名单
AllowUsers 是细粒度访问控制的第一道关卡,但它的用法远不止“添加几个用户名就完事”。在生产环境中,它通常与来源 IP、shell 类型等条件组合使用。
例如,可以限制运维组只能从内网跳板机登录,或禁止某个账号使用 /bin/bash 交互式 Shell,仅允许执行固定命令。
- 语法支持
user@host格式:AllowUsers admin@192.168.10.0/24 deploy@10.0.0.5,这种写法比单纯使用用户名更能有效防范撞库攻击 - 如果配合
ForceCommand(例如限制用户只能运行备份脚本),需要确保该命令所在的路径对用户可执行,并且不会触发 Shell 初始化逻辑 - 避免与
DenyUsers同时使用——当两者逻辑冲突时,DenyUsers的优先级更高,容易意外拦截合法用户
防火墙 iptables/nftables 规则必须默认设置为 DROP
大量被入侵的服务器,其防火墙配置仅仅停留在“开放 22、80、443 端口,其余不管”的状态。这相当于锁上了大门,却把所有窗户敞开着。真正的安全加固要求:所有未明确允许的流量,默认丢弃。
这不是简单添加几条 -A INPUT -p tcp --dport 22 -j ACCEPT 就结束,而是需要从策略的起点就确定方向。
- 执行
iptables -P INPUT DROP之前,务必先插入一条允许当前 SSH 连接的规则(例如iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT),否则会立即断开连接 - nftables 用户请注意:
chain input { type filter hook input priority 0; policy drop; }才是等效的正确写法,policy accept是一个常见的默认陷阱 - 规则顺序决定了匹配结果——允许规则必须放在
DROP策略之前;使用iptables -L -n --line-numbers可以检查规则的顺序
最关键的认知在于:这些配置项并非孤立的开关,而是环环相扣的安全链条。例如,如果 PermitRootLogin no 失效,那么 PasswordAuthentication no 也就失去了保护作用;AllowUsers 格式书写错误,甚至可能导致整个 SSH 服务启动失败。每一步的验证都必须落实到具体的命令输出,而不是停留在“改过就算完成”的层面。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何用Linux查看网络数据包在内核的流向
tcpdump在链路层入口后、IP层解析前捕获,可看到MAC地址等头部;perf配合kprobe可跟踪skb在内核中的函数调用路径; proc net snmp等文件通过协议栈丢包计数反映流向瓶颈;iptablesTRACE仅在netfilter钩子打日志,不适合追踪真实流向。需交叉验证多种工具。
如何在CentOS 7中修改文件系统配额的具体操作步骤
修改XFS文件系统配额时,需先在 etc fstab挂载点启用uquota或gquota选项,然后重新挂载文件系统使配额生效。之后以xfs_quota-x专家模式为用户或组设置软硬限制。修改后务必执行report命令验证,并检查输出确保限制值已写入且用量被正确统计。
Linux查看具体硬件驱动列表的命令
在Linux系统中,查看硬件驱动列表,可使用lsmod命令查看已加载模块(但内置驱动不显示),使用lspci-k命令查看PCI设备当前驱动,使用lsusb-t命令查看USB设备驱动。需特别注意驱动与固件缺失问题,使用dmesg|grepfirmware命令可辅助排查驱动和固件缺失。
电脑0x800401f3无效类字符串系统底层报错解决
错误0x800401f3无效的类字符串,因系统找不到COM组件注册信息或权限不足导致。需先定位出错组件的ProgID,检查注册表HKEY_CLASSES_ROOT下对应项是否存在,若缺失则使用regsvr32命令重新注册对应的DLL文件,再修改ProgID及CLSID子项的权限,赋予Everyone完全控制,最后重启IIS服务或相关应用程序池使更改生效。
统信UOS更换系统图标包详细教程
统信UOS更换系统图标包可通过三种途径实现:控制中心直接切换已安装主题、手动复制图标包至用户目录并更新缓存、使用深度商店一键安装。三种方式分别适合不同技术能力的用户,均能即时生效,提升操作效率与视觉体验。
- 热门数据榜
相关攻略
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:18
2026-07-10 07:18
2026-07-10 07:18
2026-07-10 07:18
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

