Articles of iptables

Linux源策略路由

我有一个networking服务器192.168.2.1有一个网关192.168.2.2。 这个网关不允许访问外部世界,当networking服务器在本地访问时这很好。 我也有一个公共IP 176.XXX.XXX.XXX指向防火墙192.168.2.6,然后转发到192.168.2.1。 如果我从公网IP上访问networking服务器时运行tcpdump ,我可以看到活动,就入站stream量而言,一切似乎都没有问题。 但是由于网关,没有响应返回。 我想保留所有本地stream量的192.168.2.2的网关,但是任何来自防火墙(192.168.2.6)的stream量我想返回到防火墙。 这是可能的使用源策略路由? 如果是的话,这是最好的步骤? 创build一个自定义策略表(可以说mycustomtable) ip rule add from 192.168.2.6 lookup mycustomtable添加路由规则ip rule add from 192.168.2.6 lookup mycustomtable ip route add default via 192.168.2.6 dev eth1 table mycustomtable向定制表ip route add default via 192.168.2.6 dev eth1 table mycustomtable添加规则 这会工作吗? 这是我目前的iptables -L -n输出: target prot opt source destination ACCEPT tcp — […]

docker伪装不会一直工作

我们有一个mesos / marathon / docker基础架构,在FrontEnd马拉松服务器和BackEnd马拉松服务器中将应用程序划分,所有服务器都由防火墙和vlan隔开。 为了让这两台服务器通信,我们使用了marathon-lb(docker app)。 这意味着(至less对我们来说),除了马拉松磅应用程序本身 – 在“主机”模式下使用networking – 所有其他docker应用程序正在使用networking“桥”模式( docker0接口)与互联网交谈,并且dockerd autocreate所有需要的iptable规则为了与世界交谈。 现在,这一切似乎工作, 无论如何,我们的防火墙正在logging, 有时我们的docker应用程序尝试使用docker应用程序的内部IP与其他物理服务器(例如,MySQL /结构,但也前端 – >后端mesos服务器)沟通,而不是使用真实的伪装地址运行docker虚拟机的服务器。 这些都标有“FIN”。 服务器都是Debian Jessie,docker app都是用java编写的, 17.04.0~ce-0~debian-jessie -engine版本是17.04.0~ce-0~debian-jessie 。 当我写了“某个时候”的时候,我的意思是数据包的百分比非常可变(从0到50%), iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination DOCKER-ISOLATION all — anywhere anywhere ACCEPT all […]

Linux EC2 ping不会回复

真的很费力地指出EC2中的网关问题。 我已经设置了一台新机器。 与前一个安全组,子网和VPC设置完全相同,并试图ping第三台机器。 来自第三台服务器的Tcp转储显示了我正在比较的这两台机器的类似响应: $> tcpdump -qtln icmp listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes IP NEW_MACHINE > THIRD_MACHNE: ICMP echo request, id 2750, seq 1, length 64 IP THIRD_MACHNE > NEW_MACHINE: ICMP echo reply, id 2750, seq 1, length 64 IP OLD_MACHINE > NEW_MACHINE: ICMP echo request, id 63237, seq 1, […]

基于服务器策略的路由 – 删除包标记

我使用基于策略的路由UID,即具有特定UID的进程通过VPN强制/隧道。 这是根据这个链接进行分组标记完成的; 链接 。 这一切都在Debian Stretch(9)上。 其中一个通过VPN传输的进程(确定其plex)需要通过非VPN路由访问plex.tv服务器以启用“远程访问” 我已经在windows和Debian上做了这个,只需添加一个来自服务器的path – > plex.tv绕过VPN。 如果所有networkingstream量都通过VPN路由(即,上面讨论的基于策略的路由未启用),这将起作用。 当我启用基于策略的路由时,添加一个路由不起作用,我假设这是因为数据包被标记为UID,因此通过VPN路由(通过路由表)。 我曾经尝试和研究过许多想法,但没有任何工作。 1)是否有“取消标记”以前标记的数据包? 我试过这个,但无法find取消标记以前标记的数据包。 我想我可以取消标记与plex.tv(或其IP地址)通信的数据包,然后他们不会通过VPN。 2)我假设数据包和iptables的标记优先于指定的路线。 有没有办法使一个添加的路线优先于在iptables中指定的规则? 3)然后我尝试在iptables链的顶部添加一个iptables规则,它将接受与plex.tv的ip地址的通信。 我认为它可能符合这个规则并退出链条,但似乎仍然适用其余的规则。 4)我想可能与DNAT有什么关系? 但我没有足够的能力来解释如何创build这个规则。 有没有人阅读这些知识或知道的东西,将提供一个解决scheme。 任何援助将不胜感激。 H

Ubuntu的iptables libvirt端口转发

在过去的几天中,我一直在靠近墙壁,试图弄清楚如何允许在端口443和8443上连接虚拟机。 这里是关于系统的一些信息。 虚拟机启动前的ifconfig ens3 Link encap:Ethernet HWaddr fa:16:3e:7a:fd:c3 inet addr:xxx45 Bcast:xxx45 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1809 errors:0 dropped:0 overruns:0 frame:0 TX packets:1673 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:145652 (145.6 KB) TX bytes:130509 (130.5 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 […]

具有默认策略的防火墙规则不起作用

我做了一个防火墙规则bash脚本为: #!/bin/bash iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP ip6tables -P INPUT DROP ip6tables -P FORWARD DROP ip6tables -P OUTPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A OUTPUT -o lo -j ACCEPT # […]

需要帮助在虚拟机运行主防火墙的物理主机和虚拟机之间configurationnetworking桥接器

我已经阅读了无数关于如何configuration网桥的文章,而且它们都显得模棱两可或者不完整,或者只是显而易见的错误(使用192.168.xxconfiguration我的WAN端口以获得Internet连接?)。 我的情况:Ubuntu 16和KVM的安全性是通过Sophos UTM在虚拟机上运行的。 物理机有两个以太网端口,其中只有一个插入了电缆。 “当局”不同意是否必须有一个或两个物理以太网端口来build立桥梁。 我特别困惑的看似占优势的看法,说你只需要一个端口,并configuration它,使物理机(PM)和虚拟机(VM)共享一个IP地址。 在这种情况下防火墙是如何工作的? 哪台机器接收到防火墙通过的任何内容? 而不pipe答案是什么,不是一台机器就无法到达? 或者两台机器都收到全部通过的数据包? 如果我有两个以太网端口并在LAN端口上设置网桥,我可以避免上述的混淆。 现在我有一个通向虚拟机的IP地址,另一个仍然指向下午。 防火墙现在不复杂,因为我有不同的目标IP地址。 但是,第二种情况下的帐户从不包含对防火墙或IP表的任何讨论。 但是我不需要在两个端口之间有规则转发stream量吗? 我的电脑不是一个路由器(不是没有configuration)。 数据包进入一个端口不只是因为他们共享一个共同的底盘神奇地find通往第二个端口的方式吗? 我想正确的答案是WAN端口被分配一个公共IP。 局域网端口被桥接,并给予一个私人IP。 防火墙规则然后转发所有的stream量,除了SSH(所以我有办法远程进入PM仍然),从广域网到局域网端口。 然后,我在VM上configurationSophos来完成繁重的防火墙function。 局域网的其余部分连接在Sophos VM的下游。 我的IPtablesconfiguration命令的外观如何? 我花了好几个小时试图弄清楚自己。 帮帮我! PS – 最后一个问题。 网桥是否获得公共或私人IP地址? 我认为它需要有一个地址与虚拟机所在的网段相同。 在我的情况下,这意味着一个私人的IP地址。

连接到另一台机器后面的机器

我有以下安装LAN设置(所有机器都运行Slackware 14.2): INTERNET | | 192.168.10.1 +———-+ |ISP ROUTER| +———-+ | | +—-+ +—–+ 192.168.10.10 | (eth0) | 192.168.10.20 (eth0) +——–+ +——–+ | HOST A | | HOST B | +——–+ +——–+ | 192.168.50.50 (eth1) | | 192.168.50.100 (eth0) +——–+ | HOST C | +——–+ HOST A和HOST B通过我的ISP的路由器连接,可以相互连接。 HOST C仅连接到HOST B并能够与HOST B通话。 但是,我想能够从HOST A连接到HOST C […]

从专用接口转发SMB到公用接口?

我有一个路由器公共IP地址ADDR和私人IP地址192.168.1.1 。 我也有一个指向ADDR的Alogging的公共领域。 路由器有一个内置的SMB服务器。 通过在Windows资源pipe理器中键入\\ADDR\ShareName可以在内部访问SMB共享。 但是,我希望能够通过\\DOMAIN\ShareName内部访问它们。 目前这不起作用,因为Samba没有在公共接口上侦听。 它只能听私人界面,我显然不想改变这个,并引入一个安全漏洞。 因此,当源位于本地子网中时,我将ADDR端口445redirect到192.168.1.1 : iptables -t nat -I PREROUTING 1 -s 192.168.0.0/16 -p tcp –dport 445 -j DNAT –to-destination 192.168.1.1:445 但是由于某种原因,这不起作用,我不明白为什么。 (我不太了解iptables 。) 为什么这不工作? 我怎样才能使它工作? (是的, cat /proc/sys/net/ipv4/ip_forward给出1 。

如何在链接启动时在CentOS中使用libvirt和iptables添加防火墙规则?

用这个/ etc / sysconfig / iptables: *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT -A INPUT -j REJECT –reject-with […]