Articles of iptables

使用iptables和stunnelencryption点对点应用程序

我正在运行遗留的应用程序,我无法访问源代码。 这些组件在特定端口上使用明文进行对话。 我希望能够使用诸如stunnel之类的东西来保证两个或更多节点之间的通信,以促进对等通信,而不是使用像OpenVPN这样更传统的(和集中式的)VPN包等。 理想情况下,交通stream量将如下所示: app @ hostA:1234尝试打开一个TCP连接到app @ hostB:1234。 iptables捕获端口1234上的stream量并将其redirect到在端口5678上的hostA上运行的通道。 stunnel @ hostA与stunnel @ hostB:4567协商并build立连接。 stunnel @ hostB将任何解密的stream量转发到app @ hostB:1234。 实质上,我试图将其设置到任何出站stream量(在本地机器上生成)到N端口通过通道转发到端口N + 1,并且接收端在端口N + 1上接收,解密并转发到港口N的本地应用程序 当stunnel @ hostB转发到app @ hostB时,我并不特别担心丢失hostA的源IP地址/机器标识,因为通信负载包含标识信息。 另一个窍门就是通常情况下,你有一个客户/服务器体系结构。 但是这个应用程序比P2P要多得多,因为节点可以dynamic地来回移动,在stunnelconfiguration中硬编码某种“connection = hostN:port”将不起作用。 编辑:另一种可能性可能是configuration某种types的默认路由,使得到端口N的出站stream量通过configuration为网关的stunnel转发。

冗余的iptables路由器 – 辅助路由器日志loggingmartian包错误

我们有一个networking,大部分都是用一对冗余的Linux Iptables防火墙/路由器来build立的,但是我们错过了一个关键的难题。 任何发向辅助路由器的本地stream量都将在同一个子网中成功,但不能通过“主”路由器ip。 这是一个例子: networking图 Router1和Router2在10.0.0.0/24(Subnet0)和10.0.1.0/24(Subnet1)上都有接口,通过ucarp共享一个VIP 10.0.1.1。 Webserver1的IP为10.0.1.11,默认网关为10.0.1.1 在Subnet0和Subnet1接口上,Webserver1到Router1的Ping成功 从networking服务器1到路由器2的Subnet1接口上,Ping是成功的。 (不涉及路由) 但是,Ping从Subnet0接口上的Webserver1到Router2失败。 Router1收到Subnet1接口上的回应请求并按照预期将其转发出Subnet0接口,但当回应请求到达正确的(Subnet0)接口上的Router2时,Router2不会发送回复。 每次发生这种情况,Router2都会logging一个火星包。 7月31日21:39:33 Router2内核:[2772508.610259] martian source 10.0.0.3 10.0.1.11,dev dev0.1000 我们认为火星login线是由到达与networking不同接口的数据包引起的,而路由器已经有不同的接口,系统认为这是一个无效的源接口。 这个问题的解决办法是什么? 当Router1发送给Router2时,我们是否应该像SNAT那样做?

网站通过代理知道“真正的”访问用户(IP)?

我是Squid和iptables的新手,正在调查他们是否能够做到 完成一项任务。 我的squid.conf的一部分: acl wf myport 8010 acl vp myport 8020 acl ss myport 8030 cache_peer IP1 parent 80 0 no-query originserver name=wflocal cache_peer_access wflocal allow wf cache_peer IP2 parent 80 0 no-query originserver name=vplocal cache_peer_access vplocal allow vp cache_peer IP3 parent 80 0 no-query originserver name=sslocal cache_peer_access sslocal allow ss cache_peer_access sslocal deny all […]

如何在Cent OS下为socket.io打开一个低于1024的端口?

我试图在我的Cent OS 5.2中打开端口843 ,我添加了以下行etc\sysconfig\iptables : -A INPUT -p tcp –dport 843 -j ACCEPT 然后更新我的iptables服务。 我需要通过sudo node index.js命令来监听由root用户运行的node.js应用程序中的那个端口,但是当我尝试通过该端口build立连接时仍然会出现forbidden port错误。 这是我通过运行sudo iptables -L -v : Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 2811 238K ACCEPT tcp — any any anywhere anywhere tcp dpt:http 112 6224 ACCEPT tcp […]

Webmin在哪里存储其防火墙configuration?

我想将iptables的防火墙configuration从一台服务器复制到另一台服务器。 两台服务器都运行Debian Squeeze并安装了Webmin 1.660,所以我想复制Webmin使用的configuration。 我无法在“/ var / webmin”,“/ etc / iptable *”,“/ etc / sysconfig / iptables”或“iptables.up.rules”中find它。 “/ var / lib / iptables / active”是当前的configuration,当我编辑它时,这些更改不会显示在Webmin中。 虽然,当我点击“恢复configuration”时,我的更改将丢失在该文件中并被replace。 我必须复制哪个文件?

使用IPTables将一个端口上的本地请求转发到另一个端口上的远程服务器

我有一个Docker容器中的应用程序。 我有另一个Docker容器中的数据库。 数据库容器有一个暴露的端口49155.应用程序要求数据库暴露在3306端口,我不能改变,由于IonCube混淆。 所以,我可以将我的应用程序指向数据库容器,但应用程序无法find数据库(错误的端口)。 我最初的解决scheme是我们IPTables转发本地请求端口3306到远程容器端口49155使用: iptables -t nat -A PREROUTING -p tcp –src 127.0.0.1 –dport 3306 -j REDIRECT –destination 192.168.200.212 –to-ports 49155 还是行不通。 有什么想法吗? 编辑 从应用服务器尝试: iptables -t nat -I OUTPUT -p tcp –dst 192.168.200.212 –dport 3306 -j REDIRECT –to-ports 49155 和 iptables -t nat -A PREROUTING -p tcp –dport 3306 -j DNAT –to-destination 192.168.200.212:49155 […]

在两个子网之间创build防火墙有哪些安全问题?

据我了解,不同子网上的主机不能互相通信,除非在两个子网上都有一个路由器在它们之间转发stream量。 我在networking上有两个子网,分别是:192.168.0.0/24和192.168.1.0/24。 我想在它们之间创build一个防火墙路由,使用一个连接到两个子网的Linux盒子。 防火墙将在iptables中实现。 连接到networking的所有主机将被信任,用户将不具有pipe理权限来改变其networkingconfiguration(即只连接到另一个子网上)。 假设我上面所说的一切都不完全是废话,那么连接到一个子网的用户可能绕过防火墙并访问另一个子网的方式是什么? 明显的发生在我身上的只是连接一个不受信任的主机。 澄清:我试图创build一个自定义的防火墙解决scheme(不是现成的)。 它将被集成到现有的解决scheme中,该解决scheme已经在Linux机器上运行,所以事物的一面是固定的。 防火墙将允许根据物理网卡或VLAN来定义防火墙。 在我看来,基于物理局域网的区域只允许有人在物理上连接到networking,而不应该是这样。 除了encryption之外,这一点归结为物理安全。 假设您没有错误configuration某个交换机以暴露携带dot1Qstream量的terminal,或者允许VLAN跳跃攻击,则基于VLAN的区域基本相同。 我的问题的根源在于是否可以将基于子网的区域(运行在相同的物理硬件上)添加到可防火壁垒的列表中。 这当然会依赖于所有连接的主机是“可信的”,并且所有的用户(防火墙至less应用到这个用户)没有pipe理权限来混乱networking设置。

Linux iptables根据mac地址丢弃stream量

我正在做一些testing在我的linux虚拟机与一nic,我想用它作为某种防火墙,可以阻止一些客户端的基于MAC地址的stream量。 客户端本身将虚拟机作为默认网关(.254),虚​​拟机本身具有(.1实际路由器)作为默认网关。 这是我目前使用的iptable脚本。 我在我的客户端有互联网,但是.14仍然是互联网,使用mac地址时,没有任何阻止。 我错过了什么吗? # Generated by iptables-save v1.4.14 on Sun Feb 23 12:16:26 2014 *filter :INPUT ACCEPT [869:78983] :FORWARD ACCEPT [1183:197765] :OUTPUT ACCEPT [644:128360] # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 […]

我如何防止TINC中继DHCP

我在运行Debian 7 Wheezy的几个NAT路由器上运行tinc,除了因为我已经在交换机模式下设置了它,它会中继DHCP请求并且通过所有的VPN来应答,所以VPN可以正常工作好几个月。 问题是主机A正在使用10.10.10.2-254的DHCP池,10.10.10.1作为网关(主机A),主机B使用10.10.10.2-254的池作为DHCP,10.10.20.1作为网关(主机B)等等。 请注意,tinc tap(以太网)接口桥接在物理LAN接口上,因为我的“云”的目的是使所有networking(A,B ..)中的所有主机出现在同一个局域网中。 我正在寻找一个简单的解决scheme来克服这一点。 尝试使用iptables与physdev和physdev-in指定tinc接口,但这似乎没有工作。 有没有其他的解决办法呢? PS:切换到路由器模式不是一个解决scheme,因为我真的需要多播和其他非路由协议。

proxmox KVM通过多个公网IP路由networking

我有一个hetzner专用主机。 另外我买了一个6IP子网。 我的主要IP是:148.111.111.200我的主要子网是:255.255.255.224 我的额外IP是148.222.222.1到148.222.222.6。 我的使用场景如下:几个实例将面向公共IP(networking服务器等)所有的实例将有一个内部局域网的第二个nic安装,所以我可以在外面的专用networking上lockingmysql服务器,memcached等。 networking服务器将在148.222.222.1联机,并将有第二个网卡与IP 10.10.10.10 目前,我已经安装了内部局域网。 所有的实例都可以通过内部IP(10.10.10.X)相互连接和ping,但是我的networking服务器无法连接到互联网。 我不能使用桥接模式,因为hetzner不允许多个MAC在同一个外部IP,所以我不得不使用路由模式。 这是我的/ etc / network / interfaces文件的主机: # network interface settings auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 148.111.111.200 netmask 255.255.255.255 pointopoint 148.111.111.193 gateway 148.111.111.193 broadcast 148.111.111.223 post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp #commentedout #up route add -net 148.111.111.192 netmask 255.255.255.224 […]