首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何远程关闭端口而不关闭自己?

如何远程关闭端口而不关闭自己?
EN

Unix & Linux用户
提问于 2012-04-27 06:00:07
回答 1查看 846关注 0票数 2

我有一个Ubuntu11.04服务器在另一个大陆的一个遥远的位置,所以我没有物理访问它。我只通过ssh (和scp)与它交互,并且只打算以这种方式与它交互。

出于安全考虑,我希望确保服务器上的所有端口都完全关闭,但ssh除外。

尽管我试图在网络上找到说明,但我的理解仍然含糊不清。到目前为止,我收集到的是,我需要“刷新”“iptable”,还需要编辑一些文件(可能是/etc/hosts?),然后重新启动机器。

显然,我想对此非常小心,因为如果我做错了,我可能会意外地关闭ssh端口,使服务器无法访问。

在我做这件事之前,我想建立一套愚蠢的步骤。

那么,如何在保留访问权限的同时关闭所有端口呢?

附加问题:在执行此操作时,我是否应该并且可以将ssh端口从22更改为非标准端口?这真的有区别吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2012-04-27 10:27:30

首先编写一个小脚本来刷新iptables规则:

代码语言:javascript
运行
复制
#!/bin/bash
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

(您可能不需要“nat”和“mangle”命令。)调用它'flush.sh‘,并将脚本放在'/root’目录中。记住'chmod +x flush.sh‘。

通过添加无害的iptable规则来测试脚本,如

代码语言:javascript
运行
复制
iptables -A INPUT -p tcp -j ACCEPT

然后从命令行运行脚本。验证您添加的规则是否已消失。

将脚本添加到root的crontab以每10分钟运行一次:

代码语言:javascript
运行
复制
*/10 * * * * /root/flush.sh

添加用于测试脚本的无害iptables规则。等待十分钟,并验证您的cron作业是否成功执行并删除了规则。

此时,您应该能够在flush.sh安全网每10分钟运行一次的情况下调试您的iptables规则集。调试完规则后,将运行flush.sh脚本的crontab中的行注释掉。

你把你的规则放在哪里在某种程度上取决于发行版。对于Ubuntu,请看一下此链接。最后,您将看到永久设置防火墙规则的两个选项-/etc/网络/接口和使用Network配置。因为您正在运行服务器,所以前一个选项可能更好。

除非您将自己锁在门外,否则您不应该为了更改或刷新iptables规则而重新启动。

最好将sshd配置为只允许使用公钥身份验证而不是通过密码进行根登录。

如果您有一个具有固定IP地址的安全网关,例如您可以从任何地方登录的服务器,那么最好在远程服务器上有一个iptables规则,以便只允许从该网关获得SSH。

将SSH端口从22更改为其他端口的价值非常有限,因为大多数端口扫描程序将很快找到新的SSH端口。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/37413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档