Articles of iptables

iptables在POSTROUTING后丢弃数据包

我有一个恶意软件分析环境,将拦截使用InetSim任意域和互联网服务的stream量。 我有一个沙箱,其DNS服务器设置为InetSim实例,InetSim将使用自己的IP地址回答任何DNS查询。 这种设置适用于调用域名的恶意软件,但是如果它试图直接连接硬编码的IP地址,我的恶意软件环境就会错过它。 我试图使用iptables将任何出站stream量redirect回到同一子网上的InetSim实例,但数据包似乎在网关机器上的某处丢失。 networking上有三台机器 网关(Ubuntu 14.04LTS,运行VirtualBox,主机专用接口vboxnet0 192.168.54.1) InetSim(VirtualBox VM,Remnux(Debian)Linux发行版,eth0上的VBox主机专用接口,位于192.168.54.2) 沙盒(VirtualBox VM,WinXPSP2,VBox主机专用接口192.168.54.102) 我通常遵循netfilter NAT文档中概述的指南,而我的iptables规则是这样的。 基本上规则是, 出站stream量(不适用于192.168.54.0/24子网)发送到网关192.168.54.1 PREROUTING将目标地址更改为192.168.54.2处的InetSim实例 POSTROUTING将源地址更改为192.168.54.1处的网关 iptable规则 $ sudo iptables -v -t nat -L Chain PREROUTING (policy ACCEPT 17465 packets, 1818K bytes) pkts bytes target prot opt in out source destination 24 1763 LOG all — vboxnet0 any anywhere !192.168.54.0/24 LOG level debug […]

如何使用iptables或IFB标记设备传入的stream量?

我试图使用iptables标记传入的数据包基于这些数据包到达的设备(而不是它们的原始IP地址或端口等),但还没有find一个方法来获得这个工作。 具体来说,我可以设置一个筛选器来统计每个传入数据包(并且工作正常): iptables -F -t mangle iptables -A PREROUTING -t mangle -j MARK –set-mark 1 iptables -nvL Chain PREROUTING (policy ACCEPT 185 packets, 41507 bytes) pkts bytes target prot opt in out source destination 185 41507 MARK all — * * 0.0.0.0/0 0.0.0.0/0 MARK set 0x1 但是,只捕获来自eth2的数据包的filter似乎从来没有被触发过(即使这正是所有stream量来自的地方): iptables -F -t mangle iptables -A PREROUTING -t […]

Docker在iptables中打开端口(rabbitmq)

我有一个基于rabbitmq 。 我的Dockerfile中没有任何指定端口的东西。 我通过运行我的实例绑定通常rabbitmq端口(5671,5672和15672)到我的自定义端口,如下所示: docker run -d -p $someport:5671 -p 127.0.0.1::5672 -p $somemgtport:15672 myimage 在我的iptablesinput链中没有任何东西,FORWARD链中充满了通常的docker工具。 问题 当$somemgtport与15672不15672我无法从15672访问它(通过HTTP的rabbitmqpipe理界面)。 但是,似乎我正确地使用了-p标志,因为curl https://localhost:$somemgtport按预期工作(以及对$ someport的amqp调用)。 运行时,iptables DOCKER链如下: Chain DOCKER (1 references) target prot opt in out source destination ACCEPT tcp — !docker0 docker0 anywhere xyz tcp dpt:15672 ACCEPT tcp — !docker0 docker0 anywhere xyz tcp dpt:5671 ACCEPT tcp — !docker0 […]

在DNS服务器上停止无谓的批量查询

我有一个令人不安的问题,现在几个星期…我的三个DNS服务器之一(运行bind9作为Plesk DNS主服务器的从服务器)正在发送无谓的DNS请求垃圾邮件。 这些请求的来源IP来自世界各地,所以我不能仅仅通过iptables来丢弃IP范围或整个国家。 这里有几条日志,所以你可以看到这些“攻击”的scheme: 10-May-2015 11:15:54.714 client 120.87.202.161#47441: query: sjgzincrmxobabst.www.luzhiye.com IN A + (my-ip) 10-May-2015 11:15:56.252 client 111.187.196.51#41387: query: mrcf.www.330dp.com IN A + (my-ip) 10-May-2015 11:15:56.806 client 89.90.44.173#56673: query: qzwp.www.330dp.com IN A + (my-ip) 10-May-2015 11:15:57.891 client 116.93.242.237#55721: query: srapafupglkxaver.www.330dp.com IN A + (my-ip) 10-May-2015 11:15:59.611 client 123.153.92.59#20847: query: yj.www.330dp.com IN A + (my-ip) 这些请求并不是真正的攻击,因为主机服务器非常轻松。 […]

如何在Windows上模拟networking分区?

在一个实现聚类algorithm的项目上工作。 集群的一个重要属性是在面对networking分区时尊重保证。 为了certificate集群工作,我需要一种方法来在我的Windows开发环境中模拟分区。 在下面的例子中,我将使用term节点,在这个上下文中是一个Tcp侦听器,它启动一个Ip并接受一个端口上的传入连接。 例如在C#中: new TcpListener("10.16.8.9", 12345) testing用例:N2从N1和N3分区 Given I have a cluster of 3 nodes running on one NIC with 3 IPs N1 running at 10.16.8.9 N2 running at 10.16.8.10 N3 running at 10.16.8.11 Dev can connect to N1, N2, N3 When A partition occurrences for N2 Then N2 cannot reach N1 and […]

在同一个networking中模拟2个集群

我有4个pc和另一个pc,它们将作为代理,全部在同一个networking中:172.16.96.0/20。 我可以彼此之间ping。 但是,我想把它们分成两组。 那是: pc1 is directly connected to pc2 pc3 is directly connected to pc4 但是,从pc1或pc2到pc3或pc4的所有通信必须经过代理,并且从pc3或pc4到pc1或pc2的所有通信必须经过代理。 就像是: pc1 pc3 | -proxy- | pc2 pc4 pc1 IP: 172.16.97.24 pc3 IP: 172.16.97.27 proxy IP: 172.16.97.2 要在pc1上做到这一点,我补充道: ip route add 172.16.97.27 via 172.16.97.2 但是,当我做traceroute 172.16.97.27不会显示为一跳。我不知道是否应该.. 在代理上,路由表如下所示: default via 172.16.111.254 dev eth0 172.16.96.0/20 dev eth0 proto kernel scope […]

ipset不适用于iptables

我试图过滤一个国家,不断探测我的SMTP服务器(CentOS6),我似乎无法让ipset工作在iptables正确。 我从ipdeny.com下载了这些国家的IP地址,并将其作为文本文件安装。 最初,我把所有的黑名单IP地址都放在一个很长的iptables链中,但是这样做可能会对CPU造成负面影响 – 所以我想使用ipset。 以下是该IP地址文件的摘录: 185.40.4.31 80.82.65.237 2.60.0.0/14 所以现在我试图在ipset集中使用该列表。 我validationipset设置使用'ipset列表'填充。 Name: blacklist Type: hash:net Header: family inet hashsize 2048 maxelem 65536 Size in memory: 108816 References: 1 Members: …. 185.40.4.31 185.40.152.0/22 … 有了这个ipset,我把它添加到iptables: iptables -A INPUT -p tcp -m set –set blacklist src -j DROP 但是当我尝试使用hping3来testing这个集合时,这些包仍然会通过。 hping3 –syn –destport 25 –count 3 -a 185.40.4.31 […]

了解ippet从puppet下载的数据包

在我的木偶客户半定期运行期间,我看到数据包被丢弃。 我不明白是什么原因造成的。 我应该提到Puppet通过puppetlabs / firewall模块来pipe理防火墙规则。 但规则似乎没有改变。 通过这种说法,傀儡debugging并不显示规则被删除,然后被添加,数据包计数从傀儡代理运行之前继续,并且在傀儡代理运行期间查看规则在运行期间没有显示任何规则改变。 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT icmp — 0.0.0.0/0 0.0.0.0/0 /* 000 accept all icmp */ ACCEPT all — 0.0.0.0/0 0.0.0.0/0 /* 001 accept all to lo interface */ ACCEPT all — 0.0.0.0/0 0.0.0.0/0 /* 002 accept related established rules */ state RELATED,ESTABLISHED ACCEPT […]

将docker容器端口绑定到特定的外部服务器地址

这是我第一次解决这个networking“问题”来解决docker工,我需要一些input。 这是我的情况: 运行NginX的Ubuntu 14.04,作为防火墙和Docker容器运行PHP后端应用程序。 对于INPUT和OUTPUT以及FORWARD,Ufw默认策略设置为DROP。 sysctl规则: net.ipv4.conf.all.forwarding = 0 我的需要: 一个运行在守护进程模式下的容器,其端口8888 / tcp接受来自外部的连接,但仅来自ip 8.8.8.8,并且端口4444 / tcp从localhost 我的问题: Ufw被设置为仅接受来自IP 8.8.8.8的端口8888 / tcp上的传入连接。 因此,基本上: sudo ufw allow in from 8.8.8.8 to any port 8888 proto tcp 然后,我运行容器: docker run -p 8888:8888/tcp -p 127.0.0.1:4444:4444/tcp [other options ] 之后,从没有ip = 8.8.8.8的机器上运行nmap -p 8888 45.45.45.45 ,我希望得到port filtered 。 但…. Host […]

Samba服务器在一段时间后从浏览器列表中消失

我有一台Ubuntu服务器作为路由器运行。 在服务器上,我使用iptables和DHCP 3.1.3,Samba 3.4.7和OpenVPN 2.1.0服务器。 Samba服务器在一段时间后(超过20分钟)从VPN客户端浏览器列表中消失。 我从我的iptables日志中注意到的唯一事情是这样的: [..] OUTPUT:DROP: IN= OUT=eth0 SRC=10.100.0.1 DST=10.50.0.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=137 DPT=137 LEN=58 如果VPN客户端重新连接Samba服务器,则立即出现在浏览器列表中。 设置 networking :LAN和VPN分别位于其自己的子networking中。 (10.50.0.0和10.100.0.0) DHCP : subnet 10.50.0.0 netmask 255.255.255.0 { interface eth0; range 10.50.0.2 10.50.0.239; default-lease-time 6000; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 10.50.0.255; option routers 10.50.0.1; option domain-name-servers […]