Articles of iptables

如何允许networking名称空间中的应用程序访问全局文件系统?

我有几个潜在的高风险和高吞吐量的应用程序(如bind,ntpd等)。 我计划为操作系统任务,更新,SNMP,自动化等提供一个“pipe理域”,以及一个只包含我提供服务的守护进程的“服务域”。 我已经成功地为它们创build了networking命名空间,分配了专用IP地址,离散路由等等。我希望能够使用IPtableslogging名称空间内的守护进程的某些行为(在dns上请求recursion查找的唯一设备等)。 )但是我不能让IPtables中的“LOG”目标工作。 我已经尝试在ns内运行一个syslog守护进程,但它仍然不起作用。 它可能要写入全局文件系统而不被允许。 我对命名空间有点新,所以任何想法都是赞赏的。

如何在运行Docker时configurationiptables

我在这里遇到了一个困难的情况,我在docker主机上设置了很多容器,运行不同的应用程序,比如mailserver,数据库,redis和某些使用其他容器作为依赖项的html应用程序。 所有已经使用hostport:containerport使用-p标志,端口不绑定到主机,他们可以在互联网上被监听。 在设置从属应用程序时,我使用主机的docker bridge IP(不是公共IP)来链接。 例如:piwik容器使用172.17.42.1:port IP连接到mysql数据库容器,该IP是用于容器联网的docker bridge的默认IP。 然后,我用nginx(在主机上)在本地主机(127.0.0.1:port)上build立一个基于dns的代理来路由到在容器内运行的应用程序。 最初在build立系统时,我认为除了需要打开的端口(80,443等)以外,所有的stream量都被丢弃,ACCEPT接口将完成这项工作。 但docker接口使用FORWARD链路到docker0桥。 该前向链使用不规则规则转发到容器IP:端口 我想要的是从sub.domin.com使用应用程序,但不应该从IP:端口或域:端口访问。 现在我刷新了所有的iptables iptables -F iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -P INPUT DROP iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o docker0 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A […]

iptables'重写'在某个端口上的请求?

好吧,我的情况基本上是这样的…我有一个框,充当路由器,有2个接口, eth0和eth1 。 eth1是我的上行链路,就是这个盒子通过它获得一个互联网连接的接口。 eth0是下行链路,也就是其他设备/交换机/无线AP /您将连接的接口。 我想以某种方式,使用iptables,使所有请求端口53任何源于eth0地址,而不是发送到运行在127.0.0.1的DNS服务器,当该DNS服务器发送答复时,发送请求应该看起来像回复来自他们实际发送数据包的地址。 例如,假设有一台连接eth0的机器configuration为使用8.8.8.8作为DNS服务器。 路由器的DNS服务器有一个example.com的logging,指向192.0.2.1 。 连接到eth0的机器上有人运行dig example.com @8.8.8.8 。 他们得到的答复是来自8.8.8.8 ,但ACTUALLY来自路由select框,并且这个答复表示example.com的Alogging是192.0.2.1 。 我怎样才能做到这一点? 请注意,这需要适用于任何DNS服务器地址,而不仅仅是8.8.8.8 。

禁止IP与转发不起作用

我使用类似于其他服务器桥梁的VPS。 我使用apf-firewall和这个文件/etc/apf-firewall/preroute.rules作为其他服务器的远程端口。 这是文件的结尾: iptables -t nat -A PREROUTING -p tcp –dport 3389 -j DNAT –to-destination 37.187.171.233:3389 iptables -t nat -A POSTROUTING -j MASQUERADE 所有的伟大的工作,但是当我想禁止一个IP apf -d 127.0.0.1或iptables -I INPUT -s 127.0.0.1 -j DROP不起作用。 连接仍然被转发。 我试过这个命令iptables -I FORWARD -d 127.0.0.1 -j DROP但是结果相同。 如果连接被转发,如何阻止IP?

cURL到localhost被iptables丢弃

我正在尝试在shell上使用cURL来连接到本地主机。 我使用curl http://localhost:80来连接。 不幸的是,它被iptables阻止。 以下是iptables日志中的错误原因: IPTables-Dropped: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=80 DPT=58617 WINDOW=32768 RES=0x00 ACK SYN URGP=0 这里的iptables: iptables -L -v Chain INPUT (policy DROP 314 packets, 19725 bytes) pkts bytes target prot opt in out source destination 30731 4342K ACCEPT all — eth0 any anywhere anywhere […]

如何使用iptables将传出的VPN服务器stream量重新路由到Tor?

在三天之后,我们可以使用StrongSwan在我的备用电脑(Ubuntu Server 14.04)上安装一个VPN服务器,用户可以在[email protected]指导,一些debugging和帮助。 客户端能够成功连接到VPN服务器。 我希望VPN服务器将所有传出stream量redirect到TOR。 IPsec VPN正在默认侦听0.0.0.0:500,TOR正在侦听localhost:9050。 理想情况下,我所有的客户端都将连接到VPN服务器,然后通过TOR发送所有的stream量。 我对iptables知之甚less。 我尝试了解它,但它需要很多我缺乏的TCP / IP和networking知识。 我想知道这里有人能给我一个解决scheme,或者指引我朝着正确的方向。 这是ifconfig -a的输出: eth0 Link encap:Ethernet HWaddr 08:00:27:41:6a:50 inet addr:xxx.xxx.237.34 Bcast:xx.xxx.237.255 Mask:255.255.255.0 inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link inet6 addr: xxxx:xxx:xxx:xxx:xxx:xxxx:xxxx:xxxx/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:137431 errors:0 dropped:1 overruns:0 frame:0 TX packets:3737 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11179896 (11.1 […]

无法使VPS中的iptables工作 – 状态和conntrack不可能

我一直在浏览和阅读文件整夜,我无法找出任何解决scheme… 我试图让iptables在我的VPS(Debian 7)上工作。 但是我不能build立连接的答案。 "-m state –state"和"-m conntrack –ctstate"都不起作用。 两者都导致iptables:没有链/目标/匹配的名称。 据我所知,状态已经从iptables外包,conntrack没有安装在我的系统上,不能安装,因为我没有得到内核访问networking接口系统。 我试图从头安装它,但都尝试(从包和源)失败。 我改变了系统到Ubuntu 14.04试试,但它也没有工作。 有什么解决办法或我可以做的其他事情吗? 我正在使用PF作为防火墙,所以我不熟悉iptables。 这里是我添加的规则 – 我可能忘记了什么? iptalbes -F iptables -A OUTPUT -j ACCEPT iptables -A FORWARD -j DROP iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp –icmp-type echo-reply -j […]

Ubuntu / iptables:使用服务器作为中间人与防火墙服务器交谈

我有一种情况,我需要与仅允许来自一个特定IP的连接的API进行通信。 所以api.example.com接受来自白名单ip的端口443上的连接 我希望能够从任何地方连接到白名单-ip端口443,并将它转发到端口443上的api.example.com,并将响应发送回连接的机器。 我认为有一些类似于透明鱿鱼代理的方法,但我无法弄清楚。 我尝试使用下面的语句在这里的例子( http://www.tldp.org/HOWTO/TransparentProxy-6.html ),但没有成功。 iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 443 -j DNAT –to api.example.com:443 iptables -t nat -A POSTROUTING -o eth1 -d api.example.com -j SNAT –to whitelisted-ip 任何帮助,将不胜感激。 更新: 我也尝试了下面,无济于事: iptables -t nat -A PREROUTING -p tcp -d whitelisted-ip –dport 443 -j DNAT –to api.example.com:443 iptables -t […]

无法将请求redirect到特定的URL到本地主机

我有一个监听http://localhost:3000的服务器,并且我想将所有请求从Chrome扩展(一些JSON数据)转发到http://api.lingualeo.com/addword到http://localhost:3000 。 我做了什么: # sysctl -w net/ipv4/conf/all/route_localnet=1 # iptables -t nat -A OUTPUT -p tcp -m string \ –string "POST /addword?port=1001" –algo kmp \ -j DNAT –to-destination 127.0.0.1:3000 但它没有工作,我的iptables -nvL是干净的。 我试过了: # iptables -t nat -A OUTPUT -p tcp -m string \ –string "POST /addword?port=1001" –algo kmp \ -o lo -j REDIRECT –to-ports 3000</code> 这也没有工作,我的iptables […]

从iptables获取原始目标端口

我想创build一个本地服务器,充当所有stream量的代理,但是如何在使用iptables重新校正networkingstream量时阻止原始端口。 当代理连接到现实世界时,我需要这个。