Articles of iptables

Iptables规则集,以便Docker容器可以访问主机IP上的服务

我有麻烦访问从docker集装箱的主机专用接口(IP)。 我相当肯定,这是关系到我的Iptables规则(或者路由)。 当我添加–net=host标志docker run ,一切正常。 同样,当我指定INPUT策略遵循宽泛的-P INPUT ACCEPT ,事情也按我的预期工作。 然而,这些是我不想要的和不安全的选项,我想避免。 由于它不是特定于我的服务(DNS),所以我排除了这个问题,因为与docker结合search会在不同的(stream行的)问题区域中生成search结果,从而增加search结果的噪音。 也链接的Docker容器不是一个可行的select,因为某些容器需要运行与–net =主机选项,防止链接,我想在可能的情况下创build一个一致的情况。 我有以下的Iptables规则。 我假设的是CoreOS,Digital Ocean和Docker的组合。 -P INPUT DROP -P FORWARD ACCEPT -P OUTPUT ACCEPT -N DOCKER -A INPUT -i lo -j ACCEPT -A INPUT -i eth1 -j ACCEPT -A INPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp –dport 22 […]

设置一个透明的SSL代理

我有一个用2个网卡设置的linux盒子来检查通过端口80的stream量。一个网卡用于上网,另一个网卡连接到networking交换机。 重点在于能够检查连接到该交换机的设备上的所有HTTP和HTTPSstream量,以用于debugging目的。 我已经写了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,我有一个透明的http代理使用Charles( http://www.charlesproxy.com/ )进行录制。 一切正常的端口80,但是当我添加端口443(SSL)指向端口1337类似的规则,通过查尔斯我得到关于无效消息的错误。 我之前在Charles使用过SSL代理( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ ),但由于某种原因,透明地进行操作并不成功。 我search的一些资源说它不可能 – 如果有人能解释为什么,我愿意接受这个答案。 作为说明,我可以完全访问所描述的设置,包括连接到子网的所有客户端 – 所以我可以接受Charles的自签名证书。 从理论上讲,解决scheme不一定是查尔斯特有的,任何透明的代理都可以。 谢谢! […]

Fail2Ban:已经被禁止?

我有我的Centos服务器上运行的Fail2Ban。 (下面的configuration) 在我的var / log / messages中,我注意到一些很奇怪的东西: Jun 19 12:09:32 localhost fail2ban.actions: INFO [postfix] 114.43.245.205 already banned 我configuration了Fail2Ban将禁止的IP添加到iptables。 我的jail.conf: [postfix] enabled = true filter = postfix action = iptables port = smtp,ssmtp filter = postfix logpath = /var/log/maillog bantime = 43200 maxretry = 2 我的postfix.conf: [INCLUDES] before = common.conf [Definition] failregex = reject: RCPT from […]

iptables之间转发两个接口

所以我有一个有两个无线接口的Linux盒子,一个是一个站,另一个是AP。 wlan0(站) – 连接到互联网连接 wlan1(AP) – 其他客户端连接到它。 我想连接到wlan1的客户端能够访问wlan0上的互联网。 我想用iptables做这个,因为我的内核没有桥接支持… 以下是我已经用iptables尝试过的,但是不起作用: iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT 我会很感激任何帮助。

iptables:“-p udp –state ESTABLISHED”

让我们看看这两个常用于允许传出DNS的iptables规则: iptables -A OUTPUT -p udp –sport 1024:65535 –dport 53 -m state –state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p udp –sport 53 –dport 1024:65535 -m state –state ESTABLISHED -j ACCEPT 我的问题是:我应该如何理解UDP中的ESTABLISHED状态? UDP是无状态的。 这是我的直觉 – 我想知道,如果或在哪里这是不正确的: 手册页告诉我: 州 这个模块,当与连接跟踪相结合,允许访问 这个数据包的连接跟踪状态。 – 状态… 因此,iptables基本上记住了用于外发数据包的端口号(还有什么可以记住的是UDP数据包?) ,然后允许在短时间内发回的第一个传入数据包? 攻击者将不得不猜测端口号(这真的太难了吗?) 关于避免冲突: 内核会跟踪哪些端口被阻塞(通过其他服务或先前传出的UDP数据包),以便这些端口不会在时间范围内用于新的传出DNS数据包? (如果我在一定的时间内意外尝试在该端口上启动服务,会发生什么情况 – 这种尝试会被拒绝/阻止吗?) 请在上面的文本中find所有错误:-)谢谢, 克里斯

iftop – 如何生成文本文件的输出?

iftop可以很好地查看由source-ip源端口destination-ip目标端口区分的实时带宽使用情况。 我正在使用它来查看哪个客户端的IP使用最多的带宽。 现在我想存储输出的地方。 iftop如此使用ncurses iftop > log.txt 不按预期工作,结果文件不可读。 有没有这样的工具可以用来输出到文本文件?

我如何允许通过iptables传出连接?

我有两台服务器。 第一个程序需要通过端口2194与第二个程序进行通信。 我知道它不工作,因为当我这样做: root@server1 [~]# telnet myserver2.com 2194 Trying 123.123.123.98… telnet: connect to address 123.123.123.98: Connection timed out telnet: Unable to connect to remote host: Connection timed out server1# iptables -L -n Chain INPUT (policy DROP) … … Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy DROP) … Chain LOCALINPUT (1 […]

什么是IPV6保留的地址空间?

我正在转换我的老的IPV4基于iptables防火墙脚本,并希望用IPV6中的CLASS A / B / C / D / E保留地址空间replace。 我的目标是拒绝任何来自这些地址的数据包,因为这些数据包不能到达公共networking,所以他们必须被欺骗。 到目前为止,我已经发现了这些,有没有更多的保留空间,哪里没有数据可以到达IPV6networking服务器? Loopback :: 1 全球单播(当前)2000 :: / 3 独特的本地单播FC00 :: / 7 链接本地单播FE80 :: / 10 多播FF00 :: / 8

如何configuration在Amazon VPC中使用的自定义NAT

我有一个Ubuntu盒子,我希望用作NAT实例(等等)。 我宁愿避免使用Amazon提供的NAT AMI,而是自己configurationNAT。 目前,我的主机只有一个networking接口(如http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html所示)。 我应该能够将我的Ubuntu主机configuration为亚马逊networking中其他主机的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)中configurationNAT规则。 我的第二台主机位于不同的networking(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 但机器失去了联系。 什么是我误解重新使用NAT实例和路由在亚马逊?

根据Apache日志数据自动修改iptables以阻止performance不佳的客户端

Linux上是否有任何工具可以自动修改iptables,从而根据对Apache日志的分析来阻止麻烦的客户端? 我帮助运行一个网站,有时会被特定用户的请求淹没。 唯一的解决方法是在iptables中添加一个条目来阻止违规的客户端。 通常我手动反应的时间太晚了 – 因此,我想要一些基于规则的机制来修改iptables。 我猜想,某种模糊的逻辑或统计分析是必要的。