端口前言+ openVPN + iptables?

我试图分享我的networking之间的VPN连接没有任何运气。

我有一个办公室,有几台电脑,我们使用iptables和我们的DNS服务器共享互联网连接,我们也有邮件和FTP服务器。 我们的ISP不断改变那里的规则,他们开始阻止像25,21和143这样的一些端口。所以我能想到的最好的解决scheme是使用vpn服务,使用静态ip地址来代替我的ISP ip地址。

我需要我的本地networking中的所有计算机都使用VPN IP地址,而不是我的ISP IP地址。

我的networking基础设施是这样的:

具有2个NIC的主DNS服务器:/ etc / network / interfaces

 auto lo eth0 eth1
 iface lo inet loopback

 #互联网 
 iface eth0 inet static
    地址10.0.0.2#dsl调制解调器
    networking掩码255.255.255.192
    网关10.0.0.1        
 #本地
 iface eth1 inet static
    地址10.0.1.1#本地networking
    networking掩码255.255.255.240

邮件服务器/ etc / network / interfaces

汽车
 iface lo inet loopback

 #主要networking接口
 auto eth0
     iface eth0 inet static
        地址10.0.1.3
        networking掩码255.255.255.240
        网关10.0.1.1


在/etc/resolv.conf
 nameserver 10.0.1.1

本地networking上的其他客户端

地址10.0.1.x  
networking掩码255.255.255.240
网关10.0.1.1
 nameserver 10.0.1.1

我find了一种方法来分享使用这个VPN连接:

  #Disable防火墙
 iptables -F
 iptables -X
 iptables -t nat -F
 iptables -t nat -X
 iptables -t mangle -F
 iptables -t mangle -X
 iptables -Pinput接受
 iptables -P FORWARD ACCEPT
 iptables -P OUTPUT ACCEPT


 WAN = eth0的
 VPN = TUN0
 LAN = eth1的
 echo 1> / proc / sys / net / ipv4 / ip_forward
 iptables --append FORWARD --in-interface $ LAN -j ACCEPT
 iptables --table nat --append POSTROUTING --out-interface $ WAN -j MASQUERADE
 iptables --table nat --append POSTROUTING --out-interface $ VPN -j MASQUERADE [/ CODE]

与此我的networking上的所有计算机使用VPN IP地址互联网。

我需要的是端口转发一些端口:

  • 53从互联网到10.0.1.1
  • 80从互联网到10.0.1.2
  • 110从互联网到10.0.1.3
  • 143从互联网到10.0.1.3
  • 25从互联网到10.0.1.3

iptables -L -v

 链接INPUT(策略接受107K数据包,53M字节)
  pkts字节目标人选退出源目的地         

链FORWARD(策略ACCEPT 93343包,45M字节)
  pkts字节目标人选退出源目的地         
  117K 18M接受所有 -  eth1任何地方的任何地方            

链OUTPUT(策略ACCEPT 131K包,27M字节)
  pkts字节目标人选退出源目的地 

iptables -L

连锁input(政策接受)
目标人select源目的地         

连锁FORWARD(政策接受)
目标人select源目的地         
随时随地接受            

链式输出(策略ACCEPT)
目标人select源目的地  

路线-n

内核IP路由表
目标网关Genmask标志度量参考使用Iface
 174.37.222.38 10.0.0.1 255.255.255.255 UGH 0 0 0 eth0
 10.0.1.0 0.0.0.0 255.255.255.240 U 0 0 0 eth1
 10.0.0.0 0.0.0.0 255.255.255.192 U 0 0 0 eth0
 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 tun0
 0.0.0.0 10.10.11.1 128.0.0.0 UG 0 0 0 tun0
 128.0.0.0 10.10.11.1 128.0.0.0 UG 0 0 0 tun0
 0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0

使用ifconfig

 eth0 Link encap:Ethernet HWaddr 00:30:4f:1c:49:f8  
           inet addr:10.0.0.2 Bcast:10.0.0.63 Mask:255.255.255.192
           inet6地址:fe80 :: 230:4fff:fe1c:49f8 / 64范围:链接
          广播运行多播MTU:1500公制:1
           RX数据包:107511错误:0丢弃:0超出:0帧:0
           TX数据包:129620错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:1000 
           RX字节:56746295(56.7 MB)TX字节:29161617(29.1 MB)
          中断:11基地址:0xc000 

 eth1 Link encap:Ethernet HWaddr 00:08:54:41:42:88  
           inet addr:10.0.1.1 Bcast:10.0.1.15 Mask:255.255.255.240
           inet6地址:fe80 :: 208:54ff:fe41:4288/64范围:链接
          广播运行多播MTU:1500公制:1
           RX数据包:132276错误:0丢弃:0超出:0帧:0
           TX数据包:105899错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:1000 
           RX字节:22646823(22.6 MB)TX字节:50537547(50.5 MB)
          中断:10基地址:0xc400 

链路封装:本地环回  
           inet addr:127.0.0.1掩码:255.0.0.0
           inet6 addr::: 1/128范围:主机
           UP LOOPBACK RUNNING MTU:16436公制:1
           RX数据包:1501错误:0丢弃:0超出:0帧:0
           TX包:1501错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:0 
           RX字节:192540(192.5 KB)TX字节:192540(192.5 KB)

 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
           inet addr:10.204.139.115 PtP:10.204.139.115 Mask:255.0.0.0
           UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500公制:1
           RX数据包:101518错误:0丢弃:0超出:0帧:0
           TX数据包:127403错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:100 
           RX字节:46913004(46.9 MB)TX字节:19594649(19.5 MB)

在你的网关上试试这些规则:

  -A PREROUTING -i $ VPN_INTERFACE -p tcp -m tcp --dport 80 -j DNAT  - 到目的地$ INTERNAL_IP_DESTINATION:80
 -A POSTROUTING -o $ VPN_INTERFACE -j SNAT  - 从源到$ VPN_IP_OF_SERVER
 -A POSTROUTING -o $ LAN_INTERFACE -j SNAT  - 对源$ LAN_IP_OF_SERVER

1。 一个使端口转发。
第2位。 使源NAT,所以每个来自VPN的数据包使用服务器IP
3。 使数据包转发到内部IP,具有服务器LAN IP地址