linux的pptp服务器网络配置

一、iptables的相关知识

1、这张图很重要,让我们明白iptables各个chain的流程关系

2、整个chain是从prerouting入,到postrouting出。

     input和output都是针对运行中的监听进程而言,不是网卡,也不是主机。

     数据包到路由,路由通过路由表判断数据包的目的地。如果目的地是本机,就把数据包转给intput。如果目的地不是本机,则把数据包转给forward处理,通过forward处理后,再转给postrouting处理。

 

3、table:filter和nat

     filter,只操作与本机有关的数据包。相关的chain有input、output、forward

     nat,用于NAT地址转换。只有数据流的第一个数据包被这个链匹配,后面的包会自动做相同的处理。相关的chain有prerouting、postrouting、output。

     iptables操作的默认是filter表,如果要操作nat加-t nat

 

4、nat的方式:DNAT、SNAT、MASQUERADE

     DNAT,目标地址转换,即替换数据包的目标地址,可用于将访问重定向到其他主机。需用--to-destination指定新目标地址。

     SNAT,源地址转换,替换数据包的源地址,隐藏本地网络,内网对外网的访问。需用--to-source指定新源地址。

     MASQUERADE,也是源地址转换,与SNAT不同的是,不需要指定新源地址,而是自动去取得主机的IP,因而系统开销更大,适用于非固定IP的情况,如ADSL。

 

 

二、pptp的网络

我们通过pptp来构建一个,用于我们在家里访问单位的内部网络。

可以理解为三个物理网络,家里的无线路由(局域网),互联网,单位的内网。

在单位内网与互联网之间布署pptp主机,在家里通过pptp协议连接到pptp主机后,获得一个新的IP,从而在构建了一个新的局域网。不管有多少人连接到了pptp主机,我们不会知道,也不能访问他们。可以说在这个局域网里只有两台机器,一个是家里的电脑,一个是pptp主机,这也正是点对点的意思。

有了这个新的局域网,pptp主机就是我们的新网关,通过他就可以访问到单位的内网了,当然需要在pptp主机上设置数据包在eth口与ppp口之间forward,以及设置SNAT或是DNAT。

 

 

三、pptp主机网络设置

1、设置net.ipv4.ip_forward = 1允许转发

2、允许pptp协议通过

iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT

iptables -A OUTPUT -p tcp --dport 1723 -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT

3、设置在ppp与eth之间转发,有多少客户连接在pptp主机上就有多少ppp端口

iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT

4、在访问单位内网时,将源地址,也就是连接到pptp主机后获得的新IP转换为pptp主机的内网ip

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.16.1.1

只需做SNAT就好,数据返回到客户机不需要再做设置,系统会自动完成。

也可做成目标地址转换,即通过访问pptp主机的ppp接口ip,来重定向到内网主机

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d 192.168.0.1 -j DNAT --to-destination 172.16.1.2

不管是SNAT还是DNAT都应做FORWARD。

 

 

iptables:

http://kuangkuang.blog.51cto.com/838/247230/

 

pptp安装配置:

https://www.painso.com/linux-xen-openvz-pptp-services.html

http://www.51cto.com/art/200812/102721.htm

http://www.android100.org/html/201407/28/47493.html

你可能感兴趣的:(linux,pptp,iptables)