OpenVPN 安裝與配置

OpenVPN是一個(gè)開源應(yīng)用程序作彤,可讓您通過公共Internet創(chuàng)建安全的專用網(wǎng)絡(luò)丙者。 OpenVPN實(shí)現(xiàn)了虛擬專用網(wǎng)絡(luò)(VPN)以創(chuàng)建安全連接晚顷。 OpenVPN使用OpenSSL庫提供加密,并提供幾種身份驗(yàn)證機(jī)制累澡,例如基于證書的預(yù)共享密鑰以及用戶名/密碼身份驗(yàn)證鳍贾。

在本教程中鞍匾,我們將使用最新版本的centos服務(wù)器(7.5),并將使用帶有easy-rsa 3的OpenVPN 2.4骑科。在安裝OpenVPN和easy-rsa軟件包之前候学,請(qǐng)確保“ epel”存儲(chǔ)庫 已安裝在系統(tǒng)上纵散。 如果沒有梳码,請(qǐng)使用下面的yum命令安裝epel信息庫。

yum install epel-release -y

步驟1:安裝openvpn 和easy-rsa

yum install openvpn easy-rsa -y

安裝完成后伍掀,檢查openvpn和easy-rsa版本

openvpn --version

ss8.png

ls -lah /usr/share/easy-rsa/

ss8.png

已安裝帶有easy-rsa 3的OpenVPN 2.4掰茶。

步驟2:配置RSA

在此步驟中,我們將通過創(chuàng)建新的“ vars”文件來配置easy-rsa 3蜜笤。 “ vars”文件包含Easy-RSA 3設(shè)置濒蒋。

轉(zhuǎn)到“ /etc/openvpn/”目錄并復(fù)制“ easy-rsa”腳本。

cd /etc/openvpncp -r /usr/share/easy-rsa /etc/openvpn/

然后,跳轉(zhuǎn)到/etc/openvpn/easy-rsa/3/目錄并且創(chuàng)建vars文件沪伙,復(fù)制粘貼以下內(nèi)容瓮顽,并保存

set_var EASYRSA? ? ? ? ? ? ? ? "$PWD"set_var EASYRSA_PKI? ? ? ? ? ? "$EASYRSA/pki"set_var EASYRSA_DN? ? ? ? ? ? ? "cn_only"set_var EASYRSA_REQ_COUNTRY? ? "ID"set_var EASYRSA_REQ_PROVINCE? ? "Jakarta"set_var EASYRSA_REQ_CITY? ? ? ? "Jakarta"set_var EASYRSA_REQ_ORG? ? ? ? "hakase-labs CERTIFICATE AUTHORITY"set_var EASYRSA_REQ_EMAIL? ? ? "openvpn@hakase-labs.io"set_var EASYRSA_REQ_OU? ? ? ? ? "HAKASE-LABS EASY CA"set_var EASYRSA_KEY_SIZE? ? ? ? 2048set_var EASYRSA_ALGO? ? ? ? ? ? rsaset_var EASYRSA_CA_EXPIRE? ? ? 7500set_var EASYRSA_CERT_EXPIRE? ? 365set_var EASYRSA_NS_SUPPORT? ? ? "no"set_var EASYRSA_NS_COMMENT? ? ? "HAKASE-LABS CERTIFICATE AUTHORITY"set_var EASYRSA_EXT_DIR? ? ? ? "$EASYRSA/x509-types"set_var EASYRSA_SSL_CONF? ? ? ? "$EASYRSA/openssl-1.0.cnf"set_var EASYRSA_DIGEST? ? ? ? ? "sha256"

根據(jù)需要更改變量的值。

增加“ EASYRSA_KEY_SIZE”以提高安全性围橡。

更改“ EASYRSA_CA_EXPIRE”和“ EASYRSA_CERT_EXPIRE”暖混。

現(xiàn)在,通過更改文件的權(quán)限使“ vars”文件可執(zhí)行翁授。

sudo chmod +x vars

Easy-RSA 3設(shè)置的vars文件已創(chuàng)建拣播。

第3步:構(gòu)建OpenVPN密鑰

在此步驟中,我們將基于我們創(chuàng)建的easy-rsa 3'vars'文件構(gòu)建OpenVPN密鑰收擦。 我們將構(gòu)建CA密鑰贮配,服務(wù)器和客戶端密鑰,DH和CRL PEM文件塞赂。

我們將使用“ easyrsa”命令行構(gòu)建所有這些鍵泪勒。 轉(zhuǎn)到“/etc/openvpn/easy-rsa/ 3”目錄。

cd /etc/openvpn/easy-rsa/3/

初始化和建立CA

在構(gòu)建任何密鑰之前宴猾,我們需要初始化PKI目錄并構(gòu)建CA密鑰酣藻。

啟動(dòng)PKI目錄,并建立使用下面的命令CA密鑰鳍置。

sudo./easyrsainit-pkisudo./easyrsa build-ca

現(xiàn)在輸入CA密鑰的密碼,您將在'pki'目錄下獲得ca.crtca.key文件送淆。

構(gòu)建服務(wù)器密鑰

現(xiàn)在我們要構(gòu)建服務(wù)器密鑰税产,然后將構(gòu)建名為“ hakase-server”的服務(wù)器密鑰。

使用以下命令構(gòu)建服務(wù)器密鑰“ hakase-server”偷崩。

./easyrsa gen-req hakase-server nopass

nopass =選項(xiàng)辟拷,用于禁用“ hakase-server”密鑰的密碼。

并使用我們的CA證書簽署“ hakase-server”密鑰阐斜。

sudo ./easyrsa sign-req server hakase-server

系統(tǒng)將要求您輸入“ CA”密碼衫冻,輸入密碼,然后按Enter谒出。 您將在“ pki / issued /”目錄下獲得“ hakase-server.crt”證書文件隅俘。

創(chuàng)建的服務(wù)器證書位于

/etc/openvpn/easy-rsa/3.0.6/pki/issued/hakase-server.crt

使用OpenSSL命令驗(yàn)證證書文件,并確保沒有錯(cuò)誤笤喳。出現(xiàn)下面的信息就代表你前面所做的操作是沒問題的

$ sudo openssl verify-CAfilepki/ca.crt pki/issued/hakase-server.crt$pki/issued/hakase-server.crt:OK

已創(chuàng)建所有服務(wù)器證書密鑰为居。

服務(wù)器私鑰位于“ pki / private / hakase-server.key”。

服務(wù)器證書位于“ pki / issued / hakase-server.crt”杀狡。

創(chuàng)建客戶端密鑰

現(xiàn)在我們需要為客戶端構(gòu)建密鑰蒙畴。 我們將生成名為“ client01”的新客戶端密鑰。

使用以下命令生成“ client01”密鑰

sudo ./easyrsa gen-req client01 nopass

ss8.png

現(xiàn)在,使用我們的CA證書簽署“ client01”密鑰膳凝,如下所示碑隆。

sudo ./easyrsa sign-req client client01

鍵入“yes”以確認(rèn)客戶端證書請(qǐng)求,然后鍵入CA密碼蹬音。

已生成名為“ client01”的客戶端證書上煤,請(qǐng)使用openssl命令驗(yàn)證客戶端證書。

sudo openssl verify-CAfile pki/ca.crt pki/issued/client01.crt

**生成Diffie-Hellman密鑰

此操作將花費(fèi)大量時(shí)間祟绊,具體取決于我們選擇的密鑰長(zhǎng)度和服務(wù)器上的可用熵楼入。 我們將使用在“ vars”文件中定義的長(zhǎng)度鍵。

使用以下命令生成Diffie-Hellman密鑰牧抽。

ss8.png

可選:生成CRL密鑰,本文跳過這一步驟

CRL(證書吊銷列表)密鑰將用于吊銷客戶端密鑰嘉熊。 如果您的VPN服務(wù)器上有多個(gè)客戶端證書,并且想撤消某些密鑰扬舒,則只需使用easy-rsa命令撤消阐肤。

如果要撤消某些密鑰,請(qǐng)運(yùn)行以下命令

./easyrsa revoke xxxx

然后生成CRL密鑰讲坎。

./easyrsa gen-crl

復(fù)制證書文件

已生成所有證書孕惜,現(xiàn)在復(fù)制證書文件和PEM文件。

復(fù)制服務(wù)器密鑰和證書晨炕。

cp pki/ca.crt/etc/openvpn/server/cp pki/issued/hakase-server.crt/etc/openvpn/server/cp pki/private/hakase-server.key/etc/openvpn/server/

復(fù)制client01密鑰和證書衫画。

cp pki/ca.crt/etc/openvpn/client/cp pki/issued/client01.crt/etc/openvpn/client/cp pki/private/client01.key/etc/openvpn/client/

復(fù)制DH和CRL密鑰。

cp pki/dh.pem /etc/openvpn/server/

第4步-配置OpenVPN

在這一步中瓮栗,我們將為openvpn服務(wù)器創(chuàng)建新的配置'server.conf'削罩。轉(zhuǎn)到"/etc/openvpn/"目錄,并使用vim創(chuàng)建新的配置文件"server.conf"

將以下OpenVPN服務(wù)器配置粘貼到此處费奸。

cd /etc/openvpn/vim server.conf

將以下OpenVPN服務(wù)器配置粘貼到此處弥激。

# OpenVPN Port, Protocol and the Tunport 1194proto udpdev tun# OpenVPN Server Certificate - CA, server key and certificateca /etc/openvpn/server/ca.crtcert /etc/openvpn/server/hakase-server.crtkey /etc/openvpn/server/hakase-server.key#DH and CRL keydh /etc/openvpn/server/dh.pem#注意本文沒有跳過了丟消證書的檢測(cè)#crl-verify /etc/openvpn/server/crl.pem# Network Configuration - Internal network# Redirect all Connection through OpenVPN Serverserver 10.10.1.0 255.255.255.0push "redirect-gateway def1"# Using the DNS from https://dns.watchpush "dhcp-option DNS 84.200.69.80"push "dhcp-option DNS 84.200.70.40"#Enable multiple client to connect with same Certificate keyduplicate-cn# TLS Securitycipher AES-256-CBCtls-version-min 1.2tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256auth SHA512auth-nocache# Other Configurationkeepalive 20 60persist-keypersist-tuncomp-lzo yesdaemonuser nobodygroup nobody# OpenVPN Loglog-append /var/log/openvpn.logverb 3

OpenVPN的配置已創(chuàng)建。

步驟5-啟用端口轉(zhuǎn)發(fā)并配置路由Firewalld

在此步驟中愿阐,我們將啟用端口轉(zhuǎn)發(fā)內(nèi)核模塊并為OpenVPN配置路由“防火墻”微服。

ss8.png

通過運(yùn)行以下命令來啟用端口轉(zhuǎn)發(fā)內(nèi)核模塊。

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.confsysctl -p

接下來缨历,使用Firewalld for OpenVPN配置路由以蕴。

將 "openvpn"服務(wù)添加到防火墻列表服務(wù),并將“tun0”接口添加到防火墻信任區(qū)域辛孵。

sudo firewall-cmd--permanent--add-service=openvpnsudo firewall-cmd--permanent--zone=trusted--add-interface=tun0

在防火墻的“受信任”區(qū)域上啟用“ MASQUERADE”舒裤。

sudo firewall-cmd--permanent--zone=trusted--add-masquerade

如果你的網(wǎng)關(guān)是使用iptable,并且iptable默認(rèn)情況下阻止該服務(wù),那么請(qǐng)使用以下配置使openvpn正常運(yùn)行觉吭。 首先腾供,讓我們?cè)趏penvpn端口上進(jìn)行tcp連接。 如果您使用的是udp或其他端口號(hào),請(qǐng)相應(yīng)地更改此行伴鳖。

iptables-AINPUT-i enp3s0-m state--stateNEW-p udp--dport1194-jACCEPT

允許TUN接口連接到OpenVPN服務(wù)器

iptables -A INPUT -i tun+ -j ACCEPT

允許通過其他接口轉(zhuǎn)發(fā)TUN接口連接

iptables -A FORWARD -i tun+ -j ACCEPTiptables -A FORWARD -i tun+ -o enp3s0 -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -A FORWARD -i enp3s0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT

NAT VPN客戶端流量到Internet节值。 運(yùn)行“ ifconfig”命令時(shí),根據(jù)您的tun0結(jié)果信息更改IP地址掩碼榜聂。

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp3s0 -j MASQUERADE

如果您的默認(rèn)iptables OUTPUT的值不是ACCEPT的話搞疗,則還需要以下行:

iptables -A OUTPUT -o tun+ -j ACCEPT

最后記得保存iptables的防火墻配置

sudo iptables-save>/etc/sysconfig/iptables

端口轉(zhuǎn)發(fā)和防火墻路由已完成,現(xiàn)在啟動(dòng)openvpn服務(wù)须肆,并使它能夠在每次系統(tǒng)引導(dǎo)時(shí)自動(dòng)啟動(dòng)匿乃。

systemctl start openvpn@serversystemctl enable openvpn@server

我們通過netstat -plntu | grep 1194查看服務(wù)器的監(jiān)聽接口

第6步-OpenVPN客戶端設(shè)置

轉(zhuǎn)到“/etc/openvpn/client”目錄,并使用vim創(chuàng)建一個(gè)新的openvpn客戶端配置文件“ client01.ovpn".

cd /etc/openvpn/clientvim client01.ovpn

復(fù)制粘貼以下內(nèi)容到ovpn

clientdev tunproto udp#真實(shí)的ip地址自己填寫remote x.x.x.x 1194ca ca.crtcert client01.crtkey client01.keycipher AES-256-CBCauth SHA512auth-nocachetls-version-min 1.2tls-cipherTLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256resolv-retry infinitecompress lzonobindpersist-keypersist-tunmute-replay-warningsverb 3

保存后退出

現(xiàn)在將“/etc/openvpn/client”目錄壓縮為“ zip”或“ tar.gz”文件豌汇,并使用scp從本地計(jì)算機(jī)下載壓縮文件幢炸。

將“ /etc/openvpn/client”目錄壓縮到“ client01.tar.gz”文件。

cd /etc/openvpn/tar -czvf client01.tar.gz client/*

然后將該客戶端所需的證書和配置文件拷貝到需要鏈接入vpn的客戶端

步驟7-測(cè)試OpenVPN

安裝OpenVPN軟件包拒贱,如果需要GUI配置宛徊,請(qǐng)安裝OpenVPN network-manager

ss8.png

如果要使用終端外殼進(jìn)行連接逻澳,請(qǐng)運(yùn)行以下OpenVPN命令闸天。

openvpn --config client01.ovpn

作者:鐵甲萬能狗

鏈接:http://www.reibang.com/p/17a56994b74f

來源:簡(jiǎn)書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)斜做,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處苞氮。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瓤逼,隨后出現(xiàn)的幾起案子笼吟,更是在濱河造成了極大的恐慌,老刑警劉巖抛姑,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異艳狐,居然都是意外死亡定硝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門毫目,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔬啡,“玉大人,你說我怎么就攤上這事镀虐∠潴。” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵刮便,是天一觀的道長(zhǎng)空猜。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么辈毯? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任坝疼,我火速辦了婚禮,結(jié)果婚禮上谆沃,老公的妹妹穿的比我還像新娘钝凶。我一直安慰自己,他們只是感情好唁影,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布耕陷。 她就那樣靜靜地躺著,像睡著了一般据沈。 火紅的嫁衣襯著肌膚如雪哟沫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天卓舵,我揣著相機(jī)與錄音南用,去河邊找鬼。 笑死掏湾,一個(gè)胖子當(dāng)著我的面吹牛裹虫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播融击,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼凑兰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了陕贮?” 一聲冷哼從身側(cè)響起城看,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拇涤,沒想到半個(gè)月后捣作,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹅士,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年券躁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掉盅。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡也拜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趾痘,到底是詐尸還是另有隱情慢哈,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布永票,位于F島的核電站卵贱,受9級(jí)特大地震影響滥沫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜艰赞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一佣谐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧方妖,春花似錦狭魂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杯瞻,卻和暖如春镐牺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背魁莉。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工睬涧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旗唁。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓畦浓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親检疫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讶请,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容