一、概述:
在Linux系统的运维工作中,我们通常采用SSH协议来连接远程服务器。为了提升企业网络和服务器本身的安全性,一个常见的做法是在服务器上配置SSH登录源IP地址的限制。具体而言,就是仅允许特定的IP地址或IP地址段通过SSH连接到服务器。限制SSH登录源IP的方法多种多样,本文将重点介绍如何通过配置host.deny文件来实现这一安全限制。
Linux 系统中通过 host.deny 限制 SSH 登录源的配置方法
在 Linux 系统中,host.deny文件是 TCP Wrapper 安全机制的重要组成部分,可通过它限制特定 IP 或 IP 段对 SSH 服务的访问,有效提升服务器安全性。以下是具体配置步骤与注意事项:
二、host.deny 的工作原理
TCP Wrapper 通过/etc/hosts.allow(允许规则)和/etc/hosts.deny(拒绝规则)控制网络服务访问,规则匹配优先级为:
- 先检查hosts.allow,匹配则允许访问;
- 若未匹配,再检查hosts.deny,匹配则拒绝访问;
- 均无匹配时,默认允许访问。
对于 SSH 服务,需确保sshd程序被 TCP Wrapper 管理(大多数 Linux 发行版默认支持)。
三、配置 host.deny 限制 SSH 登录
- 编辑 host.deny 文件
使用文本编辑器打开配置文件:
TypeScript取消自动换行复制
sudo vim /etc/hosts.deny
- 添加拒绝规则
格式:服务名: 源地址,支持多种匹配方式:
- 拒绝单个 IP:
sshd: 192.168.1.100
- 拒绝 IP 段(如 192.168.1.0/24):
sshd: 192.168.1. (简写,匹配 192.168.1.x)
或 sshd: 192.168.1.0/255.255.255.0
- 拒绝所有 IP(谨慎使用):
sshd: ALL
- 例外允许(结合 hosts.allow):
若需拒绝所有 IP 但允许特定地址,可在hosts.deny中写sshd: ALL,同时在hosts.allow中添加允许规则(如sshd: 10.0.0.5)。
- 保存生效
无需重启服务,规则立即生效。测试被拒绝的 IP 登录时,会收到类似提示: