OpenVPN服务器搭建

其实这个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 查看到虚拟网卡了

猜你喜欢

转载自blog.csdn.net/freegotocpp/article/details/81779093