1. 程式人生 > >Centos搭建openvpn+mysql資料庫認證

Centos搭建openvpn+mysql資料庫認證

伺服器環境說明

1、系統版本

CentOS release 5.10 (Final) 64bits

2、軟體版本

openvpn-2.3.6-1.el5
lzo-2.02-2.el5.1
lzo-devel-2.02-2.el5.1
easy-rsa-2.2.2-1.el5
pam-0.99.6.2-12.el5
pam-devel-0.99.6.2-12.el5
配置伺服器安裝前環境

1、開啟ip轉發功能

echo "net.ipv4.ip_forward = 1">> /etc/sysctl.conf
sysctl -p

2、安裝依賴及所需軟體包

yum install -y openvpn easy-rsa cyrus-saslcyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi pampam-devel
/etc/init.d/saslauthd restart

3、修改變數及生成證書

cd /usr/share/easy-rsa/2.0
vi vars                           #編輯vars檔案,生成環境變數, vars裡的引數根據自己需要改變
export KEY_COUNTRY="CN"           #定義你所在的國家,2個字元
export KEY_PROVINCE="ShangHai"    #你所在的省份
export KEY_CITY="ShangHai"        #你所在的城市
export KEY_ORG="xxx"              #你所在的組織
export KEY_EMAIL="[email protected]
" #你的郵件地址,可以修改 source ./vars ./clean-all ./build-ca ./build-dh ./build-key-server server ./build-key client #tar -zcvf client.tar.gz keys/{ca.crt,client.crt,client.key} #windows客戶端使用需下載到本地 mkdir /etc/openvpn/{keys,logs,plugin/auth-pam} -p cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn/keys/ cat > /etc/openvpn/server.conf << EOF port 443 proto tcp dev tun ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh2048.pem server 10.100.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt #新增主機路由 push "route 10.200.0.0 255.255.0.0" push "route 10.220.0.0 255.255.0.0" keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status logs/openvpn-status.log log logs/openvpn.log log-append logs/openvpn.log verb 3 plugin /etc/openvpn/plugin/openvpn-auth-pam.so openvpn client-cert-not-required username-as-common-name EOF

4、使用低版本的認證外掛

wget http://pkgs.fedoraproject.org/repo/pkgs/openvpn/openvpn-2.0.7.tar.gz/93528233f1f6d02fc18e2c00f82e0aca/openvpn-2.0.7.tar.gz
 tar xf openvpn-2.0.7.tar.gz
 cd openvpn-2.0.7/plugin/auth-pam
 make
 cp openvpn-auth-pam.so /etc/openvpn/plugin/
 #(這一步可能無法成功,假如無法成功可從其他機器拷貝一份過去,我在附件中放了該檔案)
 wget http://nchc.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
 tar xf pam_mysql-0.7RC1.tar.gz && cd pam_mysql-0.7RC1
 ./configure
 make
 makeinstall
 ln -s /lib/security/pam_mysql.so /lib64/security/
#如果編譯中報錯需要MySQL的庫檔案:
yum install -y pam-devel mysql mysql-devel
 cat > /etc/pam.d/openvpn << EOF
 auth sufficient /lib/security/pam_mysql.so user=xxx passwd=xxxxx host=xxxxxx db=vpn table=openvpnuser usercolumn=name passwdcolumn=password crypt=2
 account required /lib/security/pam_mysql.so user=xxx passwd=xxxxx host=xxxxxx db=vpn table=openvpnuser usercolumn=name passwdcolumn=password crypt=2
 EOF

5、MySQL配置

mysql -hjconnhrdmgt82.mysql.rds.aliyuncs.com -uzabbix_1 -p -D operations
 create database vpn;
 #grant all on vpn.* to [email protected]'%' identified by 'xxxxxx';
 create table openvpnuser ( name char(20) NOT NULL, password char(128)default NULL, active int(10) NOT NULL DEFAULT 1, primary key (name) );
 insert into openvpnuser (name,password)values('vpnuser',password('vpnpassword'));
 #flush privileges;

6、啟動openvpn

 /etc/init.d/openvpn restart
服務端測試
testsaslauthd -u vpnuser -p vpnpassword -s openvpn
0:OK "Success."
windows客戶端配置

1、客戶端配置檔案

cat > someone.ovpn << EOF
 client
 dev tun
 proto tcp
 remote 公網IP 443
 resolv-retry infinite
 nobind
 persist-key
 persist-tun
 ca ca.crt
 #cert client.crt
 #key client.key
 #上面兩個是配置客戶端使用祕鑰登入的證書
 remote-cert-tls server
 comp-lzo
 verb 3
 auth-user-pass #此引數後可接檔名,例如:auth.txt,檔案中記錄賬號和密碼需換行
 EOF

2、下載服務端證書
下載ca.crt和someone.ovpn檔案到本地

*nat
:PREROUTING ACCEPT [222:10664]
:POSTROUTING ACCEPT [37944:2486906]
:OUTPUT ACCEPT [37944:2486906]
-A POSTROUTING -s 10.100.0.0/255.255.255.0 -o eth0 -j MASQUERADE
COMMIT
 #以上是iptables的配置檔案中需要加入的一條配置,可以配置下面的命令然後儲存iptables資訊到配置檔案中
 #iptables -t nat -A POSTROUTING -s10.100.0.0/255.255.255.0 -o eth0 -j MASQUERADE
 #iptables-save >/etc/sysconfig/iptables
 將openvpn新增到開機啟動項中
 chkconfig --add openvpn
 chkconfig openvpn on
TIPS
Mar 10 17:05:15 jstwpz76bqary8 openvpn[27972]: PAM unableto dlopen(/lib/security/pam_mysql.so)
Mar 10 17:05:15 jstwpz76bqary8 openvpn[27972]: PAM [error:/lib/security/pam_mysql.so: undefined symbol: pam_set_data]

/var/log/secure中若出現如上錯誤,請嘗試使用低版本的openvpn編譯出來的openvpn-auth-pam.so動態連結庫檔案。

本文轉載自:http://www.linuxprobe.com/centos-openvpn-mysql-auth
免費提供最新Linux技術教程書籍,為開源技術愛好者努力做得更多更好:http://www.linuxprobe.com/

相關推薦

Centos搭建openvpn+mysql資料庫認證

伺服器環境說明 1、系統版本 CentOS release 5.10 (Final) 64bits 2、軟體版本 openvpn-2.3.6-1.el5 lzo-2.02-2.el5.1 lzo-devel-2.02-2.el5.1 easy-rsa-2.2.2-1

openvpn+mysql密碼認證

ces file completed iptable 安裝mysql ren upd color column 一、安裝環境 確保有一個正確的系統環境,這個很重要,有時候排錯時,折騰了許久,發現就是這些問題導致的 1、做以下檢查 [root@VPN ~]# cat /et

CentOS下修改mysql資料庫編碼為UTF-8(附mysql開啟遠端連線和開放3306埠)

樓主在配置好linux雲伺服器的jdk,tomcat,mysql後,當要開始部署專案是,突然意識到一個很嚴重的問題,那就是資料庫的編碼問題,自安裝完成後並未修改資料庫的額編碼。。。。下面就來說說linux下修改mysql的編碼問題吧。。有一個問題網上很多地方都沒說到,詳情請繼續往下看。

Linux CentOS安裝配置MySQL資料庫

安裝mysql資料庫   a)下載mysql源安裝包:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm   b)安裝mysql源:yum localinstall mysql5

使用mycat搭建實現mysql資料庫叢集管理

今天來使用mycat管理mysql叢集, 隨著資料量的提升, 我們如果把所有資料儲存在一個數據庫中, 對資料的各種操作就會變得非常的困難. 自然我們又想到了資料庫也進行叢集部署, 將一個數據庫的資料分散到不同的資料庫中儲存, 進而提升資料操作的效能. 本文的定義

阿里雲CentOS伺服器中MySQL資料庫的預設密碼及修改

伺服器資訊 系統映象:CentOS 7.3 應用映象:LAMP(Linux + Apache + MySQL + PHP),即mysql預設是安裝好的。 命令 [[email protected] ~]# # 登入系統,檢視env.txt [[em

[IDEA]::springboot框架搭建,整合mysql資料庫

1.完整工程目錄圖如下 2.開啟idea,左上角 file–>new–>project–>選擇spring Initializar,選擇 jdk ,然後next 3,出現下圖,繼續next,這裡可以修改你想要的檔名 4.只選中web,next 5.可以工程名,和工程存

伺服器配置 之 centos 搭建伺服器-----mysql配置

mysql 分享給大家:https://pan.baidu.com/s/1fYeFDJ3OOlW4Nd6siyrjbw 密碼:9of6   Mysql安裝 步驟: 檢視CentOS自帶的mysql 輸入 rpm -qa | grep mys

centos搭建svn,解決認證失敗問題

1 安裝svn 執行svnserve –version 檢視系統中是否安裝了svn [root@localhost project]# svnserve --version svnserve,版本 1.7.14 (r1542130) 編譯於 Apr

centOS上的mysql資料庫安裝&tomcat自啟動

一個java後臺離不開資料庫的支撐、那麼本文為你帶來mysql資料庫安裝的案例。 ####1,安裝jdk1.7,簡單也好用的yum命令來安裝: (1)如果沒有yum那麼先安裝上去:yum -y install wget (2)檢視可以安裝的jdk列表:yum

[CentOS Python系列] 四.阿里雲伺服器CentOS連線遠端MySQL資料庫及pymsql

從2014年開始,作者主要寫了三個Python系列文章,分別是基礎知識、網路爬蟲和資料分析。  隨著人工智慧和深度學習的風暴來臨,Python變得越來越火熱,作者也準備從零學習這些知識,寫相關文章。本篇

centos 7下mysql資料庫設定

yum localinstall -y http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm yum install mysql-server -y systemctlenable mys

CentOS搭建OpenVPN

安裝前確認已安裝相關依賴 系統是centos 6.5 yum install –y openssl openssl-devel                安全套接字層密碼庫 yum install –y lzo lzo-devel                   

CentOS Linux更改MySQL資料庫目錄位置

引言:由於MySQL的資料庫太大,預設安裝的/var盤已經再也無法容納新增加的資料,沒有辦法,只能想辦法轉移資料的目錄。下面我整理一下把MySQL從/var/lib/mysql目錄下面轉移到/home/mysql_data/mysql目錄的具體操作: 1、首先我們需要關閉

Centos 7 安裝mysql資料庫

檢視Linux版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)

CentOS Linux更改MySQL資料庫目錄位置具體操作

引言: 由於MySQL的資料庫太大,預設安裝的/var盤已經再也無法容納新增加的資料,沒有辦法,只能想辦法轉移資料的目錄。 下面我整理一下把MySQL從/var/lib/mysql目錄下面轉移到/home/mysql_data/mysql目錄的具體操作: 1、首先我們需要關

linux centosmysql資料庫的主從複製環境搭建

有兩臺MySQL資料庫伺服器Master和slave,Master為主伺服器,slave為從伺服器,初始狀態時,Master和slave中的資料資訊相同,當Master中的資料發生變化時,slave也跟著發生相應的變化,使得master和slave的資料資訊同步,達到備份的目的。 原理圖如下:

搭建JEESZ分布式架構3--CentOs下安裝MySQL(環境準備)

spring mvc+my batis dubbo+zookeerper kafka restful redis分布式緩存 聲明:因為運行環境是基於Linux系統的,在做此框架之前需要做一些前期的環境準備工作CentOs下安裝MySQL網上很多實例,因為博客後期作為框架的原生教程,故這邊做詳細

CentOS 搭建 Mysql MMM 高可用架構

install 高可用 padding log isa har mmm_mond replica tro 環境 CentOS Mysql 5.1 前提 安裝了EPEL,詳細安裝步驟請參照 http://blog.csdn.net/robinsonmhj/articl

CentOS搭建lepus3.8監控MySQL

centos搭建lepus3.8監控mysqlCentOS搭建lepus3.8監控MySQLyum -y install gcc libffi-devel python-devel openssl-devel mysql-devel zlib-devel監控端安裝數據庫連接Python的驅動包1).安裝 My