其实这个OpenVPN搭建挺简单
安装openVPN: apt-get install openvpn easy-rsa就行了 CentOS一样只是命令和安装目录会有些差别.
easy-rsa 用来生产我们需要的证书
来看下这些目录和文件就可了.服务器是ubuntu16.
避免找不到自己生产的证书可key自己找个地方新建个文件夹,随便那都可以只要你能找的到就行了!
mkdir vpnCAandKey/ #我在root的下创建了一个文件
把easy-rsa 下的文件移动到新建的'vpnCAandKey'文件夹,你怎么创建的文件夹就怎么弄
PS:去他的安装目录生成一样,这是为了好找. easy-rsa安装的地方可能有差别 这些东东主要是生产证书!
cd /usr/share/easy-rsa/
/usr/share/easy-rsa# ls -ll
total 112
-rwxr-xr-x 1 root root 119 Nov 9 2013 build-ca
-rwxr-xr-x 1 root root 352 Nov 9 2013 build-dh
-rwxr-xr-x 1 root root 188 Nov 9 2013 build-inter
-rwxr-xr-x 1 root root 163 Nov 9 2013 build-key
-rwxr-xr-x 1 root root 157 Nov 9 2013 build-key-pass
-rwxr-xr-x 1 root root 249 Nov 9 2013 build-key-pkcs12
-rwxr-xr-x 1 root root 268 Nov 9 2013 build-key-server
-rwxr-xr-x 1 root root 213 Nov 9 2013 build-req
-rwxr-xr-x 1 root root 158 Nov 9 2013 build-req-pass
-rwxr-xr-x 1 root root 449 Nov 9 2013 clean-all
-rwxr-xr-x 1 root root 1471 Nov 9 2013 inherit-inter
-rwxr-xr-x 1 root root 302 Nov 9 2013 list-crl
-rw-r--r-- 1 root root 7859 Jul 13 2015 openssl-0.9.6.cnf
-rw-r--r-- 1 root root 8416 Jul 13 2015 openssl-0.9.8.cnf
-rw-r--r-- 1 root root 8313 Jul 13 2015 openssl-1.0.0.cnf
-rwxr-xr-x 1 root root 13192 Jul 13 2015 pkitool
-rwxr-xr-x 1 root root 1035 Jul 13 2015 revoke-full
-rwxr-xr-x 1 root root 178 Nov 9 2013 sign-req
-rw-r--r-- 1 root root 2077 Nov 9 2013 vars
-rwxr-xr-x 1 root root 740 Nov 9 2013 whichopensslcnf
/usr/share/easy-rsa#
#把这些文件移动到/root/vpnCAandKey/目录下 你想cp到哪 就到那这个没有限制只要别乱了就好了
cp -r /usr/share/easy-rsa/* /root/vpnCAandKey/
cd vpnCAandKey/
进到这个目录后有个文件vars 这个文件主要是填写一些信息 别的不需要更改
主要是为了方便生产证书的时候不用在填写信息
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="@gmail.com"
export KEY_OU="name"
# X509 Subject Field
export KEY_NAME="server"
#server是服务端生产证书的时候名字,
#主要方便不修改服务端的配置文件中的证书,
#名字可以自己随便起,只是修改下服务端的配置文件证书名字就可以了
下面就是先生产服务端的证书:
source vars 执行一下会生产一个keys的文件夹 文件夹中主要是放证书
会提示:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/openvpn-ca/keys
./clean-all #主要是清除证书
下面就是生产服务端的证书:
#都是一路回车 能y就y 需要加密码的自己设置密码
./build-ca
/build-key-server server #后面是服务端需要的证书名字随便起为了方便 server不用在修改配置文件里的证书名字了
./build-dh #生成dh2048.pem文件
openvpn --genkey --secret keys/ta.key #为了加密TSL连接 会在keys下生产ta.key
#拷贝这些证书文件 到/etc/openvpn/ 目录下 系统不一样会有差别
cp ca.crt server.crt server.csr server.key ta.key dh2048.pem /etc/openvpn/
下面是配置服务端的配置文件:
#这里是找个模板 自己创建也是一样,按照人家规则来
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
#解压下
gzip -d server.conf
#查看下他的默认配置
grep -vE "^#|^;|^$" server.conf
#根据自己的需求修改 服务端主要就是这个配置文件
grep -vE "^#|^;|^$" server.conf
local 0.0.0.0 #服务器IP
port 1194 #端口随便改 只要客户端保持一直就可以了
proto udp #TCP/UPD 都可以
dev tun #路由隧道 还有桥接模式 可以翻一下配置文件 上面都有注解
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 0.0.0.0 0.0.0.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 192.67.0.202"
push "dhcp-option DNS 192.67.200.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
配置完成后可以启动服务端openvpn了:
#网络规则 修改下 允许转发流量
vi /etc/sysctl.conf
net.ipv4.ip_forward=1 #注解去掉
sysctl -p #刷下
ip route | grep default #查看下你的IP还有网卡 ifconfig一样
如果嫌麻烦:vpnIptables.sh 防火墙规则自己设置下一样
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens3 -j MASQUERADE #ens3是你的网卡 别填写错了 这是我的
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p all -j ACCEPT
iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
启动服务端openvpn 命令有所不一样:
systemctl start openvpn@server #status查看状态 stop停止 随便启动
#openvpn --config file 文件路径启动可以查看配置文件错误
ip addr show tun0 #查看vpn接口是否可用
netstat -tunlp |grep 1194
客户端的配置:
cd /root/vpnCAandKey/ #回到easy-rsa 生产证书文件下
./build-key client #名字一样随便起,需要和客户端配置文件中的名字一样.
#回生产三个文件 client.crt client.csr client.key
#为了方便配置 我们去找模板
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root/vpnCAandKey/keys/
#客户端 配置文件也可以本地建立 为了方便在服务端配置好一同打包下载
grep -vE "^#|^;|^$" client.conf
client
dev tun
proto udp
remote 0.0.0.0 #服务器IP地址
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
comp-lzo
redirect-gateway def1
verb 3
#直接从服务端 把文件取到本地就可以了
ca.crt client.crt client.key ta.key client.conf
Linux环境下 启动客户端
openvpn --config 配置文件所在的文件下 client.conf 也可以修改为client.ovpn方便导入
证书要和配置文件放在同一个文件下,不放在同一个文件下 需要使用绝对路径
kali中可使用vpn直接导入.ovpn文件!!!
kali中有个关于openvpn的坑!自身有openvpn 包括一大堆东西为了方便能导入.ovpn和能在视图下管理!
安装网络组件:
apt-get install network-manager-openvpn network-manager network-manager-gnome network-manager-openvpn-gnome
安装完毕 如果点没反应 需要修改
vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false #改为true
连接成功可以ifconfig 查看到虚拟网卡了