!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>Linux中如何禁止特定IP或网段访问服务

Linux中如何禁止特定IP或网段访问服务

当我们需要限制某些不受欢迎的IP地址或整个网段访问Linux服务器上的服务时,可以采取多种策略。以下两种方法提供了有效的途径来实现这一目标:

方法一:通过/etc/hosts.deny文件进行访问控制

  1. 登录到服务器:首先,您需要使用具有足够权限的用户账户登录到您的Linux服务器。
  2. 编辑/etc/hosts.deny文件:使用您喜欢的文本编辑器(如vi、nano等)打开/etc/hosts.deny文件。

sudo vi /etc/hosts.deny

  1. 添加禁止规则:在文件中添加以下行以禁止特定IP或网段访问SSH服务(或其他您想要限制的服务)。请注意,这里使用的IP地址和网段是示例,您需要根据实际情况进行替换。

sshd:203.XXX.XXX.189  

sshd:203.XXX.XXX.0/24

第一行禁止了单个IP地址203.XXX.XXX.189,而第二行则禁止了整个203.XXX.XXX.0/24网段。
4. 保存并退出:保存您的更改并关闭文本编辑器。
5. 重启服务:对于某些服务(如SSH),您可能需要重启相关服务以使更改生效。但请注意,对于hosts.denyhosts.allow文件,通常不需要重启服务,更改会立即生效。然而,如果您的系统使用了xinetd来管理服务,您可能需要执行以下命令:

sudo service xinetd restart

但请注意,现代系统通常不使用xinetd来管理SSH,因此这一步可能不是必需的。确保了解您的系统配置。

方法二:使用iptables进行防火墙级别的访问控制

  1. 登录到服务器:同样,首先使用具有足够权限的用户账户登录到您的Linux服务器。
  2. 编辑规则文件或直接应用iptables规则
    您可以直接在命令行中输入iptables规则,或者将它们添加到启动脚本中(如/etc/rc.local),以便在系统重启时自动应用。但是,现代系统通常使用systemd而不是/etc/rc.local,因此更推荐的方法是创建自定义的systemd服务单元文件或使用现有的管理工具(如firewalld)。

以下是一些基本的iptables命令示例,用于禁止特定IP或网段的访问:

sudo iptables -I INPUT -s 61.XXX.XXX.1 -j DROP

sudo iptables -I INPUT -s 61.XXX.XXX.0/24 -j DROP  

sudo iptables -I INPUT -s 192.XXX.XXX.0/24 -p tcp --dport 80 -j DROP

这些命令分别禁止了单个IP、整个网段和特定网段对80端口的访问。请根据您的需求替换IP地址和端口号。
3. 保存iptables规则:如果您直接应用了iptables规则,您需要确保这些规则在系统重启后仍然有效。这可以通过安装iptables-persistent包或使用其他方法来实现,具体取决于您的Linux发行版。
4. 重启服务器(如果需要):如果您更改了启动脚本或安装了新软件包来保存iptables规则,您可能需要重启服务器以使更改生效。但是,如果您只是直接应用了iptables规则,这一步通常不是必需的。

重要提示:在应用任何防火墙规则之前,请确保您已经仔细考虑了这些规则可能带来的影响,并始终在生产环境之外的地方进行测试。错误地配置防火墙可能会导致您无法远程访问服务器或导致其他意外的服务中断。

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

网站云服务器使用中常见的错误及解决方法

2021-4-17 17:11:11

服务器教程

Linux下如何解压指定目录的文件

2021-4-17 17:11:43

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase