压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

通過(guò)VPS穿透內(nèi)網(wǎng)發(fā)布內(nèi)網(wǎng)服務(wù)

  當(dāng)我們有一個(gè)本地服務(wù)又想暫時(shí)對(duì)外提供的時(shí)候,發(fā)現(xiàn)機(jī)子在內(nèi)網(wǎng)。這個(gè)時(shí)候我們剛好手上有臺(tái)VPS,那么接下來(lái)我們就來(lái)嘗試下穿透內(nèi)網(wǎng)對(duì)外提供

  主機(jī)名  IP    VPN IP                       備注

  VPS     外網(wǎng)  192.168.31.133 192.168.0.1   外網(wǎng)VPS

  server  內(nèi)網(wǎng)  192.168.137.2 192.168.0.234  VPN客戶(hù)端

  1.VPS開(kāi)啟VPN,我們選擇pptp比較簡(jiǎn)單。

  需要安裝ppp pptpd 還需要支持iptables(安裝iptables為了做nat,基本都帶iptables)

  vps情況如下

  [root@localhost ~]# cat /etc/issue

  CentOS release 5.5 (Final)

  [root@localhost ~]# uname -a

  Linux MiWiFi-R1D 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

  版本為centos 5.5 內(nèi)核為2.6.18.

  ps內(nèi)核版本在2.6.15后的默認(rèn)都已經(jīng)有了MPPE(Microsoft Point to Point Encryption,微軟點(diǎn)對(duì)點(diǎn)加密)補(bǔ)丁,所以不需要再安裝dkms和kernel_ppp_mppe內(nèi)核補(bǔ)丁。

  1)安裝pptp vpn服務(wù)

  a.查看是否有ppp,iptables

  [root@localhost ~]# rpm -qa|grep iptables

  iptables-1.3.5-5.3.el5_4.1

  iptables-ipv6-1.3.5-5.3.el5_4.1

  [root@localhost ~]# rpm -qa|grep ppp

  rp-pppoe-3.5-32.1

  ppp-2.4.4-2.el5

  可以看到是支持ppp和iptables,否則就yum install安裝

  ppp-2.4.4-2.el5

  iptables-1.3.5-5.3.el5_4.1

  b.查看是否支持安裝pptp

  網(wǎng)上一般2個(gè)方法,一個(gè)看知否支持

  [root@localhost ~]# modprobe ppp-compress-18 && echo ok////////////問(wèn)題點(diǎn)////////////////

  ok

  (用模塊方式支持MPPE加密模式瀏覽,如果內(nèi)核支持檢測(cè)不到。)顯示“ok”則表明通過(guò)。

  [root@localhost ~]# cat /dev/net/tun

  cat: /dev/net/tun: File descriptor in bad state

  上述兩條只要一條通過(guò),就能安裝pptp。

  c.安裝pptp

  安裝 pptpd

  加入 yum 源

  rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm

  安裝 pptpd

  yum install pptpd

  [root@localhost proc]# yum list|grep pptpd

  pptpd.x86_64                               1.4.0-1.rhel5               installed

  沒(méi)裝直接

  yum install

  2)配置pptp vpn服務(wù)

  主配置文件/etc/pptpd.conf

  選項(xiàng)文件/etc/ppp /options.pptpd

  帳號(hào)文件/etc/ppp/chap-secrets

  pptpd –-help

  specified in the config file (default config file: /etc/pptpd.conf).

  可以看到pptp配置文件位于/etc/pptpd.conf

  a.主配置文件/etc/pptpd.conf

  先看看默認(rèn)配置

  [root@localhost proc]#grep -v "#" /etc/pptpd.conf

  option /etc/ppp/options.pptpd

  logwtmp

  localip 192.168.0.1

  remoteip 192.168.0.234-238,192.168.0.245

  可以看出VPNSERVER的虛擬ip為192.168.0.1

  vpnclient獲取的ip段位192.168.0.234-192.168.0.245

  b.選項(xiàng)配置文件/etc/ppp /options.pptpd

  [root@localhost proc]# grep -v "#" /etc/ppp/options.pptpd

  可配置DNS等

  ms-dns 8.8.8.8

  c.賬號(hào)文件/etc/ppp/chap-secrets

  # client        server  secret                  IP addresses

  osvpnuser01 ppptpd 123456 *

  test pptpd 1234 *

  賬號(hào) 服務(wù)名(在option.pptpd)密碼 可登錄ip(*表示沒(méi)限制)

  d.啟動(dòng)pptpdvpn并設(shè)置開(kāi)機(jī)啟動(dòng),并開(kāi)啟ip_forward(因?yàn)橄旅嬉褂玫絠ptables)

  1)開(kāi)啟ip_forward

  修改/etc/sysctl.conf文件的ip_forward=1

  vi /etc/sysctl.conf

  然后使其生效

  sysctl –p

  2)開(kāi)啟pptpvpn并開(kāi)機(jī)啟動(dòng)

  [root@MiWiFi-R1D ~]# service pptpd start

  Starting pptpd:                                            [  OK  ]

  chkconfig開(kāi)機(jī)啟動(dòng)服務(wù)

  [root@MiWiFi-R1D ~]# chkconfig –level 345 pptpd on

  [root@MiWiFi-R1D ~]# chkconfig –list|grep pptpd

  pptpd              0:off    1:off    2:off    3:on    4:on    5:on    6:off

  我們可以看到

  netstat nltp |grep pptpd 可以看到 1723端口

  [root@localhost proc]# netstat -nltp|grep pptpd

  tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      4427/pptpd

  —————-到這里 ,pptpvpn部分配置完成!??!路由和iptables部分我們稍后配置

  2.配置VPSclient,假如我們客戶(hù)端也為centos 5.5 linux的pptp client稍微復(fù)雜點(diǎn)

  1)需要裝ppp,pptp.src.rpm包含pptp和pptp-debuginfo

  檢查是否有ppp

  rpm -qa|grep ppp

  檢查是否安裝pptp

  [root@localhost ~]# rpm -qa|grep pptp

  pptp-debuginfo-1.7.2-3

  pptp-1.7.2-3

  a.安裝ppp直接

  yum install ppp

  b.而安裝pptp和pptp-debuginfo

  下載pptp-1.7.2-3.rhel5.src.rpm  源碼rpm包安裝,解決依賴(lài)關(guān)系

  #wget http://nchc.dl.sourceforge.net/project/pptpclient/pptp/pptp-1.7.2/pptp-1.7.2-3.rhel5.src.rpm

  #rpmbuild pptp-1.7.2-3.rhel5.src.rpm #.src.rpm包的安裝方法

  #cd /usr/src/redhat/RPMS/x86_64

  [root@localhost x86_64]# ls

  pptp-1.7.2-3.x86_64.rpm  pptp-debuginfo-1.7.2-3.x86_64.rpm

  #rpm –ivh 安裝這兩個(gè)rpm包

  2)pptp vpn client端配置

  你會(huì)發(fā)現(xiàn)可以使用pptpseyup命令進(jìn)行客戶(hù)端配置

  #pptpsetup –create mytesevpn –server 192.168.31.131 –username test –password 1234

  #cd /etc/ppp/peers

  [root@localhost ~]# cat /etc/ppp/peers/mytestvpn

  # written by pptpsetup

  pty "pptp 192.168.31.133 –nolaunchpppd"

  lock

  noauth

  nobsdcomp

  nodeflate

  name test

  remotename mytestvpn

  ipparam mytestvpn

  修改/etc/ppp/peers/mytestvpn

  注釋掉noauth

  添加

  require-mppe-128

  refuse-pap

  refuse-chap

  refuse-eap

  refuse-mschap

  3)連接vpn

  #cp /usr/share/doc/ppp-2.4.4/scripts/pon /usr/sbin/

  #cp /usr/share/doc/ppp-2.4.4/scripts/poff /usr/sbin/

  #chmod +x /usr/sbin/pon /usr/sbin/poff

  將這兩個(gè)命令復(fù)制到path環(huán)境下,

  執(zhí)行pon mytestvpn撥號(hào)

  [root@localhost /]# pon mytestvpn

  [root@localhost /]# ficonfig ppp0

  -bash: ficonfig: command not found

  [root@localhost /]# ifconfig ppp0

  ppp0      Link encap:Point-to-Point Protocol

  inet addr:192.168.0.234  P-t-P:192.168.0.1  Mask:255.255.255.255

  UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1

  RX packets:6 errors:0 dropped:0 overruns:0 frame:0

  TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

  collisions:0 txqueuelen:3

  RX bytes:60 (60.0 b)  TX bytes:66 (66.0 b)

  執(zhí)行poff mytestvpn 斷開(kāi)撥號(hào)

  ———————–客戶(hù)端vpn撥號(hào)完成,接下來(lái)就開(kāi)始介紹iptables配置

  ———–測(cè)試結(jié)果———————————————————-

  我們可以看到

  通過(guò)VPS穿透內(nèi)網(wǎng)發(fā)布內(nèi)網(wǎng)服務(wù)

  在VPS上我們只需要

  iptables -t nat -A PREROUTING -d 192.168.31.133 -p tcp –dport 333 -j DNAT –to 192.168.0.234:22

  iptables –t nat –A POSTROUTING –d 192.168.0.234 –p tcp –dport 22 –j SNAT –to 192.168.0.1

  將內(nèi)網(wǎng)服務(wù)器的VPN對(duì)應(yīng)的IP端口映射出去,就能通過(guò)訪(fǎng)問(wèn)外網(wǎng)192.168.31:333訪(fǎng)問(wèn)到內(nèi)網(wǎng)了。

  [root@MiWiFi-R1D ~]# iptables -t nat -A PREROUTING -d 192.168.31.133 -p tcp –dport 333 -j DNAT –to 192.168.0.234:22

  [root@MiWiFi-R1D ~]# iptables -t nat -A POSTROUTING -d 192.168.0.234 -p tcp –dport 22 -j SNAT –to 192.168.0.1

  測(cè)試結(jié)果

  Connecting to 192.168.31.133:333…

  Connection established.

  To escape to local shell, press 'Ctrl+Alt+]'.

  Last login: Tue Dec 16 22:20:02 2014 from 192.168.0.1

  [root@localhost ~]# ls

  anaconda-ks.cfg  Desktop  install.log  install.log.syslog

  [root@localhost ~]# ifconfig eth0

  eth0      Link encap:Ethernet  HWaddr 00:0C:29:8C:07:7D

  inet addr:192.168.137.2  Bcast:192.168.137.255  Mask:255.255.255.0

  inet6 addr: fe80::20c:29ff:fe8c:77d/64 Scope:Link

  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

  RX packets:4769 errors:0 dropped:0 overruns:0 frame:0

  TX packets:3344 errors:0 dropped:0 overruns:0 carrier:0

  collisions:0 txqueuelen:1000

  RX bytes:455890 (445.2 KiB)  TX bytes:409449 (399.8 KiB)

  [root@localhost ~]#

  ===========下面擴(kuò)展====================

  當(dāng)我擁有這樣一臺(tái)VPNCLIENT以后,假如他在DMZ區(qū),網(wǎng)段內(nèi)一大堆服務(wù)器,那么我們只需要在vpnclient代理所有vpn段ip到內(nèi)網(wǎng)的訪(fǎng)問(wèn)就能進(jìn)行登陸。

通過(guò)VPS穿透內(nèi)網(wǎng)發(fā)布內(nèi)網(wǎng)服務(wù)

  
  1.雙重映射,內(nèi)網(wǎng)vpn客戶(hù)端192.168.137.2映射一次,然后再通過(guò)vps這vpn服務(wù)器映射一次

  先在vpnclient映射一次,比如192.168.137.1的3389端口

  1)vpn client端

  [root@MiWiFi-R1D ~]# iptables -t nat -A PREROUTING -d 192.168.0.234 -p tcp –dport 3389 -j DNAT –to 192.168.137.1:3389

  [root@MiWiFi-R1D ~]# iptables -t nat -A POSTROUTING -d 192.168.137.1 -p tcp –dport 3389 -j SNAT –to 192.168.137.2

  2)vpn server端

  [root@MiWiFi-R1D ~]# iptables -t nat -A PREROUTING -d 192.168.31.133 -p tcp –dport 3389 -j DNAT –to 192.168.0.234:3389

  [root@MiWiFi-R1D ~]# iptables -t nat -A POSTROUTING -d 192.168.0.234 -p tcp –dport 3389 -j SNAT –to 192.168.0.1

  3)于是乎流量就是這樣

  192.168.31.133:3389>192.168.0.234:3389>192.168.137.1:3389

  2.使用通過(guò)這臺(tái)內(nèi)網(wǎng)vpn客戶(hù)端(192.168.137.2)進(jìn)內(nèi)網(wǎng)

  1)開(kāi)啟ip_forward

  修改/etc/sysctl.conf文件的ip_forward=1

  vi /etc/sysctl.conf

  然后使其生效

  sysctl -p

  [root@localhost ~]# sysctl -p

  net.ipv4.ip_forward = 1

  net.ipv4.conf.default.rp_filter = 1

  net.ipv4.conf.default.accept_source_route = 0

  kernel.sysrq = 0

  kernel.core_uses_pid = 1

  net.ipv4.tcp_syncookies = 1

  kernel.msgmnb = 65536

  kernel.msgmax = 65536

  kernel.shmmax = 68719476736

  kernel.shmall = 4294967296

  2)用到的工具還是我們的iptables

  這里需要在client上做SNAT

  iptables -t nat -A POSTROUTING -d 192.168.137.0/24  -j SNAT –to 192.168.137.2

  [root@localhost ~]# iptables -t nat -L|grep 192.168.137.0

  SNAT       all  —  anywhere             192.168.137.0/24    to:192.168.137.2

  3)到vpn Server添加靜態(tài)路由

  route add -net 192.168.137.0 netmask 255.255.255.0 gw 192.168.0.234192.168.137.0   192.168.0.234

  [root@MiWiFi-R1D ~]# route –n

  Kernel IP routing table

  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

  192.168.137.0   192.168.0.234   255.255.255.0   UG    0      0        0 ppp0

  4)我們只需要客戶(hù)端接入vpn就能鏈接內(nèi)網(wǎng)所有機(jī)器了

  流量導(dǎo)向 最終客戶(hù)機(jī)>—–vpn—->vpn網(wǎng)關(guān)(vpnserver)>內(nèi)網(wǎng)vpn客戶(hù)端>—iptables—->192.168.137.0/24

  http://www.360doc.com/content/11/0416/17/2104556_110100707.shtml

  http://os.51cto.com/art/201003/191707.htm

    文章來(lái)源:http://youngcloud.blog.51cto.com/2873694/1590318

上一篇:安卓防火墻 PS DroidWall

下一篇: OpenSSL原理及基本使用