关于iptables DNAT / SNAT设置,在这里有很多的问题,但我还没有find解决我目前的问题。 我有服务绑定到eth0的IP地址(例如192.168.0.20),我也有一个IP地址eth0:0(192.168.0.40)与另一台服务器共享。 只有一个服务器处于活动状态,因此该别名界面依赖于哪个服务器处于活动状态。 为了获得服务接受的stream量,使用DNAT规则来更改目的IP。 iptables -t nat -A PREROUTING -d 192.168.0.40 -p udp –dport 7100 -j DNAT –to-destination 192.168.0.20 我还希望来自此服务的所有出站stream量看起来都来自共享IP,以便在主备备份故障切换的情况下返回响应能够正常工作。 iptables -t nat -A POSTROUTING -p udp –sport 7100 -j SNAT –to-source 192.168.0.40 我的问题是,SNAT规则并不总是运行。 入站stream量导致像这样的连接跟踪条目。 [root]# conntrack -L -p udp udp 17 170 src=192.168.0.185 dst=192.168.0.40 sport=7100 dport=7100 src=192.168.0.20 dst=192.168.0.185 sport=7100 dport=7100 [ASSURED] […]
请简单介绍一下iptables / NAT-Setup,我相信它有一个相当严重的安全问题(由于太简单了)。 在这个networking上,有一台连接到互联网的机器(在iptables 1.4.8上运行Debian Squeeze / 2.6.32-5)充当192.168 / 24中less数客户机的NAT /网关。 该机器有两个NIC: eth0: internet-faced eth1: LAN-faced, 192.168.0.1, the default GW for 192.168/24 路由表是双网卡 – 默认没有手动更改: Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 (externalNet) 0.0.0.0 255.255.252.0 U 0 0 0 eth0 0.0.0.0 (externalGW) 0.0.0.0 UG 0 0 […]
我很难找出在用户定义的iptables链末端丢失RETURN规则的后果。 很明显,“iptables [missing] return [jump]”是真的很糟糕的关键字。 manpage和任何博客或howto我可以挖掘只告诉我什么-j RETURN做(这是显而易见的),但不是如果它缺less会发生什么。 另外,我似乎无法build立合理的实验规则来尝试… iptables -N userchainA iptables -A INPUT -j userchainA iptables -N userchainB iptables -A INPUT -j userchainB iptables -A INPUT -j ACCEPT iptables -A userchainA … # anything here, that DOES NOT MATCH #### no explicit return from userchainA! iptables -A userchainB … # anything here, that DOES […]
我正在运行OpenStack,并且在从networking控制器节点以外的任何位置访问浮动IP实例时遇到问题。 我使用FlatDHCP进行Folsom部署,不运行多主机,运行在Ubuntu 12.04上。 例如,下面是一个运行实例,其固定IP为10.40.0.2,浮动IP为10.20.0.3: $ nova list +——-+———+——–+——————————+ | ID | Name | Status | Networks | +——-+———+——–+——————————+ | 3d292 | quantal | ACTIVE | private=10.40.0.2, 10.20.0.3 | +——-+———+——–+——————————+ 如果我login到控制器,我可以ping通ssh到任一IP的VM实例。 但是,我不能ping或SSH到外部机器的实例。 如果我尝试从我的笔记本电脑(192.168.3.8)ping,并且在公共接口(eth3)上做了一个tcpdump,我可以看到请求并回复: # tcpdump -i eth3 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth3, link-type EN10MB (Ethernet), […]
我正尝试使用mysql从Ubuntu服务器连接到RHEL6服务器。 我已经尝试telnet到服务器以及尝试连接到MySQL。 我已经试过评论绑定地址,但是也没有任何成功。 我没有得到一个错误代码或任何与telnet 。 一分钟左右就失败了 与MySQL,我得到这个错误代码ERROR 2003 (HY000): Can't connect to MySQL server on 'SERVER_IP' (111) 。 “SERVER_IP”当然是一个占位符,实际的错误会给出实际的IP。 我已经包含了我的my.cnf以及来自目标服务器的iptables。 在目标服务器上… my.cnf文件: [mysqld] bind-address=0.0.0.0 tmp_table_size=512M max_heap_table_size=512M sort_buffer_size=32M read_buffer_size=128K read_rnd_buffer_size=256K table_cache=2048 key_buffer_size=512M thread_cache_size=50 query_cache_type=1 query_cache_size=256M query_cache_limit=24M #query_alloc_block_size=128 #query_cache_min_res_unit=128 innodb_log_buffer_size=16M innodb_flush_log_at_trx_commit=2 innodb_file_per_table innodb_log_files_in_group=2 innodb_buffer_pool_size=32G innodb_log_file_size=512M innodb_additional_mem_pool_size=20M join_buffer_size=128K max_allowed_packet=100M max_connections=256 wait_timeout=28800 interactive_timeout=3600 # modify isolation method for faster […]
我想build立一个TCP DNAT从127.0.0.1,端口4242到11.22.33.44,在Linux 3.x端口5353(目前3.2.52,但我可以升级,如果需要)。 它看起来像简单的DNAT规则设置不起作用, telnet 127.0.0.1 4242在Trying 127.0.0.1…挂起一分钟,然后超时。 也许是因为内核丢弃了返回的数据包(比如SYN + ACK),因为它认为是火星。 我不需要解释为什么简单的解决scheme不起作用,我需要一个解决scheme,即使它很复杂(例如它涉及创build可能的规则)。 我可以从127.0.0.0/8networking之外的另一个本地IP地址build立一个通常的DNAT,但现在我需要127.0.0.1作为目的地址。 我知道我可以设置一个用户级的端口转发过程,但是现在我需要一个可以使用iptables设置的解决scheme,而不需要帮助程序。 我一个小时在Google上search。 有人问了很多次,但我找不到任何有效的解决办法。 还有关于DNAT到127.0.0.1的许多问题,但我不需要,我需要相反的。 请注意,单个iptables -j REDIRECT规则将不起作用,因为我需要将传出数据包的IP地址从127.0.0.1更改为11.22.33.44, -j REDIRECT无法更改IP地址。
我已经build立了一个OpenVPNnetworking,并且从我可以从远程客户端访问内部/ LAN机器的意义上说,它工作正常。 但是,我的问题是,来自远程计算机的所有stream量都显示在LAN计算机上,就好像它来自OpenVPN服务器计算机,而不是来自客户端计算机。 为了更好地解释,考虑我的networking拓扑: 机器R连接到机器A上的OpenVPN服务器,并分配了IP地址10.200.200.5。 然后机器R向机器B上运行的Apache发出请求。请求到达正确,我得到响应。 问题是机器B看到来自192.168.0.10(机器A的IP)的请求,而不是10.200.200.5。 我想要后者。 我当前的设置 机器A 这是相关的iptables规则的一个片段: *nat :PREROUTING ACCEPT [18:1080] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o eth0 -j MASQUERADE *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] // snip # accept incoming VPN connections -A INPUT -p udp -m udp –dport 1194 […]
我试图在运行一些KVM guest虚拟机的ubuntu 14.04.1主机上设置一些特定的IPTables规则。 该框具有多个具有多个IP地址的NIC,并且来宾根据其function使用不同的地址。 我通常使用iptables-persistent来达到这个目的,但由于某些原因,/etc/iptables/rules.v4下的规则在启动的时候并没有被加载。 当libvirt未安装时,iptables-persistent可以正常工作。 如果我运行“/etc/init.d/iptables-persistent start”,那么规则被加载,设置如我所料。 但在启动时,他们不是。 我已经尝试创build一个非常简单的rules.v4文件来debugging,但它仍然没有加载。 iptables-persistent的init符号链接存在于/etc/rc2.d/S37iptables-persistent 我已经确认ufw被禁用。 我也从/ etc / libvirt / nwfilter中删除了nwfilter规则,并且virsh nwfilter-list不显示任何条目。 任何想法还有什么可以设置这些规则,以及如何根据我的需要定制它们? ufw状态输出 # ufw status Status: inactive virsh nwfilter-list输出 # virsh nwfilter-list UUID Name —————————————————————— /etc/iptables/rules.v4的内容 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :LOG_AND_DROP – [0:0] -A INPUT -s 192.168.10.0/24 -i br0 -j […]
从机器192.168.1.2,我有这个iptables的configuration: $ hostname -I 192.168.1.2 $ iptables -L -n -v Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp — eth0 * 192.168.1.3 0.0.0.0/0 tcp dpt:6379 0 0 ACCEPT all — lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all — docker0 * 0.0.0.0/0 […]
我想让某个用户有一个特定的源IP地址。 为此,我向networking接口添加了辅助IP地址,并试图使用ip6tables和策略路由来强制使用源IP。 概要: 所有IPv6stream量都通过IPv4 OpenVPN接口(tap0)路由,网关是2001:db8::1 。 如果用户是someuser用户,则源地址必须是2001:db8::3 否则,源地址是2001:db8::2 。 默认路由和地址设置如下: ip -6 addr add 2001:db8::2/112 dev tap0 ip -6 route add default via 2001:db8::1 src 2001:db8::2 dev tap0 对于someuser路由器,我标记所有传出的数据包,并尝试使用单独的路由表路由那些具有不同源地址的数据包。 这些设置与: ip6tables -t mangle -A OUTPUT -m owner –uid-owner someuser -j MARK –set-mark 123 ip -6 rule add fwmark 123 table 1002 ip -6 addr add […]