Articles of NAT

iptables通过虚拟接口转发

我试图将我的计算机configuration为两个networking之间的网关,但由于某些原因我无法正常工作 这是一个networking的表示: 192.168.1.101 192.168.1.102 192.168.1.103 … | | | \————+——+——-+——–… | 192.168.1.200 (eth1) PC (192.168.2.101 192.168.2.102 192.168.2.103 …) eth0:1 eth0:2 eth0:3 | | | \————+——+——-+——–… | 192.168.2.200 (eth0) | … 我的电脑在接口192.168.2.200(eth0)上有N个虚拟接口(eth0:*)和自己的IP地址。 我希望任何连接(主要是TCP)攻击eth0:*接口的连接都被转发到等效的192.168.1.1 **服务器。 我尝试使用redir可执行文件,但由于服务器使用随机端口号进行侦听(不能改变这一点),我不得不重新启动进程,每次我做了一些testing。 所以我用这样的iptables规则(只有一台服务器进行testing): iptables -t nat -A PREROUTING -d 192.168.2.101 -j DNAT –to-destination 192.168.1.101 iptables -t nat -A POSTROUTING -d 192.168.1.101 -j SNAT […]

AWS EC2 Ubuntu 14.04实例smtp端口转发从25到2025

我正在尝试使用iptables在同一个AWS EC2 Ubuntu 14.04实例上将端口从端口25转发到端口2025。 我正在使用端口2025收到使用Alfresco的收入电子邮件。 我采取的第一步是使用AWS控制台打开安全组中INBOUND通信的端口25。 接下来,我使用新的EC2 Ubuntu实例按照以下步骤进行操作。 我的理解是,第一个命令允许入站stream量到端口25.第二个命令然后转发stream量从端口25到端口2025,然后最后一步保存(但不保留设置)。 sudo iptables -A INPUT -p tcp –dport 25 -j ACCEPT sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 25 -j REDIRECT –to-port 2025 sudo iptables-save 我已经确认,Alfresco正在使用以下命令监听端口2025和iptable设置: bitnami@ip-172-30-0-000:~$ netstat -an | grep 25 tcp6 0 0 :::2025 :::* LISTEN bitnami@ip-172-30-0-000:~$ sudo iptables -t nat […]

我的iptable规则不允许VPN连接

我已经在我的Archlinux服务器上安装了OpenVPN,并修改了我的iptable规则,允许端口1194上的传入stream量转发到tun0接口。 当我禁用/停止iptables时,OpenVPN客户端连接到服务器。 但是,启用iptables时,客户端无法连接到服务器。 客户端读取:“ 等待服务器响应 ”。 我的iptable rules : #!/bin/bash ## Flush all current rules from iptables iptables -F iptables -t nat -F ## Set default policies for INPUT, FORWARD and OUTPUT chains iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P […]

Apache通过负载均衡器访问时出现错误的证书

我有一个服务器有两个SSL证书的设置,一个用于内部访问的地方,它被访问host.my-local.net和其他外部访问的地方访问类似于185.185.185.185 (这是不是实际的IP地址,但它是一个IP地址,因为没有分配给它的主机名)。 当通过外部地址访问时,连接将通过一个我无权访问的负载均衡器/防火墙,我只知道它将特定端口上的传入连接转换为SSL端口上的内部地址。 问题是,当外部连接进来时,我得到浏览器警告,该网站伪装成host.my-local.net ; 它将提交host.my-local.net的证书,而不是185.185.185.185 。 我在我的apache2configuration文件中为这两个名称设置了虚拟主机,所以我认为服务器在区分外部连接和局域网连接时遇到了问题。 我没有使用简单的NAT来解决这个问题,所以我不知道如果负载平衡器使得请求看起来像是来自局域网而不是内部的,那么为什么会有所作为。 我已经validation了,我使用的浏览器支持SNI(Google Chrome)和Apache 2.4,显然支持它,而不需要NameVirtualHost指令。 但是,文档说: In 2.3.11 and later, any time an IP address and port combination is used in multiple virtual hosts, name-based virtual hosting is automatically enabled for that address. 但是,这两个不同的虚拟主机所使用的IP地址并不相同,一个是内部(LAN)IP地址,一个是外部(全球可见)IP地址,那么在这里适用? 为了澄清我的configuration,我设置了两个虚拟主机,如下所示: <VirtualHost 185.185.185.185:443> # here i specify the certificate for 185.185.185.185, eg SSLCertificateFile /etc/ssl/private/185.185.185.185.crt […]

使用Mikrotik RB2011通过主机名将NAT连接到同一端口上的两台不同的服务器

我有一个Mikrotik RB2011路由器,运行RouterOS,通过静态IP连接到互联网。 在我的局域网中,我有两台不同的服务器,一台是IP 192.168.89.11,另一台是192.168.89.12 我的DNS(在cloudflare上)将myfirstserver.com和mysecondserver.comparsing为我的路由器的静态IP。 现在,我想要做的是以某种方式分开的stream量,所以myfirstserver.com的所有stream量去192.168.89.11和mysecondserver.com的stream量去192.168.89.12(都在端口80.我知道我可以改变端口但是如果这些服务器是公开可用的,则没有用户将设置不同于80的端口) 到目前为止,我尝试过的方法是用标记来标记数据包,然后在NAT上使用这个标记来做正确的转发。 我尝试通过内容或第7层协议正则expression式来标记数据包(如果操作是日志,它们可以正常工作,我可以看到它们被正确logging)。 问题是,在我标记它们之后,NAT似乎忽略了它们,并将连接转发到接受未标记数据包的服务器。 我想我已经混淆了过滤和链条的顺序。 会有人能够提供一些指示/协助如何做到这一点? 谢谢! 编辑:我的问题是非常具体的,关于在Mikrotik路由器RouterOS标记数据包,并检查在NAT标记。 这不关我是否需要反向代理或其他什么。 谢谢 编辑2:@ Cha0s问我的/ip firewall export所以这里是: /ip firewall layer7-protocol add name=haf1a regexp=haf1a /ip firewall address-list add address=192.168.89.0/24 list=local add address=192.168.88.0/24 list=local add address=www.xxx.yyy.zzz list=local add address=192.168.87.0/24 list=local /ip firewall filter add chain=input comment="default configuration" protocol=icmp add chain=input comment="default configuration" connection-state=established add chain=input […]

NAT后面的星号设置错误的联系人标题

我在静态configuration的NAT后面使用带星号13.1.0的SIP。 private_ip服务器与public_ip不同,我可以在这里find它。 我已经在sip.conf文件中设置了这些选项。 externaddr=public_ip:5060 media_address=public_ip localnet=private_ip/24 如果我现在尝试开始呼叫,则消息可能工作,直到服务器将OK消息发送到客户端。 在这个消息中,星号将Contact头部设置为其私有的而不是公共IP。 SIP/2.0 200 OK From: "Test799" <sip:799@HOSTNAME>;tag=7ajcnltflq To: <sip:62@HOSTNAME;user=phone>;tag=as08a05471 Call-ID: 54b6479ed3e3-io8z54pk25ve CSeq: 2 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Session-Expires: 1800;refresher=uas Contact: <sip:62@PRIVATE_IP:5060> Content-Type: application/sdp Require: timer Content-Length: … v=0 o=root 1234 1234 IN IP4 PUBLIC_IP c=IN IP4 […]

尝试在两个不同的接口上使用源路由

我已经定义了以下规则: -A POSTROUTING -j SNAT –to-source [publicip] -A POSTROUTING -j SNAT -d 192.168.0.0/24 –to-source 192.168.0.6 基本上,我只想要专网通过192.168.0.6。 但是,只有一个networking工作。 有了这个configuration,只有公共networking的作品。 有没有办法实现我想要的?

使用主机的iptables来防止访问docker-container的暴露端口

我有一个运行几个docker的容器的主机。 这个主机有几个networking接口,我的目标是使一些暴露的端口从容器只能通过某些接口访问,并阻止访问他人。 我想使用主机的iptables的。 但它不可能简单地做到: iptables -I INPUT -i vlan2 –dport 80 -j DROP 因为数据包是通过预先路由转发的。 iptables -t nat -L PREROUTING 2 Chain PREROUTING (policy ACCEPT) target prot opt source destination DOCKER all — anywhere anywhere ADDRTYPE match dst-type LOCAL Chain DOCKER (2 references) target prot opt source destination DNAT tcp — anywhere anywhere tcp dpt:mysql to:172.17.0.2:33066 […]

iptables不能NAT多个IP地址

我有一个服务器与两个networking适配器:eth0和eth1。 此服务器运行两个不同的HTTPS Web服务器:一个是监听eth0(172.29.49.112:8443)另一个监听eth1(172.29.49.113:4443) 我有iptables的NAT规则,可以成功redirect这两个应用程序的标准https端口(443),但是iptables规则一次只能用于其中一个规则(它在激活时似乎是随机的)。 这里是在启动时从rc.local加载的规则(是的,我知道不build议从rc.local运行我的防火墙规则): #!/bin/sh -e # setup port forwarding for gerrit and jenkins instances su root -c "/sbin/iptables -t nat -A PREROUTING -i eth1 -d 172.29.49.113 -p tcp –dport 443 -j REDIRECT –to-port 4443" su root -c "/sbin/iptables -t nat -A PREROUTING -i eth0 -d 172.29.49.112 -p tcp –dport 443 -j REDIRECT –to-port […]

防火墙如何让Facebook请求绕过自身?

我的工作场所configuration了McAfee Firewall。 它积极阻止所有的网站请求 https://www.Flipkart.com https://www.Amazon.com https://www.Facebook.com 我玩弄请求,发现迈克菲不会阻止Facebook尝试 https://www.facebook.com/pages 而且我可以使用上面提到的login页面和平login我的FB账户。 然后,我试图与Flipkart和亚马逊,但不能成功。 我希望知道Facebook的过滤规则如何被拦截,而他们仍然阻止其他网站,如亚马逊和Flipkart。 我可以很容易地发现,IT团队一定错过了过滤规则(FB站点)? 这个查询的任何细节将不胜感激。