centos6 安装openvpn+mysql验证
第1步:安装centos6,并添加centos的升级镜像,添加epel镜像
首先备份/etc/yum.repos.d/CentOS-Base.repo
1 |
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup |
下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)
1 |
cd /etc/yum.repos.d/ |
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo </pre >
然后下载epel库安装
1 2 |
wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uhv epel-release-6-5.noarch.rpm |
运行yum makecache生成缓存
如果出错,检查下163的镜像库是否有问题。
1 |
vim CentOS6-Base-163.repo |
将对应的addons内容注释掉,因为库还没出来,所以必须注释掉
1 2 3 4 5 6 7 |
#packages used/produced in the build but not released #[addons] #name=CentOS-$releasever - Addons - 163.com #baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #gpgcheck=1 #gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 |
第2步,安装编译程序所需要的日常库
1 2 3 |
sudo -s LANG=C yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-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 |
下面安装openvpn及pam组件
1 |
yum install openvpn pam_krb5 pam_mysql pam pam-devel |
安装完成后,开始调试openvpn执行下面的操作
1 |
cp -R /usr/share/openvpn/easy-rsa/ /etc/openvpn/ |
然后开始建立server的ca,key
1 |
cd /etc/openvpn/easy-rsa/2.0/ |
编辑vars,按shit+g跳转到最下面,编辑成你需要的信息。
1 2 3 4 5 |
export KEY_COUNTRY="CN" export KEY_PROVINCE="GD" export KEY_CITY="GUANGZHOU" export KEY_ORG="GZDC" export KEY_EMAIL="FANGBO@GZDC.CN" |
然后指定编译源
1 |
source ./vars |
下面开始生成ca证书
1 2 |
./clean-all ./build-ca ca |
直接回车完成
再生成server.key
1 |
./build-key-server server |
回车直到最后两项,按“Y”确认。
然后我们需要生成Diffie Hellman参数,这个需要一点时间的。
1 |
./build-dh |
下面,我们还需要生成一个tls验证key
1 |
openvpn --genkey --secret keys/ta.key |
到这里先做个小结:我们生成的文件都放在/etc/openvpn/easy-rsa/2.0/keys/,记住,我们等会会用到这个路径。
下面我们需要安装mysql服务器
1 |
yum install mysql mysql-server mysql-devel mysql-libs |
安装lzo组件
1 |
yum install lzo-minilzo lzo lzo-devel |
登录mysql建立一个验证用的测试数据库,添加用户信息
1 |
mysql -u root -p |
#输入密码后执行下面的语句。
1 2 3 4 5 6 7 8 9 10 11 |
mysql> create database vpn; mysql> GRANT ALL ON vpn.* TO vpn@localhost IDENTIFIED BY 'vpn123'; mysql> flush privileges; mysql> use vpn; mysql> CREATE TABLE vpnuser ( -> name char(20) NOT NULL, -> password char(128) default NULL, -> active int(10) NOT NULL DEFAULT 1, -> PRIMARY KEY (name) -> ); mysql> insert into vpnuser (name,password) values('user1',password('123456')); |
在/etc/pam.d/下建立一个配置文件
1 |
vim /etc/pam.d/openvpn |
输入以下内容并保存
1 2 3 4 5 6 |
auth sufficient pam_mysql.so user=vpn passwd=vpn123 host=localhost db=vpn table=vpnuser usercolumn=name passwdcolumn=password where=active=1 sqllog=0 crypt=2 account required pam_mysql.so user=vpn passwd=vpn123 host=localhost db=vpn table=vpnuser 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 |
现在可以测试pam_mysql是否工作正常,但这个动作之前需要安装sasl
1 |
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi |
测试是否成功
1 |
saslauthd -a pamtestsaslauthd -u user1 -p 123456 -s openvpn |
如果成功,显示 0: OK "Success."
恭喜,pam_mysql工作正常了,下面可以开始配置OpenVPN服务器了。
这里需要有一部非常重要的步骤,2.1以上的OpenVPN的openvpn-auth-pam.so都会出现验证错误的问题,这里需要我们重新编译一个低版本的,我这里用2.0.7的,大家也可以使用2.0.9版本的。
1 2 3 4 5 |
wget http://pkgs.fedoraproject.org/repo/pkgs/openvpn/openvpn-2.0.7.tar.gz/93528233f1f6d02fc18e2c00f82e0aca/openvpn-2.0.7.tar.gz tar zxvf openvpn-2.0.7.tar.gz cd openvpn-2.0.7 ./configurecd plugin/auth-pam/make cp openvpn-auth-pam.so /etc/openvpn/ |
下面开始建立openvpn配置文档,有两种方式:
1、将例子文档复制到openvpn目录下
1 |
cp /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/ |
2、或直接建立openvpn配置文档
1 |
vim /etc/openvpn/server.conf |
然后输入以下内容并保存。
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 26 27 28 29 30 31 32 33 |
port 1194 proto udp dev tun #指定位置 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 0 server 10.8.0.0255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" push "dhcp-option DNS 10.8.0.1" client-to-client keepalive 10120 comp-lzo persist-key persist-tun client-cert-not-required username-as-common-name #这里是指定openvpn-auth-pam.so这个插件 plugin ./openvpn-auth-pam.so openvpn #log#日志存放目录 log openvpn.log status openvpn-status.log # Verbosity level. # 0 -- quiet except for fatal errors. # 1 -- mostly quiet, but display non-fatal network errors. # 3 -- medium output, good for normal operation. # 9 -- verbose, good for troubleshooting #日志级别 verb 3 |
下面需要操作防火墙及设置IP转发。
先修改ip转发。
1 |
vim /etc/sysctl.conf |
将net.ipv4.ip_forward = 0修改为net.ipv4.ip_forward = 1
修改完成后检查一下
1 |
$sysctl -p |
#可检查自己是否成功,若下面的项则表示成功
1 2 3 4 5 6 |
net.ipv4.ip_forward =1 net.ipv4.conf.default.rp_filter =1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid =1 net.ipv4.tcp_syncookies =1 |
下面需要修改防火墙的端口设置及IP规则。
1 |
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0:0 -j MASQUERADE |
#你的网卡借口,由于我的主机是VPS主机,所以网卡为venet0:0
1 2 3 4 5 6 7 8 |
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 你的服务器地址 #设置地址转发 service iptables save #保存配置 service iptables restart #接着重启防火墙 |
可以启动openvpn试试看。
1 |
service openvpn start |
三步,配置本地client端。
下载http://swupdate.openvpn.org/community/releases/openvpn-2.2.1-install.exe
在安装目录下有个config目录,
将服务器上了的ca.crt,ca.key,ta.key三个文件复制到config下。
新建一个文本文件,输入以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
client dev tun proto udp remote 192.168.70.30 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt tls-auth ta.key 1 ns-cert-type server comp-lzo verb 3 auth-user-pass |
保存后,将后缀名.txt改成.ovpn
后续的,你就不要问我了,如果不会,请买块豆腐撞死!
版权声明:
作者:心飞翔
链接:https://www.faystar.com/techshare/linux/159.html
来源:心飞翔
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论