Articles of iptables

是iptables -F命令locking我的SSH?

我正在使用iptables为VPS创build一些防火墙规则。 我的shell脚本看起来像这样: #!/bin/sh # My system IP/set ip address of server SERVER_IP="1.2.3.4" # Flushing all existing rules iptables -F iptables -X # Setting default filter policy iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Allow SSH on 22 iptables -A INPUT -i eth0 -p tcp –dport 22 -m state –state […]

IPtables端口转发

场景: 在Linksys路由器上使用DDwrt。 我想使用IPtables将特定的公共IP地址端口转发到内部IP 192.168.0.20端口80。 不知道如何做到这一点,将不胜感激。

如何从静态NAT NETMAP中排除多个目的地?

我在iptables中有一个静态的1:1的NAT设置,这个设置排除了一个更大的子网(这样NETMAP主机仍然可以到达非静态NAT的其他本地主机),像这样: *nat -A PREROUTING –destination 128.128.196.32/27 -j NETMAP –to 10.10.20.32/27 -A POSTROUTING –source 10.10.20.32/27 ! -d 10.0.0.0/8 -j NETMAP –to 128.128.196.32/27 我也想排除面向公众的IP地址,这样静态NAT主机仍然可以达到机器上另一个静态NAT主机的公有IP地址。 但是多个否定的目的地似乎不被支持。 这会引发一个错误: *nat -A PREROUTING –destination 128.128.196.32/27 -j NETMAP –to 10.10.20.32/27 -A POSTROUTING –source 10.10.20.32/27 ! -d 10.0.0.0/8 ! -d 128.128.196.0/24 -j NETMAP –to 128.128.196.32/27 我如何设置iptables允许静态NAT NETMAPed主机到达iptables机器上的其他公共地址?

转发stream量基于IP的IP?

我想要做以下事情:我有一台主机服务器上安装了两个虚拟Web服务器。 第一个虚拟networking服务器是生产,第二个是开发。 在我的DNS我已经绑定让example.com到我的外部IP,并在iptables中做端口转发(端口80到生产服务器),但现在我想改变这个逻辑如下:如果域是dev.example。 com我想转发stream量发展(192.168.1.10)服务器到生产(192.168.1.20)。 我已经阅读了一些关于如何使用iptables做到这一点的文章,但他们并不确定如果这是可能的,我也有这样做的想法与代理(如鱿鱼)。 我知道我可以做到这一点与PHP脚本(将所有stream量转发到forward.php,然后redirect到IP,但我真的不想这样做)。 有没有什么办法可以做到这一点,因为经过几小时的研究,我找不到它们。

有没有一个原因,我不应该使用iptables端口转发?

我有一个小的应用程序运行在端口8888,作为一个快速修复,以消除需要附加端口的URL,我使用iptables程序转发所有请求到端口80到8888。 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp –dport 80 -REDIRECT –to-port 8888 假设这是服务器上唯一运行的Web服务,上述方法有什么问题? (性能,维护等…)任何人都可以提出一个好的select? 我对服务器维护相当陌生,所以有兴趣听听专家的说法。

输出规则不起作用(iptables)

Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP all — 69.59.197.21 anywhere 我现在有这个积极的规则。 但是,正如你可以看出,这是行不通的,因为我正在写这个问题。 如果我将规则添加到INPUT chain ,它可以很好地工作。 最初我aaa of course, it isn't working because it's asking DNS for www.serverfault.com认为aaa of course, it isn't working because it's asking DNS for www.serverfault.com ,所以我添加了规则iptables -A OUTPUT -s www.serverfault.com -j DROP ,但仍然是相同的。 为什么iptables允许传出数据包到这个networking?

iptables匹配语法

对于下面的iptables规则: iptables -A INPUT -p icmp -m icmp –icmp-type 255 -j ACCEPT 我不确定“-m”是什么意思,“-p”已经存在。 在这种情况下它有什么作用吗? 在保留所有function的情况下,上述内容可以简化为下列之一吗? iptables -A INPUT -p icmp –icmp-type 255 -j ACCEPT 要么 iptables -A INPUT -m icmp –icmp-type 255 -j ACCEPT 感谢您的任何提示。

IPTables可以使用通配符子域引用阻止传出stream量吗?

我想阻止使用IPTables的任何域或子域的所有传出stream量。 这看起来-d选项允许一个引用一个域。 我通过Googlesearchfind了以下内容,表明可以通过以下方式引用它:只允许特定域的HTTP通信, 同样的,我们也可以使用上面的方法来过滤其他的端口和协议,比如在tcp端口80上运行的标准networkingstream量。 iptables -I FORWARD 1 -p tcp -d dd-wrt.com –dport 80 -j ACCEPT iptables -I FORWARD 2 -p tcp –dport 80 -j DROP 这将接受所有的HTTPstream量dd-wrt.com,同时阻止传出httpstream量到其他地方。 如果您希望允许多个站点,请在DROP之前插入其他规则(确保正确命令并编号)。 然而,我想要做的是参考*。域名.com(例如阻止所有传出的stream量* .youtube.com或类似)。 有谁知道这是否可能,如果是这样,IPTables中的-d选项的语法是什么,以支持通配符子域?

Linux iptables允许一些端口

我们有一个Linux服务器(CentOS 6.3),其中所有端口似乎都可以从内部访问(当从服务器尝试时),但是只有SSH可以从外部访问。 我想允许一些其他的端口,如1521(甲骨文),但我不能得到它的工作。 我尝试了以下内容: iptables -A INPUT -m state –state NEW -p tcp –dport 1521 -j ACCEPT service iptables save service iptables restart 但是当我从另一台机器上执行“telnet 192.168.97.1 1521”的时候,我仍然得到“连接超时”,而我可以用相同的命令从服务器连接。 这是我在/ etc / sysconfig / iptables中所拥有的: # Generated by iptables-save v1.4.7 on Fri Mar 15 12:13:41 2013 *nat :PREROUTING ACCEPT [6:1136] :POSTROUTING ACCEPT [14:878] :OUTPUT ACCEPT [15:986] -A POSTROUTING […]

OpenVPN端点到使用真实IP的端点

我想通过互联网连接两台服务器。 由于各种原因,我不能使用IPSec。 我希望stream量被透明地encryption,就像我使用IPSec传输模式一样。 我决定使用这个路由(但我打开更好的select) 我的隧道是10.255.255.0/30使用.1 ,B使用.2 。 假设服务器A在192.168.0.100和服务器B 172.16.0.200 。 虽然我可以添加一条路由来encryption所有stream量(使用A ip route add 172.16.0.200/32 dev tun0 via 10.255.255.2 ),但是这样会杀死隧道,因为OpenVPNstream量使用相同的远程IP来保持隧道。 我需要一种方法来通过eth0路由实际的OpenVPN隧道,否则使用tun0来承载服务器A和B之间的所有stream量。我已经在两台服务器上启用了ip_forward,并且有适当的防火墙规则来允许stream量,但是我不知道从哪里开始在iptables中做到这一点。