bas*_*sh- 5 networking ubuntu iptables
好吧,我昨天开始深入研究网络,只是设置了我的 ubuntu 服务器,所以我是一个完整的菜鸟。
我想问一下iptables中的输入/输出/转发链是什么?假设我想打开端口 22 以进行 ssh 访问,我是否需要使用所有 3 个端口?或者只是其中两个之一?
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
谢谢!
INPUT:数据包来从网络中去到你的服务器。
OUTPUT:数据包始发从你的服务器,并打算到网络。
FORWARD:您的服务器转发的数据包,如果/当它充当不同网络之间的路由器时。
为了让SSH访问到你的服务器,你必须接受INPUT链的流量。
小智 6
正如正确解释的那样:
\nINPUT :传入数据包,即以主机为目的 IP 的数据包
\nOUTPUT:输出数据包,即以主机为源IP的数据包
\nFORWARD :源 ip 和目标 ip 都不是主机\xe2\x80\x99s IP 的数据包
\n附带说明一下,谈论主机\xe2\x80\x99s IP 是一种语言滥用。实际上,IP 属于网络接口,而不是主机。事实上,许多主机都有多个网络接口(例如 WiFi 无线电、以太网端口),每个接口都有自己的 IP。
\n然而,错误地指出,要允许 ssh,您只需要添加允许传入 ssh 数据包的规则。这是不正确的,您可以很容易地看到自己:您\xe2\x80\x99将允许 ssh 数据包,但您的防火墙将丢弃(或拒绝 - 取决于您的默认设置)您响应该 ssh 连接而发回的任何内容。
\n技巧是允许传入 ssh 连接和通信,并允许传出 ssh 通信(但不允许连接,如果您不希望主机建立传出 ssh 连接)。
\n实际上,您可以在 iptables 中这样设置:
\niptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT\n\niptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT\nRun Code Online (Sandbox Code Playgroud)\n(默认行为为删除或拒绝)
\n请注意,在许多客户端上,您实际上需要相反的设置:在 OUTPUT 上允许new和(以允许自己连接到外部世界),并仅在 INPUT 上允许(以保护自己免受不需要的连接尝试)。establishedestablished
PS:我在这里玩死灵法师,但谷歌重定向到这个(部分)错误接受的答案,所以我认为\xe2\x80\x99d值得纠正它。
\n| 归档时间: |
|
| 查看次数: |
4388 次 |
| 最近记录: |