如何停止特定IP地址的telnet访问?

如何停止特定IP地址的telnet访问?

如何在命令行上停止对特定 IP 地址的 telnet 访问?

答案1

比以下更通用的解决方案劳伦蒂乌·罗斯库的方法是使用 iptables,它在每个发行版中的工作原理都是相同的,并且基本上与安装哪个软件无关。

# iptables -A INPUT -p tcp -s <ip_address> --dport telnet -j DROP

您可以选择使用-j REJECT而不是-j DROP.使用 REJECT 将告诉另一端的任何人该特定端口上没有任何内容;使用 DROP 将丢弃数据包,这会导致在远程主机的连接超时间隔过后连接尝试超时。

您可能需要在任何可能已存在的“接受”规则之前插入该规则。如果是这样,我喜欢这样做:

# iptables -L INPUT --line-number
<some or lots of output>
# iptables -I INPUT <number of telnet accept rule> ...

其中是上面命令中以后的...所有内容。-p tcp本质上,-I INPUT n替换-A INPUT. (-I 在位置之前插入n, -A 是附加。)

您可以使用,--dport telnet因为telnet在 /etc/services 中列出。grep telnet /etc/services如果你好奇的话就试试吧。如果不是,您必须使用数字端口号,即23

您可能需要使用类似的方法iptables-save来在重新启动后保留规则。有关详细信息将取决于您的发行版和设置,因此无法一概而论。如果您指定您的发行版和版本,有人可能能够提供相关的具体见解(或者作为一个单独的问题“如何在发行版 X 版本 Y 中重新启动时保留 iptables 规则?”可能会更好)。

那就是说,我同意这一点应该使用 SSH 来代替。但您可能仍然希望阻止来自某些 IP 的访问,并且可以执行的级别越低,堆栈的较高级别部分中出现错误导致妥协或拒绝服务的风险就越小。

答案2

在 /etc/host.deny 中添加:

telnet: <ip_addres>

但你应该使用 ssh 来代替。

相关内容