OpenVPN伺服器搭建
阿新 • • 發佈:2018-11-12
其實這個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 檢視到虛擬網絡卡了