标签: iptables

限制特定 docker 容器对 AWS EC2 元数据的访问

我在 AWS EC2 实例上运行 docker,并且希望阻止某些容器访问 EC2 实例元数据(IP 地址为 169.254.169.254)。我认为我可以通过在存在以下 ip 表规则的情况下以特定用户(例如 userx)运行这些容器来实现此目的:

$ iptables -A OUTPUT -m owner --uid-owner userx -d 169.254.169.254 -j DROP
Run Code Online (Sandbox Code Playgroud)

当容器通过主机网络运行时,这会按预期阻止连接:

$ docker run -it --rm --network host -u $(id -u userx):$(id -g userx) appropriate/curl  http://169.254.169.254/latest/meta-data/
...blocks..
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,当容器在自己的网络中运行时允许连接

$ docker run -it --rm -u $(id -u userx):$(id -g userx) appropriate/curl  http://169.254.169.254/latest/meta-data/
...show metadata...
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?或者,是否有其他一些技术可以为特定容器提供完整的网络访问权限,同时阻止实例元数据?

iptables amazon-ec2 docker

0
推荐指数
1
解决办法
1772
查看次数

将端口 80 流量转发到防火墙后面的多个 Web 服务器

我想在防火墙后面设置两个 Web 服务器,这两个服务器都可以使用普通端口 80 和 URL 从 Internet 浏览器客户端访问。例如 server1 www.abc.com和 server2 www.def.com

我不是专家,但我想我了解如何使用 IPTABLE 进行端口转发。但我不知道(或没有找到)的是如何根据请求的 Web 服务器 URL 有选择地进行转发。

假设两台服务器的私有 IP 地址分别为 10.0.0.100 和 10.0.0.110,而我的防火墙路由器的公共地址为 1.2.3.4。我想要的是 URL www.abc.com的端口 80 流量作为端口 80 转到地址 10.0.0.100,同样,URL www.def.com的端口 80 流量转到 10.0.0.110。

我想如果需要的话我可以让两台服务器监听不同的端口,即 9000 和 9100,而不是 80。

有人可以提供一些想法吗?谢谢

linux iptables forwarding

0
推荐指数
1
解决办法
1568
查看次数

如何将 IP 表配置为仅允许端口 25 和 80

您好,我只想允许关闭端口 25 和 80 以及所有其他端口。我试图配置我的 Ubuntu linux,但我删除了所有端口......

sudo iptables -F
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT

sudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp -m tcp --sport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

iptables port block

-1
推荐指数
1
解决办法
171
查看次数

如何删除iptables设置的标记?

我正在用这样的 iptables 设置标记

iptables -t mangle -A POSTROUTING -d 192.168.1.143 -j MARK --set-mark 10
Run Code Online (Sandbox Code Playgroud)

如果我想清除我所做的就是删除所有

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
Run Code Online (Sandbox Code Playgroud)

而不是删除所有规则来清除这个,如何只删除一个标记?

linux iptables

-1
推荐指数
2
解决办法
7195
查看次数

为此 iptables 规则输入的命令是什么

所以我在我的服务器上为我的 VPN 制定了一些规则,但如果我的客户需要,我的合作伙伴会进行端口转发。我想知道如何自己做,但他不想告诉我。现在我在我的服务器上找到了这些规则,有人能把它翻译成输入的命令吗?就像我的伙伴在putty中输入的命令添加了这条规则,所以我可以从中学习。

如果可能的话,请解释一切都做了什么:)。

规则图片:

http://img211.imageshack.us/img211/8536/f47067ed35ff487c97db0bf.png

iptables centos

-1
推荐指数
1
解决办法
106
查看次数

如何使用 iptables 将 http 重定向到 https

我购买了有效的 SSL 证书。我有一个在端口 443 上运行的 Web 服务器,当我访问https://mydomain.com时它可以正确显示。如何使用 iptables 转发所有 http 请求以使用 https?

谢谢

iptables web-server

-1
推荐指数
1
解决办法
781
查看次数

iptables MASQUERADE:这两个命令的优缺点是什么?

以下2个命令之间的优缺点是什么:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

iptables -t nat -A POSTROUTING -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个问题的一些背景:

我提出了一个问题AWS VPC + IPtables + NAT: Port Forwarding is not working and I get it works only by making this change

因此这个问题。

更新:

在看到反对票后(强大的反对派选民太忙了,无法评论他们为什么反对投票),我稍微编辑了这个问题。我看到人们只是理解英文单词的字面意思,并没有费心去理解它的本质。因此我不得不编辑问题。

此外,如果您不解释为什么拒绝投票,这是一种可耻的行为。这样 OP 将永远不会有机会改进他的帖子或知道帖子有什么问题。

linux nat iptables linux-networking masquerade

-1
推荐指数
1
解决办法
1408
查看次数

无论如何要告诉什么用户将从入站数据包中接收数据?

在 linux 中,考虑这个用例:

1.  User initiates http request for webpage to remote server
2.  Remote server answers request and sends packets
Run Code Online (Sandbox Code Playgroud)

是否有任何关于启动进程的用户的参考,该进程在远程服务器发送的传入数据包上向远程服务器发出请求?

我试图找出一种过滤入口流量的方法,以便我可以基于每个用户进行速率限制,而不仅仅是限制整个系统的速率。

linux iptables linux-networking tc packet

-1
推荐指数
2
解决办法
251
查看次数

如何配置iptables以允许通过端口3128上的squid代理访问特定域?

我的规则有什么问题?我在我的服务器上安装了鱿鱼,我只想通过鱿鱼可以访问一些特定的域,但 iptables 完全阻止了我

我发现了这一点:iptables 规则只允许 HTTP 流量到一个域,我尝试使用我的规则应用和调整它,但我没有成功。

这是我的规则:

iptables -F
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5801  -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport …
Run Code Online (Sandbox Code Playgroud)

domain iptables squid

-1
推荐指数
1
解决办法
3979
查看次数

Centos 服务器不会保存 iptables 配置

我已经设置了一个 Centos 7 服务器来运行 Nagios。默认情况下,操作系统有非常严格的 iptables 规则,这里的一个人建议通过输入以下命令来解决这个问题:

iptables -A IN_public_allow -p tcp --dport 80 -j ACCEPT 
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到我重新启动服务器,此时我必须再次输入命令,否则服务器将再次无法访问。

这是 iptables 的正常行为吗?我可以做些什么来修复它吗?

iptables centos7

-1
推荐指数
1
解决办法
1921
查看次数