open×××+Mysql+PAM构建强大的***系统
本次为新的生产环境部署系统而采用了这个方案,陆续会将实际的生产架构整理出来.由于涉及到公司的各种敏感信息,已经将IP做了替换中途可能有出入 敬请谅解。等我找时间画图出来一并奉上。
如果有根本上的问题,请大家指正。
本次为了测试使用了如下的软件版本:
epel-release-6-8.noarch.rpm
lzo-2.03.tar.gz
open***-2.2.2.tar.gz
open***-2.0.7.tar.gz
open***-2.2.1-install.exe
1 安装epel第三方源:
1 2 | wget http://mirror.neu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpm |
2 安装各种依赖关系:
1 | yum -y installgcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers |
3 安装
1 2 | yum installpam_krb5 pam_mysql pam pam-develyum installmysql mysql-server mysql-devel mysql-libs |
4 安装lzo:
1 2 | wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gzcdlzo-2.03 && ./configure&& make&& makeinstall |
5 添加路径:
1 2 3 4 5 6 7 8 9 | cat>>/etc/ld.so.conf<<EOF/lib/lib64/usr/lib/usr/lib64/usr/local/lib/usr/local/lib64EOFldconfig |
6 安装open***:
1 2 3 4 5 6 7 8 | tar-zxvf open***-2.2.2.tar.gzcdopen***-2.2.2/./configure--prefix=/usr/local/open***&& make&& makeinstallmkdir-p /etc/open***cd/root/open***-2.2.2cp-R easy-rsa /etc/open***cd/etc/open***/easy-rsa/2.0/cpvars vars_bak |
7 修改vars的内容信息:
1 2 3 4 5 6 7 | vim vars###最下面修改内容:exportKEY_COUNTRY="CN"exportKEY_PROVINCE="BJ"exportKEY_CITY="beijing"exportKEY_ORG="beijingidc"exportKEY_EMAIL="你的邮箱地址" |
8 生成服务器和客户端需要的key文件:
1 2 3 4 5 6 | source./vars./clean-all./build-caca./build-key-serverserver./build-dh/usr/local/open***/sbin/open***--genkey --secret keys/ta.key |
9 创建mysql用于***的账号存放:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ##启动mysql:service mysqld restart###创建数据验证信息:mysql> create database ***;Query OK, 1row affected (0.00sec)mysql> GRANT ALL ON ***.* TO ***@localhost IDENTIFIED BY '***123';Query OK, 0rows affected (0.00sec)mysql> flush privileges;Query OK, 0rows affected (0.00sec)mysql> use***;Database changedmysql> CREATE TABLE ***user (-> name char(20) NOT NULL,-> password char(128) defaultNULL,-> active int(10) NOT NULL DEFAULT 1,-> PRIMARY KEY (name)-> );Query OK, 0rows affected (0.30sec)mysql> insert into ***user (name,password) values('user1',password('123456'));Query OK, 1row affected (0.02sec) |
10 创建pam用于验证:
1 2 3 4 5 6 7 8 | ###创建pam验证配置文件:vim /etc/pam.d/open***auth sufficient pam_mysql.so user=*** passwd=***123 host=localhost db=*** table=***user usercolumn=name passwdcolumn=password where=active=1 sqllog=0 crypt=2account required pam_mysql.so user=*** passwd=***123 host=localhost db=*** table=***user usercolumn=name passwdcolumn=password where=active=1 sqllog=0 crypt=2#crypt(0) -- Used to decide to use MySQL's PASSWORD() function or crypt()#0 = No encryption. Passwords in database in plaintext. NOT recommended!#1 = Use crypt#2 = Use MySQL PASSWORD() function |
11 测试pam和mysql的连接:
1 2 | yum installcyrus-sasl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi/etc/init.d/saslauthdrestart |
12 open*** 2.0以上验证会出问题,需要编译低版本的模块:
1 2 3 4 5 6 7 | wget http://down1.chinaunix.net/distfiles/open***-2.0.7.tar.gztar-zxvf open***-2.0.7.tar.gzcdopen***-2.0.7/./configurecdplugin/auth-pam/makecpopen***-auth-pam.so /etc/open***/ |
13 测试连接:
1 2 3 | ###显示如下内容即为正常:[root@localhost 2.0]# testsaslauthd -u user1 -p 123456 -s open***0: OK "Success." |
14 创建并修改open***的配置文件:
1 | cp/opt/src/open***-2.2.2/sample-config-files/server.conf /etc/open***/ |
15 配置文件的内容如下(取出了所有的注释部分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | vim server.conf###内容如下:port 1194proto udpdev tunca /etc/open***/easy-rsa/2.0/keys/ca.crtcert /etc/open***/easy-rsa/2.0/keys/server.crtkey /etc/open***/easy-rsa/2.0/keys/server.keydh /etc/open***/easy-rsa/2.0/keys/dh1024.pemtls-auth /etc/open***/easy-rsa/2.0/keys/ta.key 0server 10.8.0.0 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1"push "dhcp-option DNS 10.8.0.1"client-to-clientkeepalive 10 120comp-lzopersist-keypersist-tunstatus open***-status.loglog open***.logverb 3client-cert-not-requiredusername-as-common-nameplugin ./open***-auth-pam.so /usr/local/open***/sbin/open*** |
16 开启内核路由转发:
1 2 3 | vim /etc/sysctl.confnet.ipv4.ip_forward = 0改成 net.ipv4.ip_forward = 1sysctl -p |
17 设置防火墙的端口转发:
1 2 3 | ###iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 服务器的ipiptables -t nat -A POSTROUTING -s 10.8.0.0/24-o eth0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.8.0.0/24-j SNAT --to-source192.168.80.151 |
18 保存并重启iptables:
1 2 | service iptables saveservice iptables restart |
19 创建启动脚本:
1 | cp-f /root/open***-2.2.2/sample-scripts/open***.init /etc/init.d/open*** |
1 2 3 4 5 6 | vim /etc/init.d/open***###编译安装的需要将第69行改成:open***_locations="/usr/local/open***/sbin/open*** /usr/sbin/open*** /usr/local/sbin/open***"chkconfig --add open***chkconfig open*** on/etc/init.d/open***start |
------------------至此服务端配置完成---------------
下载open***客户端:
1 | http://swupdate.open***.org/community/releases/open***-2.2.1-install.exe |
客户端的安装配置:
在服务端操作将ca.crt ca.key ta.key 拷贝到客户端的conf目录下面:
C:\Program Files (x86)\Open×××\config
新建文件以.o*** 为结尾,并输入以下内容(remote服务器外网网卡地址):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | clientdev tunproto udpremote 192.168.80.151 1194 ##服务端的IPresolv-retry infinitenobindpersist-keypersist-tunca ca.crttls-auth ta.key 1ns-cert-typeservercomp-lzoverb 5auth-user-pass |
拨号-->输入mysql里面添加的用户名:user1 123456 -->OK
右下角出现的2个小电脑 变成绿色的 即表示连接到open***服务器上,在本地cmd执行ipconfig
查看是否得到了open*** 设置的网段地址。
本文出自 “振兴的空间” 博客,请务必保留此出处http://renzhenxing.blog.51cto.com/728846/1341147
转载于:https://blog.51cto.com/ljl2013/1343615