Articles of iptables

为什么我的IPTables规则不适用于端口445(SMB)?

考虑在192.168.1.1路由器上运行的以下规则(是的,它们是非常规的): iptables -t filter -I INPUT 1 -p tcp –source 192.168.0.0/16 –destination-port "$PORT" –jump ACCEPT iptables -t nat -I INPUT 1 -p tcp –source 192.168.0.0/16 –destination-port "$PORT" –jump SNAT –to-source 192.168.2.1 iptables -t nat -I PREROUTING 1 -p tcp –source 192.168.0.0/16 –destination-port "$PORT" –jump DNAT –to-destination 192.168.1.1 当$PORT 不是 445 (比如444 )时,这些规则工作正常。 当$PORT是445 (SMB),但是,这些规则不起作用。 请注意,我没有在路由器上运行的Samba(或任何其他关心端口445),但是您应该能够从socat在下面没有监听冲突的事实中推断出这一点。 […]

Linuxstream量转向,火星源

我试图拦截路由中的IPstream量使用Linux,iptables和源路由。 我的设置有4个命名空间 主机命名空间 命名空间“neta”10.112.0.8 命名空间“netb”10.112.0.16 命名空间“防火墙” 命名空间“neta”和“netb”被configuration为将接口伸入“主机”命名空间和设置的路由,以便它们可以相互ping通。 命名空间“防火墙”有veth和gre接口伸入“主机”命名空间。 L3交通转向设置 简短的实验描述: 确认ping neta到netb(ping 10.112.0.16)(检查) 安装源路由将neta的ICMP转移到防火墙(Check) 从neta到netb确认ping仍然有效(失败) 想法是,转移到防火墙的ICMP请求将从防火墙反弹回来,并继续其向netb的旅程。 然而,观察到的行为有点令人惊讶 – 来自neta的ICMP请求被转移到防火墙,反弹回主机命名空间,在iptables -t mangle -A PREROUTING -j LOG ,然后作为火星人被丢弃。 IN = firewall-tun OUT = MAC = SRC = 10.112.0.16 DST = 10.112.0.8 LEN = 84 TOS = 0x00 PREC = 0x00 TTL = 62 ID = 7131 DF […]

将端口80,443的拒绝连接redirect到承载错误页面的其他IP

好的,在这里,我们去..我在我的Debian 8服务器上使用UFW来阻止端口80和443上的所有传入连接,除了我允许的。 但是,我需要将这些丢弃的连接redirect到另一个IP地址(托pipe一个网站),让这些人知道他们的连接被拒绝。 我知道用UFW没有办法做到这一点,但可以用iptables来完成吗? (或者任何其他的方式..我认为iptables可以允许)注意,我不想使用squid poxy进行身份validation,主要是因为它不支持SNI(用于https连接),并且太复杂和广泛我的目的(矫枉过正)。 感谢任何帮助。

iptables FORWARD没有指定目标地址的链规则

我被给了这套iptables规则,据说工作。 iptables -A FORWARD -p tcp –syn –dport 5213 -m limit –limit 120/m –limit-burst 1 -j ACCEPT iptables -A FORWARD -p tcp –syn –dport 5213 -j DROP 我了解限制接受的TCP-SYN数量的部分。 我感到困惑的是如何使用FORWARD链。 我通常会在FORWARD链中看到指定源/目标IP地址的规则,但上面的规则仅指定了目标端口。 这是否意味着目的地仍然是收到此消息的系统? 如果是这样,如果我使用INPUT链而不是这个区别呢?

两台ipips端口之间的iptables端口在同一台服务器上出现问题

服务器有两个IP地址A和B(默认网关是B)我想转发端口443到IP C:443,所以我可以连接A:443 —-到— C:443 如果我使用(A:443 NAT到C:443),它不起作用 -A PREROUTING -d A/32 -p tcp -m tcp –dport 443 -j DNAT –to-destination C:443 -A POSTROUTING -d C/32 -p tcp -m tcp –dport 443 -j SNAT –to-source A:443 如果我使用(B:443 NAT到C:443),我可以连接B:443,但这不是我想要的 -A PREROUTING -d B/32 -p tcp -m tcp –dport 443 -j DNAT –to-destination C:443 -A POSTROUTING -d C/32 -p […]

iptables将目标REDIRECT放在没有IP的网桥上

我有一个像这样的中间人设置: A <—> B <—> C 其中A,B和C是计算机,箭头表示以太网连接。 A具有IP 10.0.0.10,C具有IP 10.0.0.9 都有一个255.255.255.0的networking掩码 我正在尝试在B上使用没有configurationIP的linux网桥来实现一个bump-in-the-wire防火墙,如下所示: brctl addbr br brctl addif chlep1 brctl addif chlep2 ifconfig br 0.0.0.0 up 为了从A到CI上configurationIptables的连接,就像这样 sysctl net.bridge.bridge-nf-call-arptables=1 sysctl net.bridge.bridge-nf-call-ip6tables=1 sysctl net.bridge.bridge-nf-call-iptables=1 iptables -t nat -I PREROUTING -p tcp -s 10.0.0.10 -d 10.0.0.9 -j REDIRECT –to-ports 40000 iptables -t nat -A PREROUTING -p tcp -s […]

主从与iptables之间的连接错误

在我的rules.v4中有: -A INPUT -s myip/32 -p tcp -m tcp –dport 3306 -m state –state NEW,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp –dport 3306 -j DROP 但是,当我重新启动服务器(vps linode),我的奴隶mysql服务器显示错误: 错误重新连接到主'user @ myip:3306' 如何从正确的方式设置rule.v4?

无法添加路由SIOCADDRT:networking不可达

嗨,所以我想添加一个路由,通过主机10.251.10.127添加到docker集装箱networking(10.20.0.0/16)的路线。 在添加路由之前,我ping主机10.251.10.127并且它是可及的。 但是,我呢 sudo route add -net 10.20.0.0/16 gw 10.251.10.127 我得到了 SIOCADDRT: Network is unreachable 这是我的configuration ifconfig docker0 Link encap:Ethernet HWaddr 02:42:48:4c:40:16 inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) eth0 Link […]

无法在LXC容器内访问外部MySQL服务器

最近我的一个集装箱应用程序开始无法连接到外部MySQL服务器。 在容器上运行nc没有回应。 [root@container ~]# nc xxx.xxx.xxx.xxx 3306 # no responses 我已经对容器运行了一个tcpdump ,它显示SYN / ACK包被发送,但没有相应的回复。 13:10:58.027375 IP 10.240.157.209.35340 > xxx.xxx.xxx.xxx.mysql: Flags [S], seq 4103959048, win 29200, options [mss 1460,sackOK,TS val 599586 ecr 0,nop,wscale 7], length 0 13:11:01.032373 IP 10.240.157.209.35340 > xxx.xxx.xxx.xxx.mysql: Flags [S], seq 4103959048, win 29200, options [mss 1460,sackOK,TS val 600337 ecr 0,nop,wscale 7], length […]

有关iptables DNAT / REDIRECT到本地的信息

我使用的是基于Xen微内核的Qubes操作系统 ,它使您可以轻松运行多个虚拟机,并划分您的数字生活。 所有域默认连接(通过虚拟接口)连接到NetworkVM的FirewallVM,该机器pipe理您的网卡并提供真正的Internet连接。 我试图redirect(在FirewallVM上)来自某些域的DNS请求到本地DNScaching服务器(而不是NetworkVM),我发现我必须使用DNATredirect外部请求(通过一个ApplicationVM进入虚拟接口)到本地主机,如在这里解释: iptablesredirect外部请求到127.0.0.1 : iptables -t nat -A PREROUTING -i vifX -p udp –dport 53 -j DNAT –to-destination 127.0.0.1:5353 关键是,当我使用像Debian这样的系统,没有虚拟机,例如,通过本地代理,如Privoxy(运行在127.0.0.1)redirectHTTPstream量,我可以使用REDIRECT : iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8118 我不明白为什么这不适用于我的实际情况,因为在这两种情况下,我们都在谈论外部数据包,来自networking卡在一种情况下,从虚拟接口在另一个需要redirect到一个本地端口。 有没有这种行为可能是接口特定的机会?