2.13安装VPN
2.13.1什么是VPN:
VPN:虚拟专用网络;虚拟专用网络的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN有多种分类方式,主要是按协议进行分类。VPN可通过服务器、硬件、软件等多种方式实现。而我们习惯称之为梯子,用于翻越某种不明物。
VPN包含很多种因具体实现方式不同的VPN,VPN的分类方式比较混乱。不同的生产厂家在销售它们的VPN产品时使用了不同的分类方式,它们主要是产品的角度来划分的。不同的ISP在开展VPN业务时也推出了不同的分类方式,他们主要是从业务开展的角度来划分的。而用户往往也有自己的划分方法,主要是根据自己的需求来进行的。下面简单介绍从不同的角度对VPN的分类。
一、按接入方式划分
这是用户和运营商最关心的VPN划分方式。一般情况下,用户可能是专线上(因特)网的,也可能是拨号上网的,这要根据拥护的具体情况而定。建立在IP网上的VPN也就对应的有两种接入方式:专线接入方式和拨号接入方式。
(1)专线VPN:它是为已经通过专线接入ISP边缘路由器的用户提供的VPN解决方案。这是一种“永远在线”的VPN,可以节省传统的长途专线费用。
(2)拨号VPN(又称VPDN):它是向利用拨号PSTN或ISDN接入ISP的用户提供的VPN业务。这是一种“按需连接”的VPN,可以节省用户的长途电话费用。需要指出的是,因为用户一般是漫游用户,是“按需连接的,因此VPDN通常需要做身份认证(比如利用CHAP和RADIUS)
二、按协议实现类型划分
这是VPN厂商和ISP最为关心的划分方式。根据分层模型,VPN可以在第二层建立,也可以在第三层建立(甚至有人把在更高层的一些安全协议也归入VPN协议。)
(1)第二层隧道协议:这包括点到点隧道协议(PPTP)、第二层转发协议(L2F),第二层隧道协议(L2TP)、多协议标记交换(MPLS)等。
(2)第三层隧道协议:这包括通用路由封装协议(GRE)、IP安全(IPSec),这是目前最流行的两种三层协议。
第二层和第三层隧道协议的区别主要在于用户数据在网络协议栈的第几层被封装,其中GRE、IPSec和MPLS主要用于实现专线VPN业务,L2TP主要用于实现拨号VPN业务(但也可以用于实现专线VPN业务),当然这些协议之间本身不是冲突的,而是可以结合使用的。
三、按VPN的发起方式划分
这是客户和IPS最为关心的VPN分类。VPN业务可以是客户独立自主实现的,也可以是由ISP提供的。
(1)发起(也称基于客户的):VPN服务提供的其始点和终止点是面向客户的,其内部技术构成、实施和管理对VPN客户可见。需要客户和隧道服务器(或网关)方安装隧道软件。客户方的软件发起隧道,在公司隧道服务器处终止隧道。此时ISP不需要做支持建立隧道的任何工作。经过对用户身份符(ID)和口令的验证,客户方和隧道服务器极易建立隧道。双方也可以用加密的方式通信。隧道一经建立,用户就会感觉到ISP不在参与通信。
(2)服务器发起(也称客户透明方式或基于网络的):在公司中心部门或ISP处(POP、Point of presence)安装VPN软件,客户无须安装任何特殊软件。主要为ISP提供全面管理的VPN服务,服务提供的起始点和终止点是ISP的POP,其内部构成、实施和管理对VPN客户完全透明。
在上面介绍的隧道协议中,目前MPLS只能用于服务器发起的VPN方式。
四、按VPN的服务类型划分
根据服务类型,VPN业务大致分为三类:接入VPN(Access VPN)、内联网VPN(Intranet VPN)和外联网VPN(Extranet VPN)。通常情况下内联网VPN是专线VPN.
(1)接入VPN:这是企业员工或企业的小分支机构通过公网远程访问企业内部网络的VPN方式。远程用户一般是一台计算机,而不是网络,因此组成的VPN是一种主机到网络的拓扑模型。需要指出的是接入VPN不同于前面的拨号VPN,这是一个容易发生混淆的地方,因为远程接入可以是专线方式接入的,也可以是拨号方式接入的。
(2)内联网VPN:这是企业的总部与分支机构之间通过公网构筑的虚拟网,这是一种网络到网络以对等的方式连接起来所组成的VPN.
(3)外联网VPN:这是企业在发生收购、兼并或企业间建立战略联盟后,使不同企业间通过公网来构筑的虚拟网。这是一种网络到网络以不对等的方式连接起来所组成的VPN(主要在安全策略上有所不同)。
五、按承载主体划分
营运VPN业务的企业;既可以自行建设他们的VPN网络,也可以把此业务外包给VPN商。这是客户和ISP最关心的问题。
(1)自建VPN:这是一种客户发起的VPN.企业在驻地安装VPN的客户端软件,在企业网边缘安装VPN网关软件,完全独立于营运商建设自己的VPN网络,运营商不需要做任何对VPN的支持工作。企业自建VPN的好处是它可以直接控制VPN网络,与运营商独立,并且VPN接入设备也是独立的。但缺点是VPN技术非常复杂,这样组建的VPN成本很高,QoS也很难保证。
(2)外包VPN:企业把VPN服务外包给运营商,运营商根据企业的要求规划、设计、实施和运维客户的VPN业务。企业可以因此降低组建和运维VPN的费用,而运营商也可以因此开拓新的IP业务增值服务市场,获得更高的收益,并提高客户的保持力和忠诚度。笔者将目前的外包VPN划分为两种:基于网络的VPN和基于CE(用户边缘设备)的管理型VPN(Managed VPN)。基于网络的VPN通常在运营商网络的呈现点(POP)安装电信级VPN交换设备。基于CE的管理型VPN业务是一种受信的第三方负责设计企业所希望的VPN解决方案,并代表企业进行管理,所使用的安全网关(防火墙、路由器等)位于用户一侧。
六、按VPN业务层次模型划分
这是根据ISP向用户提供的VPN服务工作在第几层来划分的(注意不是根据隧道协议工作在哪一层划分的)。
(1)拨号VPN业务(VPDN):这是第一种划分方式中的VPDN(事实上是按接入方式划分的,因为很难明确VPDN究竟属于哪一层)。
(2)虚拟租用线(VLL):这是对传统的租用线业务的仿真,用IP网络对租用线进行模拟,而从两端的用户看来这样一条虚拟租用线等价于过去的租用线。
(3)虚拟专用路由网(VPRN)业务:这是对第三层IP路由网络的一种仿真。可以把VPRN理解成第三层VPN技术。
(4)虚拟专用局域网段(VPLS):这是在IP广域网上仿真LAN的技术。可以把VPLS理解成一种第二层VPN技术。
OpenVPN:https://en.wikipedia.org/wiki/OpenVPN
2.13.2安装VPN:
2.13.2.1使用Openvpn进行科学上网
1.安装openvpn
下面以kali-linux2017.1版本为例,配合VPN:green进行配置
green:https://www.greenjsq.me/
vpn配置文件下载:链接:http://pan.baidu.com/s/1bpJ8lsj 密码:hel3
2.先更新Kali软件源
#官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
#中科大kali源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
apt-get update
3.安装openvpn
然后打开“终端”程序运行下面命令安装openvpn。
sudo apt-get install network-manager-gnome network-manager-pptp network-manager-openvpn
4.安装openvpn-gnome
sudo apt-get install -y network-manager-openvpn network-manager-openvpn-gnome
5.安装后,“终端”里运行以下命令重启网络。
sudo /etc/init.d/network-manager restart
6.配置openvpn
选择右上角网络图标,选择配置连接,如下图。
(1)点击“添加”,选择从文件导入。
(2)将之前在green官网下载好的证书,通过vm-tools复制到kali虚拟机
账户密码用自己注册的账户,密码;如果是包月了的可以选择free之外的vpn配置文件,没有包月的我建议是使用udp的免费openvpn
7.开启VPN
选择右上角网络图标,切换到刚才配置的线路,连接成功后,网络图标有一个小锁。
备注:配置文件最好不要轻易移动,以免下次连接的时候找不到证书或线路。
其他付费vpn思路一直,可以参考配置。
2.13.2.2使用ProxyChains科学上网
转自:大学霸
ProxyChains是Linux和其他Unices下的代理工具。它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP、SOCKS4和SOCKS5类型的代理服务器,并且可配置多个代理。ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序,直接断开接收方和发送方的连接。本节将介绍设置ProxyChains的方法。
设置ProxyChains的具体操作步骤如下所示。
(1)打开ProxyChains配置文件。执行命令如下所示:
root@Kali:~# vi /etc/proxychains.conf
执行以上命令后,打开文件的内容如下所示:
# proxychains.conf VER 3.1
#
# HTTP, SOCKS4, SOCKS5 tunneling proxifier with DNS.
#
# The option below identifies how the ProxyList is treated.
# only one option should be uncommented at time,
# otherwise the last appearing option will be accepted
#
#dynamic_chain
#
# Dynamic - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# at least one proxy must be online to play in chain
# (dead proxies are skipped)
# otherwise EINTR is returned to the app
#
strict_chain
#
# Strict - Each connection will be done via chained proxies
# all proxies chained in the order as they appear in the list
# all proxies must be online to play in chain
# otherwise EINTR is returned to the app
#
#random_chain
#
# Random - Each connection will be done via random proxy
# (or proxy chain, see chain_len) from the list.
# this option is good to test your IDS :)
输出的信息就是proxychains.conf文件的内容。由于篇幅的原因,这里只列出了部分内容。
(2)将proxychains.conf文件中的dynamic_chain前面的注释符取消。要修改的配置项,是上面加粗的部分,如下所示:
dynamic_chain
(3)添加一些代理服务器到列表(proxychains.conf文件末尾),如下所示:
# ProxyList format
# type host port [user pass]
# (values separated by 'tab' or 'blank')
#
#
# Examples:
#
# socks5 192.168.67.78 1080 lamer secret
# http 192.168.89.3 8080 justu hidden
# socks4 192.168.1.49 1080
# http 192.168.39.93 8080
#
#
# proxy types: http, socks4, socks5
# ( auth types supported: "basic"-http "user/pass"-socks )
#
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 127.0.0.1 9050
socks5 98.206.2.3 1893
socks5 76.22.86.170 1658
-- 插入 --
以上信息中加粗的部分为添加的代理服务器。
(4)通过用户的连接代理解析目标主机。执行命令如下所示:
root@kali:~# proxyresolv www.target.com
默认情况下,执行proxyresolv命令,可能看到该命令没找到错误信息。因为proxyresolv保存在/usr/lib/proxychains3/目录中,而不能被执行。proxyresolv会被proxychains调用,所以将这两个文件放在一个目录中,如/usr/bin。执行命令如下所示:
root@kali:~# cp /usr/lib/proxychains3/proxyresolv /usr/bin/
执行完以上命令后,proxyresolv命令就可以执行了。
(5)通过用户想要使用的应用程序运行ProxyChains,例如,启动msfconsole。执行命令如下所示:
root@kali:~# proxychains msfconsole
ProxyChains-3.1 (http://proxychains.sf.net)
|DNS-request| 0.0.0.0
|S-chain|-
<
>
-127.0.0.1:9050-
<
--timeout
|DNS-response|: 0.0.0.0 is not exist
, ,
/ \
((__---,,,---__))
(_) O O (_)_________
\ _ / |\
o_o \ M S F | \
\ _____ | *
||| WW |||
||| |||
Tired of typing 'set RHOSTS'? Click
&
pwn with Metasploit Pro
-- type 'go_pro' to launch it now.
=[ metasploit v4.7.0-2013082802 [core:4.7 api:1.0]
+ -- --=[ 1161 exploits - 641 auxiliary - 180 post
+ -- --=[ 310 payloads - 30 encoders - 8 nops
msf
>
执行以上命令后,看到msf>提示符表示msfconsole启动成功了。表示ProxyChains设置成功。
2.13.2.3ChaosVPN简要配置过程
原文:http://www.freebuf.com/sectool/139667.html
本文作者:Akira,转载请注明FreeBuf.COM
ChaosVPN配置方法
//*ChaosVPN是一个连接黑客和黑客空间的工具,以及。。进入某些网络的前置条件
简单介绍一下配置方法,以及可能遇到的错误和解决方法:
以下操作均在Linux下完成
测试采用的是Parrot OS
安装依赖
apt-get install tinc iproute2
apt-get install build-essential git bison flex libssl-dev zlib1g-dev debhelper devscripts
//如果tinc已经自带可以直接跳过安装,可能会遇到错误:
E: 软件包 bison 没有可安装候选
不影响,继续
添加chaosvpn的软件源:
vi /etc/apt/sources.list:
添加:
deb http://debian.sdinet.de/ stable chaosvpn
deb-src http://debian.sdinet.de/ stable chaosvpn
然后
apt-get update
可能会提示GPG 错误
apt-get install chaosvpn
如果提示错误无法安装
vi /etc/apt/sources.list
添加:
deb http://security.debian.org/debian-security wheezy/updates main
安装之前缺失的依赖
apt-get update
apt-get install libssl1.0.0
然后
apt-get install chaosvpn
安装完成后
进行tinc和chaosvpn的对接操作
mkdir -p /etc/tinc/chaos
tincd --ne=chaosvpn --generate-keys=2048
可能会提示
Error opening file `/etc/tinc/=chaosvpn/rsa_key.priv': No such file or directory
输入
touch /etc/tinc/chaos/ecdsa_key.priv
再执行
tincd --ne=chaosvpn --generate-keys=2048
两次选择路径保存公钥和私钥(写信时候需要)
![A7]8VENV}T8$127UB9%GMJ.png
之后:
vi /etc/tinc/chaosvpn.conf
修改参数
$ my_vpn_ip = 172.31.<your Subnet>.[1-255]
只能使用a-z,0-9和下划线
ip地址要改为172.31.x.x
保存退出,到此配置文件结束。
ps:你要加入chaosVPN还必须写一封介绍信来表明你的动机,发送邮件到
[email protected]
如果成功加入,在终端输入chaosvpn,可以看一些信息(由于我懒得写介绍信了这里就不截图了有兴趣同学可以自己搞)
介绍信的内容为:
[<nodename>]
sponsor=
# Name a person/nickname/nodename or organisation/hackerspace already on ChaosVPN that will
# vouch for you getting access.
gatewayhost=<clienthost>
# This should be the external hostname or ip address of the client host, not a VPN address.
# If the client is not reachable over the internet leave it out and set hidden=1 below.
# If possible supply a hostname (even dyndns) and not an ip address for easier changing
# from your side without touching the central config.
network=<ipv4 subnet in the vpn>
network6=<ipv6 subnet in the vpn>
# (mandatory, must include)
# this may be more than one, IPv4 or IPv6, network6 with IPv6 is optional
#
# These subnets must be unique in our vpn,
# simply renumber your home network (or use something like NETMAP) with a network block that is still free.
#
# Please use the list of assigned networks on ChaosVPN:IPRanges, and add yourself there.
owner=
# (mandatory, must include)
# Admin of the VPN gateway, with email address - a way to contact the responsible
# person in case of problems with your network link.
port=4712
# (optional)
# if not specified tinc works on tcp+udp port 655
# it is better if everyone chooses a random port for this.
# either this specified port or port 655 should accept TCP and UDP traffic from internet.
hidden=0
# (optional)
# "I cannot accept inbound tunnel connections, I can only connect out."
# (e.g. behind a NAT)
silent=0
# (optional)
# "I cannot connect out, but you can connect to me."
# Only ONE of hidden=1 or silent=1 is possible.
Ed25519PublicKey=<something>
# (optional)
# tinc 1.1pre11+ only, contents of your /etc/tinc/chaos/ed25519_key.pub
-----BEGIN RSA PUBLIC KEY-----
....
-----END RSA PUBLIC KEY-----
# (mandatory)
# rsa-public-key - contents of your /etc/tinc/chaos/rsa_key.pub
ps:你要删除那些#号开头的行,那些只是介绍。
最后
启动chaosvpn
/etc/init.d/chaosvpn start
提示ok即代表启动成功
查看chaosvpn网络端口
route -n