Articles of iptables

Docker:限制访问某些IP地址的正确方法

我有一个Docker容器暴露端口3306到互联网。 我想限制访问某些公共IP地址。 作为一个例子,我们使用1.2.3.4。 作为一个附加条件,我希望规则能够在重启Docker守护进程并重新启动服务器的过程中生存下来。 这使我可以使用iptables-persistent ( iptables-save / iptables-restore )来重新启动服务器时恢复规则,而不会影响dockerd启动。 我尝试了以下内容: 修改FORWARD链: iptables -I FORWARD -p tcp –dport 3306 -j REJECT iptables -I FORWARD -p tcp –dport 3306 -s 1.2.3.4 -j ACCEPT 这在启动Docker守护进程后完成。 当重启守护进程时,Docker在链的顶部插入额外的规则,我的自定义规则最终被忽略。 修改DOCKER链: iptables -N DOCKER # if chain does not yet exist iptables -I DOCKER -p tcp –dport 3306 -j REJECT iptables […]

在Debian上的iptables端口转发

我试图设置一个简单的端口转发防火墙,我不能使基本的非防火墙configuration工作。 我已经设置了iptables脚本如下 #!/bin/sh # interfaces LAN="eth1" WAN="eth0" # enable forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # delete all existing rules to start from scratch iptables -F iptables -t nat -F iptables -t mangle -F iptables -X # accept everything iptables -A INPUT -j ACCEPT iptables -A FORWARD -j ACCEPT iptables -A OUTPUT -j ACCEPT # port […]

iptables与硬件防火墙

我想知道是否有人可以谈论基于硬件的防火墙的优点,直接在Web服务器上使用iptables。 我正在评估为一个生产箱设置专用防火墙的成本效益。

Linux无法解释ACK,不断重发SYN + ACK

以下是发生问题的一个wireshark转储,用“客户”和“服务器”代替IP地址: 4414.229553 client -> server TCP 62464 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1452 WS=3 TSV=116730231 TSER=0 4414.229633 server -> client TCP http > 62464 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=2406364374 TSER=116730231 WS=6 4414.263330 client -> server TCP 62464 > http [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=116730231 TSER=2406364374 4418.812859 server -> client TCP […]

用tc增加出站UDP数据包的延迟

我想在tc中使用fwfilter强制任意延迟出站UDP数据包; 但是,我不能让filter正常工作: tc qdisc add dev eth0 root handle 1: prio tc qdisc add dev eth0 parent 1:3 handle 30: netem delay 200ms tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 1 fw flowid 1:3 iptables -A PREROUTING -i eth0 -t mangle -p udp -j MARK –set-mark 1 如果我使用下面的u32filter,我会得到所需的效果: tc filter […]

Corosync的安全IPTables规则

我有两个运行Corosync和Pacemaker的HA负载均衡器( hollywood和狼人)。 eth1接口连接到WAN, eth0连接到LAN,使用虚拟IP作为后端服务器的网关。 hollywood的eth1 IP为xxx.xxx.195.45 , wolfman的eth1 IP为xxx.xxx.195.46 。 bindnetaddr中的bindnetaddr是xxx.xxx.195.32 ,与WAN的networking地址相同,Corosync端口是默认的5405 。 两台服务器上的相关IP表规则是: *filter –flush :INPUT DROP –append INPUT –protocol udp –destination-port 5404 –jump ACCEPT –append INPUT –protocol udp –destination-port 5405 –jump ACCEPT 这个设置似乎工作正常,但最初我添加了–in-interface eth1和–source xxx.xxx.195.46给wolfman ,并且 – 把–source xxx.xxx.195.45为hollywood 。 大多数情况下,这似乎工作,但重新启动被动平衡器有时会中断负载平衡器之间的通信,将这些错误写入syslog: [TOTEM]由于操作系统或networking故障,Totem无法形成群集。 此消息最常见的原因是本地防火墙configuration不正确。 所以看来,无论我简单地相信所有Corosyncstream量直接在eth1的两个负载均衡器之间是错误的,还是其他问题正在导致问题。 我想locking在IPTables端口5404/5405只是集群。 我需要做些什么才能做到这一点? 按要求编辑: corosync.conf 。 这是除bindnetaddr之外的所有默认Ubuntu。 # Please read […]

iptables的udp端口转发

我正在使用最新的debian relese,我需要做一些端口转发,但我不知道如何。我有2个stream源来自我的服务器在同一个udp端口从2个不同的IP-S 192.168.1.2:1003 via udp to 192.168.1.4 (server) 192.168.1.3:1003 via udp to 192.168.1.4 (server) 我的问题是:如何转发此端口1003从1.2到另一个端口1004例如?

pf(Mac OS X)规则将所有stream量redirect到特定的IP /端口

我试图重新创build这个iptables安装(从https://github.com/darkk/redsocks )与pf: iptables -t nat -A REDSOCKS -p tcp -d 10.0.0.0/8 -j REDIRECT –to-ports 12345 iptables -t nat -A OUTPUT -p tcp -j REDSOCKS 我想redirect到10.0.0.0/8(不pipe什么端口)到本地端口12345的所有连接。在Linux中,这与以上指定的规则很好地工作。 现在我试图在Mac OS X上重新创build它。目前没有任何我已经尝试工作,例如 rdr inet proto tcp from any to 10.0.0.0/8 port 0:65535 -> 127.0.0.1 port 12345 我已经设置了sysctl net.inet.ip.forwarding = 1 我不确定连rdr规则是否相当于iptables NATredirect。 Redsocks需要通过代理连接来保持目标IP /端口的正确转发。 所以我想包中的目的地不应该改变/重写为127.0.0.1:12345。

创build一个带有两个互联网连接和一个局域网连接的多宿主linux负载均衡器

好的…这个可能已经被回答了,不幸的是,我还没有发现任何看起来可能是这个决议的东西。 我看了这些页面,他们有一些有用的信息,但不是完整的决议: 在Linux上负载均衡和NAT多个ISP连接 两个Internet连接和1个NIC,可能吗? Linux分割访问(多个互联网连接与负载平衡) linux防火墙+负载均衡ISP连接 我将要么使用Debian 8,Ubuntu 16.04桌面或Ubuntu 16.04服务器(说实话,最有可能的是Debian)。 好的,所以我将有三个网卡安装两个千兆网卡和板载100 Mbps LAN连接。 ISP连接将通过两个nics上的PPPoE身份validation使用千兆局域网卡(如果这是甚至可能,否则,我会解决DSL调制解调器上的非桥接模式)。 这两个networking将有一个静态的IP分配给他们。 目前(这将改变)主连接有一个五人小组。 我需要将来自其中一个IP地址的stream量路由到networking上的适当服务器。 这是我的问题: 我如何设置? 我是否使用NAT,IP Chans,IP Masquerading,路由等等? 如何将从外部进入系统的stream量路由到networking上的特定IP地址? 请温柔一点,这是我以前第一次尝试过这样的东西:)。 编辑1 忘了添加networking拓扑: 编辑2 刚刚意识到一些事情…为了做PPPoE身份validation,我将不得不在特定的接口上强制身份validation。 这是怎么做的? 我在这里发布了这个问题: 创build一个带有两个互联网连接和一个局域网连接的多宿主linux负载均衡器 更新1 仍然无法获得多跳循环工作。 我试图按照以下站点中列出的步骤运行: 在Linux上负载均衡和NAT多个ISP连接 Linux – 双因特网连接/负载平衡 HOWTO:Linux多path 我要么不断收到一个消息,说明文件已经存在或无效的设备。 这是/我的设置/信息 IFCONFIG eth0 Link encap:Ethernet HWaddr ec:08:6b:04:8e:ac inet addr:172.16.0.2 Bcast:172.16.0.255 Mask:255.255.255.0 inet6 addr: fe80::ee08:6bff:fe04:8eac/64 Scope:Link […]

iptables – 好的,现在**我正在做对吗?

这是后面的问题 ,我问我的iptablesconfiguration是否正确。 CentOS 5.3系统。 预期结果:阻止除ping,ssh,Apache和SSL之外的所有内容。 基于异警惕的build议和对这个问题的其他答复(谢谢你们),我创build了这个脚本: # Establish a clean slate iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F # Flush all rules iptables -X # Delete all chains # Disable routing. Drop packets if they reach the end of the chain. iptables -P FORWARD DROP # Drop all […]