配置hosts.allow和hosts.deny 控制登陆

本文介绍如何通过修改hosts.allow和hosts.deny文件来控制特定IP地址对Linux服务器的SSH远程访问权限,包括允许和禁止访问的具体操作步骤。

对于 Linux 安全性,我们以前视频中 演示了Linux自带防火墙 iptables的配置。

其实还有其他办法来提高Linux安全性,例如 修改 hosts.allow , hosts.deny

这2个文件来配置 允许某个ip访问 , 或者禁止访问。

通常我们设置限制 sshd 的远程访问,

下面演示一下:

只允许某个ip通过sshd 远程登录管理服务器。

hosts.allow , hosts.deny 这2个文件在 /etc 目录下,

我使用 CentOS5.1 Linux 来演示一下,其实适用很多版本的 Linux 吧。

首先修改 /etc/hosts.deny

加入  sshd:all 表示禁止所有ip访问 sshd 这个进程吧,这样理解

刚才远程登录出现了问题,好修改完,保存退出。

是吧,如果你现在 重新远程登录就会发现无法登陆上去了。

那么我们还要修改 hosts.allow  允许我们自己的ip登陆上去,现在没有办法了,
只能在主机上登录上去修改。

xp 下: cmd->ipconfig

Ethernet adapter 本地连接:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.2

查看本机ip: 192.168.1.2

然后修改 /etc/hosts.allow 
加入 sshd:192.168.1.2 保存退出。

现在我们再试一下  通过 sshd 远程登录是否成功。

现在可以成功登陆了。
----------------------------
 /etc/hosts.allow 
加入 sshd:192.168.1.2

修改 /etc/hosts.deny
加入  sshd:all

表示 只允许 ip为 192.168.1.2 登陆到sshd

====================================

如果禁止某个ip访问呢 ?

其实也很简单,看我演示一下, 好了,我首先把刚才的全部去掉。。。

现在来修改  /etc/hosts.deny

修改 /etc/hosts.deny
加入  sshd:192.168.1.2

这样就禁止了 192.168.1.2 远程访问 sshd进程了,

这个限制 sshd 访问,我觉得还是挺方便的,比起如果通过修改 iptables Linux 自带防火墙

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29065182/viewspace-1162565/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29065182/viewspace-1162565/

### 麒麟操作系统中缺少 `hosts.allow` `hosts.deny` 文件的原因 在某些版本的麒麟操作系统以及其他现代Linux发行版中,可能不再依赖传统的 `/etc/hosts.allow` `/etc/hosts.deny` 文件来管理主机访问控制。这主要是因为这些系统采用了更先进的网络安全机制服务守护进程。 #### 原因分析 1. **默认安全策略** 许多现代Linux发行版,默认的安全策略更加严格,内置防火墙其他网络防护措施能够提供更强的安全保障[^1]。 2. **服务启动方式的变化** 新的服务管理初始化工具如 systemd 取代了传统 init 系统,在这种环境下,一些旧式的配置文件逐渐被淘汰或被新的配置手段所取代[^2]。 3. **TCP Wrappers 的弃用趋势** TCP Wrappers 是早期用于实现基于 IP 地址过滤的一种技术,随着 iptables、firewalld 等更为灵活高效的包过滤框架的发展,其重要性使用频率有所下降[^3]。 --- ### 替代方案 对于希望继续实施类似的访问控制功能,可以在麒麟操作系统上采用如下几种替代方法: #### 使用 Iptables 或 Firewalld 进行流量控制 Iptables firewalld 提供了强大的包过滤能力,可以通过定义规则集来精确地控制哪些源地址可以访问特定端口上的服务。 ##### 示例:使用iptables阻止SSH连接来自某个网段 ```bash sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j DROP ``` 此命令将拒绝来自192.168.0.0/24子网的所有尝试通过SSH协议建立的新连接请求。 #### 利用 PAM (Pluggable Authentication Modules) PAM模块允许管理员自定义认证流程中的各个阶段行为,从而达到限制登录的目的。例如,可以通过编辑 `/etc/pam.d/sshd` 来集成额外的身份验证逻辑或者条件判断语句。 #### SSHD 自身配置选项 OpenSSH服务器本身也提供了丰富的参数用来定制化接入权限。比如可以直接在SSHD配置文件(`/etc/ssh/sshd_config`)里指定允许或不允许哪个范围内的客户端发起连接。 ##### 修改sshd_config示例: ```bash AllowUsers user@192.168.1.* DenyHosts 172.16.*.* ``` 上述两行分别表示只允许来自192.168.1.x网段内用户的SSH登陆以及完全屏蔽整个172.16.x.x网段的机器进行任何类型的SSH通信尝试。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值