OpenVPN服務(wù)器搭建教程
環(huán)境:
Ubuntu16.04 32/64 bit
防火墻配置:開放udp 1194端口
參考鏈接:
OpenVPN官網(wǎng):https://openvpn.net/
https://cndaqiang.github.io/2017/09/27/ubuntu1604-openvpn/
http://www.reibang.com/p/641e74aa9876
應(yīng)用:遠程訪問項目地ubuntu系統(tǒng)(默認配置靜態(tài)IP地址)
開始搭建:
注:以下操作均在root用戶下操作蔓腐。后續(xù)操作可直接復(fù)制到文件中南吮,運行文件即可一鍵配置安裝。
#!/bin/bash
# 在root用戶下操作
# 更新ubuntu系統(tǒng)中的軟件包
apt-get update
# 安裝證書生成軟件
apt-get install openvpn easy-rsa
# 證書制作
#復(fù)制證書制作工具到文件夾(該文件夾應(yīng)該不存在秀菱,復(fù)制后自動創(chuàng)建該文件夾),make-cadir為easy-rsa安裝后增加的命令 證書的制作沒有必要root權(quán)限蹭睡,懶得退了就用root用戶制作了
make-cadir /etc/openvpn/ca
cd /etc/openvpn/ca
# 載入環(huán)境變量
source vars
# CA證書
# CA數(shù)字證書認證機構(gòu),負責(zé)頒發(fā)證書衍菱,用于openvpn服務(wù)器和客戶端的認證
# 清除keys目錄下所有與證書相關(guān)的文件
./clean-all
# ./build-ca 后一直回車確認,或者./build-ca --batch保持默認設(shè)置棠笑,無須回車確認 之后證書的制作命令梦碗,直接按照添加--batch執(zhí)行,也可不添加,不再單獨說明
# 生成根證書ca.crt和根密鑰ca.key (一路按回車即可)
./build-ca --batch
# 為服務(wù)端生成證書和私鑰
./build-key-server? --batch server
# 創(chuàng)建Diffie-Hellman密鑰洪规,會生成dh2048.pem文件(生成過程比較慢印屁,在此期間不要去中斷它)
./build-dh
# 生成ta.key文件(防DDos攻擊、UDP淹沒等惡意攻擊),生成HMAC簽名加強TLS認證
openvpn --genkey --secret keys/ta.key
# 客戶端證書
# 每一個登陸的VPN客戶端需要有一個證書
# 為客戶端生成證書和私鑰
./build-key --batch client
# 進入客戶端證書和私鑰所在目錄
cd /etc/openvpn/ca/keys
# 復(fù)制證書文件到/etc/openvpn 當(dāng)前目錄是/etc/openvpn/ca/keys斩例,所以../../就是配置目錄
cp ca.crt ca.key server.crt server.key ta.key dh2048.pem ../../
cd ../../
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .
gzip -d server.conf.gz
ls -l
# 創(chuàng)建用戶配置文件夾/etc/openvpn/ccd
mkdir /etc/openvpn/ccd
# 創(chuàng)建生成客戶端文件夾
mkdir /root/client
#修改服務(wù)端配置文件
# 配置openvpn服務(wù)器和客戶端之間的網(wǎng)段(此處配置客戶端網(wǎng)段)
sed -i 's/server 10.8.0.0 255.255.255.0/server 2.2.0.0 255.255.255.0/g' /etc/openvpn/server.conf
# 指定用戶配置文件夾
sed -ie 's/;client-config-dir ccd/client-config-dir ccd/g' /etc/openvpn/server.conf
# 設(shè)置傳輸密碼
sed -i 's/;cipher DES-EDE3-CBC? # Triple-DES/cipher AES-256-CBC/g' /etc/openvpn/server.conf
# 關(guān)閉壓縮傳輸功能
sed -i 's/comp-lzo/;comp-lzo/g' /etc/openvpn/server.conf
# log"將在OpenVPN啟動時截斷日志文件
sed -i 's/;log/log/g' /etc/openvpn/server.conf
# "log-append"將追加它
sed -i 's/;log-append/log-append/g' /etc/openvpn/server.conf
# 配置客戶端之間可以互相通訊
sed -i 's/;client-to-client/client-to-client/g' /etc/openvpn/server.conf
# 啟動openvpn服務(wù)端
service openvpn@server start
# 停止openvpn服務(wù)端
#service openvpn@server stop
# 重啟openvpn服務(wù)端
#service openvpn@server restart
# 查看是否有新的IP地址
ifconfig
# 客戶端配置文件制作
cd /etc/openvpn/ca/keys
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .
#此處配置公網(wǎng)IP地址##################################################
# 修改客戶端配置文件
# 修改客戶端所使用的的公網(wǎng)IP地址
sed -i 's/remote my-server-1 1194/remote?公網(wǎng)IP 1194/g' /etc/openvpn/ca/keys/client.conf
# 修改證書默認路徑為當(dāng)前文件
sed -i 's/ca ca.crt/ca [inline]/g' /etc/openvpn/ca/keys/client.conf
# 修改私鑰默認路徑為當(dāng)前文件
sed -i 's/cert client.crt/cert [inline]/g' /etc/openvpn/ca/keys/client.conf
# 修改私鑰默認路徑為當(dāng)前文件
sed -i 's/key client.key/key [inline]/g' /etc/openvpn/ca/keys/client.conf
# 修改證書默認路徑為當(dāng)前文件
sed -i 's/;cipher x/cipher AES-256-CBC/g' /etc/openvpn/ca/keys/client.conf
# 修改取消數(shù)據(jù)傳輸壓縮功能
sed -i 's/comp-lzo/#comp-lzo/g' /etc/openvpn/ca/keys/client.conf
#批量制作vpn客戶端腳本文件和靜態(tài)IP地址分配表,最多支持63個客戶端
cd /etc/openvpn/ca/
source ./vars
for i in $(seq 1 63)
do
var=$(printf 'cli%03d' $i)
./build-key --batch $var
cat /etc/openvpn/ca/keys/client.conf <(echo -e '<ca>') /etc/openvpn/ca/keys/ca.crt <(echo -e '</ca>\n<cert>') /etc/openvpn/ca/keys/$var.crt <(echo -e '</cert>\n<key>') /etc/openvpn/ca/keys/$var.key <(echo -e '</key>\n') > /root/client/$var.ovpn
b=4
a1=`expr $i \* $b + 1`
a2=`expr $a1 + 1`
echo "a * b : $a1,$a2"
var1=2.2.0.$a1
var2=2.2.0.$a2
echo "a * b : $var1 $var2"
echo -e ifconfig-push $var1 $var2 >> /etc/openvpn/ccd/$var
done
后續(xù)復(fù)制/root/client中的客戶端文件即可使用雄人。
注:可將上述文件配置直接復(fù)制到文件中,運行即可一鍵安裝念赶。