1. 程式人生 > >OpenVPN伺服器搭建

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 [email protected] #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 檢視到虛擬網絡卡了