Questions tagged «iptables»

iptables是用于配置Linux 2.4.x和2.6.x IPv4数据包过滤规则集的用户空间命令行程序。它针对系统管理员。请在询问有关iptables的问题时,添加以下命令的输出:iptables -L -v -n

2
Docker-可从外部访问的公开端口-忽略iptables规则
我有一个像这样运行的docker容器: docker run --name some_container_1 -p 8080:80 -d some_image 哪个工作正常。该容器将其端口80暴露给8080,可从localhost访问。 但是由于某种原因,它完全忽略了INPUT iptables规则,并且也可以从外部访问。 如何限制对Docker容器的访问以仅允许IP 123.456.789.0从外部访问它? 谢谢。 须藤iptables -L -n -v --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 2 365 …
15 docker  iptables 

1
使用iptables,匹配数据包通过IPSEC隧道到达
我在隧道模式下使用IPSEC。 如何制定仅匹配通过IPSEC隧道到达的数据包的iptables规则(即,在 IPSEC解密之后 - 而不是到达和解密之前的IPSEC数据包)。 关键是要有一个只能通过IPSEC访问而世界其他地方无法访问的端口。
15 linux  iptables  ipsec 

3
如何配置在Amazon VPC中使用的自定义NAT
我有一个希望用作NAT实例的Ubuntu盒子(除其他外)。我宁愿避免使用Amazon提供的NAT AMI,而是自己配置NAT。 当前,我的主机具有单个网络接口(如http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html中所示)。 我是否可以将Ubuntu主机配置为Amazon网络中其他主机的NAT实例? Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 5 454 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0 我尝试在Ubuntu主机(10.200.0.51)中配置NAT规则。我的第二台主机位于其他网络(10.200.10.41/24)。所以我写道: route add -net 10.200.0.0 netmask 255.255.255.0 dev eth0 # So I can reach 10.200.0.51 route add default gw 10.200.0.51 …


4
基本HTTP Web服务器的安全,标准iptables规则集
我一直在尝试将基本服务器iptables脚本放在一起,该脚本适用于仅使用HTTP(S)和SSH(端口80、443和22)运行基本Web服务器的大多数站点。毕竟,大多数VPS仅需要这些起始端口规则,并且以后可以根据需要添加邮件或游戏端口。 到目前为止,我有以下规则集,我想知道是否有人知道更好的脚本或可以添加的任何改进。 *filter # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accepts all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allows …

3
您能为iptables推荐一个很好的介绍吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 4年前关闭。 我必须在Linux服务器上设置防火墙(我以前的所有经验都是Windows)。我的规则非常简单-禁止全部使用,允许全部使用某些端口,允许某些端口用于特定的IP子网,而网络很小但很复杂(每台主机的IP至少为2 192.168 ... net,每个人都可以相互连接)。我认为使用iptables包装器会使逻辑上过多的系统变得过于复杂,从而引入了许多不必要的实体,最好保持简单并直接使用iptables。 您能推荐一个很好的快速入门介绍如何编写iptables规则吗?
15 linux  vpn  router  iptables 

5
适用于大规模环境的iptables管理工具
我正在使用的环境是大规模的Web托管操作(受管理的数百台服务器,几乎所有公用地址等,因此任何有关管理ADSL链接的事情都不太可能奏效),我们重新寻找可以同时管理核心规则集(目前iptables中约有12,000个条目)和我们为客户管理的基于主机的规则集。我们的核心路由器规则集每天更改几次,而基于主机的规则集每月可能更改50次(在所有服务器上,因此每月每五台服务器更改一次)。 我们目前正在使用filtergen(一般来说是球,在我们的经营规模中是超级球),过去我在其他工作中使用过Shorewall(比filtergen更好,但我认为必须会有比这更好的东西)。 我们为任何替换系统提出的“笨蛋”是: 必须相当快地生成一个规则集(在我们的规则集上运行filtergen需要15-20分钟;这简直太疯狂了)-这与下一点有关: 必须生成一个iptables-restore样式文件并一键加载,而不是为每个规则插入都调用iptables 重新加载规则集时,切勿长时间关闭防火墙(同样,这是以上几点的结果) 必须支持IPv6(我们不会部署任何不兼容IPv6的新东西) 必须不含DFSG 必须使用纯文本配置文件(因为我们通过版本控制来运行所有内容,而使用标准的Unix文本操作工具是我们的SOP) 必须同时支持RedHat和Debian(首选打包方式,但至少不能对发行版的任何标准公然敌视) 必须支持运行任意iptables命令的能力,以支持不属于系统“本地语言”的功能 不符合所有这些条件的任何事物都将不予考虑。以下是我们的“必备品”: 应该支持配置文件“碎片”(也就是说,您可以将一堆文件放在目录中,并对防火墙说“将规则集中的所有内容都包含在此目录中”;我们广泛使用配置管理,并且希望使用此功能来自动提供特定于服务的规则) 应该支持原始表 应该允许您在传入数据包和REJECT规则中指定特定的ICMP 应该优雅地支持可解析为多个IP地址的主机名(我们已经被filtergen捕获了几次;这在屁股上是一个非常皇家的痛苦) 该工具支持的更多可选(可选)/怪异的iptables功能(本机或通过现有或易于写的插件)更好。我们时不时地使用iptables的奇怪功能,而“可行”的功能越多,对每个人都越好。

2
Ping:sendmsg:在Arch GNU / Linux上安装iptables后出现不允许的操作错误
昨天,我有一台新计算机作为家庭服务器,即HP Proliant Microserver。在其上安装了Arch Linux,内核版本为3.2.12。 安装iptables(1.4.12.2-当前版本AFAIK)并将net.ipv4.ip_forward密钥更改为1,并在iptables配置文件中启用转发(并重新引导)后,系统将无法使用其任何网络接口。ping失败 Ping: sendmsg: operation not permitted 如果我完全删除iptables,则可以建立网络,但是我需要共享与本地网络的Internet连接。 eth0的 -广域网网卡集成在主板上(博通的NetXtreme BCM5723)。 eth1 -pci-express插槽中的lan NIC(Intel 82574L千兆网络) 由于它可以在没有iptables的情况下工作(服务器可以访问Internet,并且我可以从内部网络使用ssh登录),因此我认为它与iptables有关。我对iptables没有太多的经验,所以我将它们用作参考(当然彼此分开...): wiki.archlinux.org/index.php/Simple_stateful_firewall#Setting_up_a_NAT_gateway revsys.com/writings/quicktips/nat.html howtoforge.com/nat_iptables 在我以前的服务器上,我使用了revsys指南来设置nat,它的工作原理很像。 有人经历过这样的事情吗?我究竟做错了什么?

4
设置透明的SSL代理
我有一个装有2个网卡的linux盒,用于检查通过端口80的流量。一张卡用于连接互联网,另一张卡连接至网络交换机。关键是要能够检查连接到该交换机的设备上用于调试目的的所有HTTP和HTTPS通信。 我为iptables编写了以下规则: nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337 -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337 -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 在192.168.2.1:1337上,我使用Charles(http://www.charlesproxy.com/)进行了透明的http代理记录。 端口80一切都很好,但是当我为指向端口1337的端口443(SSL)添加类似规则时,通过Charles收到有关无效消息的错误消息。 我之前曾在Charles的同一台计算机上使用过SSL代理(http://www.charlesproxy.com/documentation/proxying/ssl-proxying/),但是由于某种原因未能透明地进行SSL代理。我用Google搜索的一些资源说这是不可能的-如果有人可以解释原因,我愿意接受它作为答案。 需要注意的是,我拥有上述设置的完全访问权限,包括连接到子网的所有客户端-因此,我可以接受Charles的自签名证书。该解决方案不必特定于Charles,因为从理论上讲,任何透明代理都可以。 谢谢! 编辑:稍微玩了一下之后,我就能让它在特定主机上正常工作。当我将iptables修改为以下内容时(并以查尔斯打开1338作为反向代理): nat -A PREROUTING -i eth1 …

2
IPTABLES中DNAT和REDIRECT之间的区别
好的,可能是因为我很忙,或者可能只是找不到正确的来源,但我不明白为什么这些IPTABLES设置之一会比另一个更好。 这是我的设置: 我有一个盒子充当透明代理和路由器或排序。它具有两个接口,ETH0和ETH1,以及以下地址方案: ETH0 = DHCP ETH1 = 192.168.5.1/24为LAN中位于其后的客户端的192.168.5.0/24网络提供DHCP服务 我已安装privoxy,并在端口8080上侦听作为透明代理。我通过此设置完成的工作是,能够以最少的配置将此盒子放入现有网络,并将客户端附加到代理。 这是我的原始IPTABLES文件 *nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080 -A POSTROUTING -o eth0 -j MASQUERADE COMMIT *filter COMMIT 此配置工作正常,流量来回毫无问题。我在privoxy日志文件中获得了原始客户端的IP地址,生活很顺利。 当我开始查看其他人的配置并看到他们使用DNAT而不是REDIRECT时,我感到困惑。我试图理解一个人的真正好处。这是一个示例配置: *nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT …

4
iptables-桥接和转发链
我有br0包含两个接口的设置以太网桥,eth0并且tap0 brctl addbr br0 brctl addif eth0 brctl addif tap0 ifconfig eth0 0.0.0.0 promisc up ifconfig tap0 0.0.0.0 promisc up ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 我的默认FORWARD连锁政策是DROP iptables -P FORWARD DROP 当我不添加以下规则时,流量不会通过网桥。 iptables -A FORWARD -p all -i br0 -j ACCEPT 据我了解,iptables它仅负责IP层。 ebtables 应该负责过滤以太网桥上的流量。 那么,为什么我必须在iptable的FORWARD链中添加ACCEPT规则?


3
无法在Shell脚本上设置UID
谁能帮我找出这里的事吗?我有一些规则来设置跟踪数据包计数。当我以root身份运行以下脚本时: #!/bin/bash iptables -t mangle -xnvL 我得到了我期望的输出: //snip 233203 199929802 MARK //blah blah blah //snip 但是,我想将其作为cacti的一部分来运行,该仙人掌以apache的身份运行。现在apache无法运行iptables,这就是为什么我有脚本。我将其设置为SUID root: -rwsr-sr-x 1 root root 37 May 14 23:06 iptables_packet_report.sh 但是然后我得到以下输出: server # sudo -u apache ./iptables_packet_report.sh iptables v1.4.2: can't initialize iptables table `mangle': Table does not exist (do you need to insmod?) Perhaps …
14 linux  iptables  suid 

3
根据Apache日志数据自动修改iptables,以阻止行为不良的客户端
Linux上是否有任何工具可以自动修改iptables,以便根据对Apache日志的分析来阻止麻烦的客户端?我帮助运行的站点有时会被特定用户的请求所淹没。唯一的解决方案是在iptables中添加一个条目,以阻止有问题的客户端。在我可以手动做出反应之前,通常为时已晚-因此,我希望使用基于规则的机制来修改iptables。我猜想将需要某种模糊的逻辑或统计分析。

3
您如何测试iptables规则以防止远程锁定并检查匹配项?
在学习iptables的过程中,我犯了一些错误,并把自己拒之门外。 在不锁定自己的情况下,您使用什么方法测试规则? 我正在使用ubuntu服务器12.04 LTS 以下所有答案均很有帮助。最后,我使用了多种选择。以防万一,使IPMI访问远程服务器也有帮助!但最好在复制环境中本地测试规则,然后首先进行测试。在这方面,Vagrant可以帮助您快速进行测试设置。
14 linux  iptables 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.