我是 Ubuntu 新手。
我在家里有一个开发测试服务器,我们正在和朋友一起开发它。
我们使用 SSH、FTP 以及一些用于邮件、网络等的端口……
我只想允许我们在此服务器上工作的 IP:
- 本地网络
- 我的办公室的 IP
- 来自我朋友的 IP
- 来自我朋友办公室的 IP(我们也在办公室的服务器上进行测试)
我检查了日志,发现有很多尝试,有些人尝试以 root 身份登录,这就是为什么我想只允许我和我的朋友登录。但由于它是 Web 服务器,我们必须保持 Web 和邮件端口开放以接收邮件。
不确定我解释得清楚不准确。我该怎么做?我已经尝试过 iptable,但没有成功,仍然有大量传入连接,并尝试以 root 身份登录。
您能告诉我怎样才能轻松地进行吗?
谢谢,并致以最诚挚的问候,GP
答案1
对于您的情况,您需要iptables
为此设置规则。您还可以使用firewalld
丰富的命令来管理 Linux 中的防火墙。我将iptables
在这里解释。
Iptables 用于 Linux 内核的 ipv4/ipv6 数据包过滤。iptables有三个默认表,每个表包含三个默认链:
- 输入
- 输出
- 向前
Iptables 命令具有不同的选项。以您的场景为例,您需要编写以下命令:
$ iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -s x.x.x.x -j ACCEPT
$ iptables -A INPUT -j DROP
这些命令仅接受来自 IP xxxx 的端口 22 的 ssh 连接,并且每个传入数据包都将被丢弃。您可以对任何 IP 和任何您希望服务器应答的端口执行此操作。对于您不知道哪些状态的传入数据包,请使用有关的和无效的在--state
。
您应该注意到这iptables
是连续规则顺序。例如,如果您阻止所有内容,然后接受一些内容,那么您将不会得到任何结果,因为当传入数据包与任何规则匹配时,其他规则将不被考虑。