我正在使用linode.com,他们提供了一个私人IP分配给每个VPS的能力。 我试图做的是设置每个节点的防火墙,以允许从networking上的其他节点访问,但我似乎没有太大的成功。 例如,我试图允许从server2访问server1:1337,两者的设置如下: server1: ifcfg-eth0: DEVICE="eth0" IPADDR="1.1.1.1" NETMASK="255.255.255.0" ifcfg-eth0:0: DEVICE="eth0:0" IPADDR="192.168.132.96" NETMASK="255.255.128.0" server2: ifcfg-eth0: DEVICE="eth0" IPADDR="1.1.1.2" NETMASK="255.255.255.0" ifcfg-eth0:0: DEVICE="eth0:0" IPADDR="192.168.132.97" NETMASK="255.255.128.0" 和server1上的IPTables规则集: #—– # Flush all current rules from iptables# #—– iptables -F iptables -F -t nat #—– #—– # Set access for localhost #—– iptables -A INPUT -i lo -j ACCEPT # !! Tried […]
所以我想在我的linux vps上安装shorewall防火墙。 vps运行Ubuntu 12.10。 当我键入$ shorewall检查时,我得到这个错误。 iptables: No chain/target/match by that name. ERROR: Log level INFO requires LOG Target in your kernel and iptables 所以我运行iptables -L和我得到 Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 我试着看其他职位,有一个类似的,但它并没有帮助我。 我正在使用的内核是2.6.32-042stab079.5 […]
[为长长的序曲道歉; 一半的问题。] 我有一个工作的OpenVPN设置,VPN服务器将路由返回到一个客户端(以下称为“路由器”),然后可以将自己的子网暴露给运行服务器的计算机以及运行VPN客户端的其他计算机。 这是通过使路由器使用iptables的SNAT目标来实现的。 例如,假设VPN服务器和其他不起眼的客户端位于10.0.77.0/24networking上,那么VPN会创build一个覆盖192.168.252.0/24的tun0接口,而私有子网为192.168.33.0/24。 OpenVPN服务器configuration(除其他外) client-to-client route 192.168.33.0 255.255.255.0 push "route 192.168.33.0 255.255.255.0" 当Linux“路由器”机器,192.168.33.10让我们说,连接到VPN它得到了一个路由,所以它的表看起来像 192.168.33.0 * 255.255.255.0 U 0 0 0 eth1 192.168.252.0 192.168.252.5 255.255.255.0 UG 0 0 0 tun0 192.168.252.5 * 255.255.255.255 UH 0 0 0 tun0 然后将其configuration为运行 sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -s 192.168.252.0/24 -j SNAT –to-source 192.168.33.10 它也可以添加一些iptables规则来创build一个防火墙,但是以上就足以让运行OpenVPN服务器(或另一个客户端)的机器连接到,比如192.168.33.11:数据包通过tun0发送到路由器,路由器使用SNAT将源IP设置为自己的192.168.33.10,然后将数据包转发给其兄弟机器192.168.33.11。 […]
我试图将所有IP上的端口80的所有请求redirect到端口9000 我有一个服务器在eth0上托pipe几个IP地址。 为了我的问题,让我们说,他们都使用Apache来监听端口9000 只有主IP地址(.106)正常工作并redirectstream量 Chain PREROUTING (policy ACCEPT 2132 packets, 256K bytes) pkts bytes target prot opt in out source destination 128 7236 REDIRECT tcp — eth0 * 0.0.0.0/0 173.234.60.106 tcp dpt:80 redir ports 9000 151 8624 REDIRECT tcp — eth0 * 0.0.0.0/0 173.234.60.107 tcp dpt:80 redir ports 9000 Chain INPUT (policy ACCEPT 0 packets, […]
鉴于以下安装: old router 192.168.1.1 with NAT forward of tcp port 80 to 192.168.1.10:80 new router 192.168.1.2 with NAT forward of tcp port 80 to 192.168.1.10:80 web server 192.168.1.10 with default gateway 192.168.1.1 目前,我的服务的DNS条目指向旧路由器的外部地址。 路由器将stream量端口转发给networking服务器,networking服务器将答案返回给旧网关。 为了无缝迁移到新的路由器(使用另一个外部IP),我想先设置一个新的路由器,testing两个连接都处于活动状态的整个事件,然后将DNS IP更改为新的外部地址。 现在,用上面的设置,旧的路由器仍然工作。 但是发往新路由器的tcp连接,也回答不能处理它们的旧路由器。 我想过用伪装来使用nat,但是发往新路由器的所有stream量看起来就像是本地stream量。 这会欺骗服务器基于ip的filter和日志logging。 现在,我的计划是使用一个Debian和iptables的帮助程序来获得一个临时解决scheme: old router 192.168.1.1 with NAT forward of tcp port 80 to 192.168.1.10:80 new router […]
我有一个服务器托pipe多个桥接(即水龙头)VPN使用openvpn,其中每个VPN有一个不同的10.8.X.0 / 24子网。 我希望将发送到每个VPN中的特定未分配IP地址(例如10.8.X.254)的stream量redirect到不同VPN上的固定地址(例如10.8.1.10)。 这样做的目的是通过保持VPN服务器上大量的路由configuration,使得客户端configuration保持相对干净(即它知道某些stream量总是到达自己的子网上的地址254),并且也更容易修改目的地知识产权在未来。 首先,在VPN服务器上,我用内核启用了IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward 然后,我尝试使用iptables在VPN服务器上为每个VPN设置NATredirect sudo iptables -t nat -A PREROUTING -s 10.8.2.0/24 -d 10.8.2.254 -j DNAT –to-destination 10.8.1.10 但是,从VPN内ping请求到10.8.2.254失败,出现Destination Host Unreachable并且tshark在服务器的VPN接口上报告以下networking通信 6.943311 10.8.2.12 -> 10.8.2.1 SSH 274 Encrypted response packet len=208 6.943347 10.8.2.1 -> 10.8.2.12 TCP 66 42926 > ssh [ACK] Seq=97 Ack=625 Win=563 Len=0 TSval=3930766820 TSecr=80207294 6.959100 […]
00:00:40.283608 IP (tos 0x0, ttl 116, id 49680, offset 0, flags [none], proto UDP (17), length 32) ip > ip: UDP, length 4 0x0000: 4500 0020 c21a 0000 6f11 1a1e 902b 4cdb E…….o….+L. 0x0010: —— 000c c12f 0870 ac49 …..0.(…/.pI 0x0020: 0000 0000 0000 0000 0000 **2664 94d4** ……….&d.. 如何使用iptables“2664 94d4”丢弃数据包? -I INPUT -p udp […]
我有一个Centos路由器在类似这样的设置中做了一个惊人的工作: eth0 – >没有IP eth0.200 – > 192.168.200.1 eth0.201 – > 192.168.201.1 …等等 eth0.213 – > 192.168.213.1 我有ipv4转发启用允许intervlan路由,然后: eth1 – >没有IP eth1.201 – > 10.1.29.40 eth0.202 – > 10.1.29.48 …等等 eth0.213 – > 10.1.29.136 当任何一个eth0networking从互联网上寻找一些东西时,iptables做SNAT,使用从10.198.29.138到10.198.29.142的IP范围作为公共IP。 一切都很好。 问题是我需要VLAN接口192.168.200.1驻留在eth1中。 当我将它移动到ifcfg-eth1.200时,我可以看到在一个数据包捕获中,许多客户端试图通过询问哪个MAC地址属于192.168.200.1来填充它们的ARP表,但是eth1.200永远不会回复! 我看到其他eth0.XXX响应ARP广播,但不是200.它可能是一个iptables的东西,或其他? 我的iptables看起来像这样: 编辑/决议摘要 感谢DAVID HOUDE的评论 我可以在解决一个不同的问题的时候尝试一下自己,sysctl -w net.ipv4.conf.eth0 / 202.rp_filter = 0命令是干什么的: SERVER <==eth0||eth1==> MAC FF:11 || […]
当以用户ec2-user身份运行以下脚本时,出现iptables v1.4.18: can't initialize iptables table filter: Permission denied (you must be root)错误消息iptables v1.4.18: can't initialize iptables table filter: Permission denied (you must be root) 脚本: #!/bin/sh # Offending IP as detected by mod_evasive # Add the following firewall rule (block IP) $IPTABLES -I INPUT -s $IP -j DROP 我怎样才能运行iptables作为一个非root用户来阻止一个IP地址? 注意:这个脚本通常由mod_evasive调用
我正在尝试将目标NAT从一个范围(192.168.2.0/24)转换为另一个范围(192.168.1.0/24)中的相应IP地址。 我设法通过ip做这个ip iptables -t nat -A PREROUTING -i ppp0 -d 192.168.2.1 -p all -j DNAT –to-destination 192.168.1.1 iptables -t nat -A PREROUTING -i ppp0 -d 192.168.2.2 -p all -j DNAT –to-destination 192.168.1.2 iptables -t nat -A PREROUTING -i ppp0 -d 192.168.2.3 -p all -j DNAT –to-destination 192.168.1.3 etc.. 有什么办法,我可以指定源和目标范围在单行? 谢谢!