使用MySQL驗證OpenVPN使用者登入訪問
使用MySQL資料庫來驗證OpenVPN伺服器登入需要使用pam_mysql模組,因此我們首先要下載並且編譯這個模組,然後在配置,而在OpenVPN伺服器端還要使用一個auth_pam外掛,下面我們來分別實現。
5.4.1 下載pam_mysql模組
模組pam_mysql的官方地址為:http://pam-mysql.sourceforge.net/,如下圖:
下載這個模組:
[root@slave ~]# wget http://cdnetworks-kr-2.dl.sourceforge.net \ > /project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz --2012-01-21 13:20:40-- http://cdnetworks-kr-2.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz Resolving cdnetworks-kr-2.dl.sourceforge.net... 211.39.135.163 Connecting to cdnetworks-kr-2.dl.sourceforge.net|211.39.135.163|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 335240 (327K) [application/x-gzip] Saving to: `pam_mysql-0.7RC1.tar.gz'
100%[====================>] 335,240 94.2K/s in 3.5s
2012-01-21 13:20:46 (94.2 KB/s) - `pam_mysql-0.7RC1.tar.gz' saved [335240/335240] |
5.4.2 安裝pam_mysql模組
[root@slave ~]# tar -zxvf pam_mysql-0.7RC1.tar.gz |
解壓縮後檢視一下INSTALL這個檔案,在執行 "configure" 指令碼時它接受的選項
5.4.3 認識configure選項
在執行"configure" 指令碼之前,我們首先來認識以下它的可配置選項。
選項名稱:--with-pam=[PAM_INSTALLATION_PREFIX]
功 能:指定PAM headers路徑,如果沒有指定,那麼會自動查詢。
選項名稱:--with-pam-mods-dir=[MODULE_DIRECTORY]
功 能:指定安裝pam_mysql.so的位置,也可以忽略這個選項。
選項名稱:--with-mysql=[MYSQL_INSTALLATION_PREFIX]
功 能:該選項用於指定所需要MySQL的頭和庫檔案,如果沒有同該選項指定,那麼configure將會搜尋,它會在以下的順序中搜尋:
. /usr
. /usr/local
. /usr/mysql
. /opt/mysql
選項名稱:--with-openssl=[OPENSSL_INSTALLATION_PREFIX]
功 能:該選項用於指定OpenSSL的標頭檔案和庫檔案,如果使用了該選項但是又沒有明確的指定相應的值,那麼configure將會按照以下的順序查詢:
. /usr
. /usr/local
. /opt/openssl
. /usr/ssl
. /usr/local/ssl
選項名稱:--with-cyrus-sasl=[CYRUS_SASL_INSTALLATION_PREFIX]
--with-cyrus-sasl2=[CYRUS_SASL2_INSTALLATION_PREFIX]
功 能:指定Cyrus SASL頭和庫檔案,MD5會使用。需要注意的是,這兩個選項不能一起指定。如果指定了這個選項,但是有沒有明確的指定值,那麼configure將會按照下面的順序查詢:
. /usr
. /usr/local
. /opt/cyrus-sasl
5.4.4 安裝pam_mysql
在執行configure指令碼之前,我們首先要確定openssl、sasl和mysql,
[root@slave auth-pam]# rpm -qa | grep sasl cyrus-sasl-2.1.22-5.el5_4.3 cyrus-sasl-lib-2.1.22-5.el5_4.3 cyrus-sasl-plain-2.1.22-5.el5_4.3 cyrus-sasl-devel-2.1.22-5.el5_4.3 [root@slave auth-pam]# rpm -qa | grep mysql [root@slave auth-pam]# rpm -qa | grep openssl |
我們看到openssl和mysql 都沒有安裝,因此需要首先安裝這些軟體,這裡我們就不再寫出安裝過程了。
執行"configure" 指令碼:
[root@slave pam_mysql-0.7RC1]# ./configure \ > --with-mysql=/usr/local/mysql/ \ > --with-openssl=/usr/local/openssl-0.9.7a/ |
對於 --with-mysql 和 --with-openssl 具體的安裝位置要根據實際情況而設定,如果在執行configure時出現以下錯誤:
checking if md5.h is derived from Cyrus SASL Version 1... no checking md5.h usability... no checking md5.h presence... no checking for md5.h... no checking if md5.h is Solaris's... no checking for md5.h... (cached) no checking for MD5Data... no |
那麼執行以下連結:
ln -s /usr/include/openssl/md5.h /usr/include/md5.h |
直到出現以下配置:
checking if md5.h is derived from Cyrus SASL Version 1... no checking md5.h usability... yes checking md5.h presence... yes checking for md5.h... yes checking if md5.h is Solaris's... no checking for md5.h... (cached) yes checking for MD5Data... no checking for crypt in -lcrypt... yes checking for crypt... yes |
當然,如果要是不使用MD5加密也就沒必要這麼費事了。
安裝pam_mysql:
[root@slave pam_mysql-0.7RC1]# make [root@slave pam_mysql-0.7RC1]# make install
…… make[1]: Entering directory `/root/pam_mysql-0.7RC1' /bin/sh ./mkinstalldirs /usr/lib/security /bin/sh ./libtool --mode=install /usr/bin/install -c pam_mysql.la /usr/lib/security/pam_mysql.la /usr/bin/install -c .libs/pam_mysql.so /usr/lib/security/pam_mysql.so /usr/bin/install -c .libs/pam_mysql.lai /usr/lib/security/pam_mysql.la PATH="$PATH:/sbin" ldconfig -n /usr/lib/security ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib/security
If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- ……
|
注意,這個pam_mysql.so模組安裝的位置,找到它再把它拷貝到以下的位置:
[root@slave security]# pwd /lib/security |
當然,如果不將這個pam_mysql.so檔案拷貝到這個目錄下也是可以的,不過需要在以下檔案中使用絕對的路徑。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-732231/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL登入驗證方式MySql
- oracle使用者登入驗證總結Oracle
- 【轉】允許遠端使用者登入訪問mysql的方法MySql
- oracle中使用者登入的驗證方法Oracle
- Yii2 使用者使用登入元件token驗證元件
- Django 使用LDAP驗證登入DjangoLDA
- 模擬使用者登入,內含驗證碼驗證和request等操作
- [Laravel 8 使用者認證] Jetstream 之 如何自定義登入驗證Laravel
- 關於登入(使用者名稱,密碼,驗證碼)密碼
- jQuery使用者登入和登錄檔單驗證程式碼例項jQuery
- cookie之登入使用者憑證Cookie
- 開啟mysql遠端登入訪問功能MySql
- K8Sdashboard登入問題(chrome無法訪問以及使用使用者名稱和密碼登入)K8SChrome密碼
- asp.net mvc中的使用者登入驗證過濾器ASP.NETMVC過濾器
- Codeigniter處理使用者登入驗證後URL跳轉
- 登入驗證碼生成kaptcha(輸入驗證碼)APT
- 訪問使用者中心實現認證
- golang 中使用 JWT 實現登入驗證GolangJWT
- android Volley登入驗證的使用Android
- JS登入驗證nullJSNull
- python驗證登入Python
- MySQL建立使用者授權訪問MySql
- 手機直播原始碼,Android Studio使用者登入及驗證原始碼Android
- AJAX+JAVA使用者登陸註冊驗證Java
- Laravel- Auth 登入驗證Laravel
- ASP.NET登入驗證ASP.NET
- GitHub--oauth驗證登入GithubOAuth
- Go語言WEB框架:使用wego攔截器驗證使用者的登入狀態GoWeb框架
- 使用FastAPI+SQLAlchemy+Redis+Celery 編寫一個完整的使用者登入驗證APIASTAPISQLRedis
- RHCE_LAB(2)SSH遠端登入自動驗證(不輸入使用者登入密碼)的實現薦密碼
- teams 更改密碼後無法登入,提示使用 Microsoft Authenticator 驗證問題密碼ROS
- 非Oracle使用者使用作業系統驗證登陸(/ as sysdba)Oracle作業系統
- servlet+jsp實現過濾器,防止使用者未登入訪問ServletJS過濾器
- layui使用html+servlet+ajax實現登入驗證UIHTMLServlet
- js登入與註冊驗證JS
- APPCNA 指紋驗證登入APP
- 聊聊Oracle的OS驗證登入Oracle
- CAS自定義登入驗證方法