首页 > WEB互联网 > 浅谈CentOS下安装Openvpn计费系统方法
2016
04-17

浅谈CentOS下安装Openvpn计费系统方法

近期openvpn免流貌似很火,有很多人问我怎么搭建计费系统,下面我就给大家讲解一下。

《准备工作》

  1. 添加EPEL源:

rpm -ivh http://www.sbwml.cn/yum/epel-release-6-8.noarch.rpm

  1. 更新yum软件:

yum update

《网络配置》

  1. 清空当前防火墙规则/保存/重启规则:

iptables -F

service iptables save

service iptables restart

  1. 关闭SELINUX:

setenforce 0

  1. 开启路由转发:

vi /etc/sysctl.conf

温馨提示:输入命令后会进入文件编辑状态,输入“I”即可对内容进行编辑

修改参数net.ipv4.ip_forward = 1 (默认为0,修改成1 表示开启路由转发,如果默认是空内容,请自行加上-腾讯云貌似就是空的)

修改完成后按Esc退出编辑状态,然后输入:

:wq

重启sysctl生效路由转发:

sysctl -p

  1. 重新配置防火墙规则:

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

iptables -A INPUT -p TCP –dport 2099 -j ACCEPT

#OpenVPN服务端口,可自定义,不可冲突,修改后需要修改对应的配置文件

iptables -A INPUT -p TCP –dport 80 -j ACCEPT

#squid转发端口,

iptables -A INPUT -p TCP –dport 22 -j ACCEPT

iptables -t nat -A POSTROUTING -j MASQUERADE

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

service iptables save

service iptables restart

《程序安装》

  1. 安装依赖:

yum install -y wget squid openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig

  1. 安装OpenVPN:

yum install -y openvpn

 

上传待用文件:

用FlashFXP 上传附件文件的到/etc/openvpn/目录里面

 

  1. 配置VPN服务端参数:

cd /etc/openvpn/

chmod 0755 ./*.conf

《制作证书》

1 制作证书:

cd /etc/openvpn/easy-rsa/

source vars

./clean-all

./build-ca   #一路的回车

./build-key-server centos   #一路的回车,提示输入y就跟着输入

./build-key user   #一路的回车,提示输入y就跟着输入

./build-dh   #这是一个漫长的等待过程

cp /etc/openvpn/easy-rsa/keys/{ca.crt,user01.{crt,key}} /home/

使用FlashFXP 登陆服务器,进入 /home 目录,把 ca.crt、user.crt、user.key 三个文件下载到电脑,证书制作完毕!

《端口转发》

  1. 配置/启用端口转发:

cd /etc/squid/

rm -f ./squid.conf

用FlashFXP 上传附件中squid.conf和squid_passwd文件复制到/etc/squid/目录下

chmod 0755 /etc/squid/squid.conf

squid –z

squid -s

《启动OpenVPN》

service openvpn start  #启动OpenVPN

service openvpn restart  #重启OpenVPN

《开机自启》

chkconfig openvpn on  #开启自动启动OpenVPN

chkconfig squid on  #开启自动启动squid

service squid start

 

安装Mysql

yum install mysql-server

设置Mysql的服务1

先启动Mysql服务

service mysqld start2

设置Mysql开机启动

chkconfig mysqld on4

开启3306端口并保存

/sbin/iptables -I INPUT -p tcp –dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

END

修改密码并设置远程访问

mysql

设置密码

use mysql;

update user set password=password(‘ouyang’) where user=’root’;

flush privileges;

  1. 2

设置Mysql远程访问

grant all privileges on *.* to ‘root’@’%’ identified by ‘ouyang’ with grant option;

END

安装时这个可以跳过,跳到下面重启服务哪里(解决Mysql乱码问题)

找一个配置文件,复制到/etc/目录,命名为my.cnf

(有时候没有my.cnf)

cp /usr/share/doc/mysql-server-5.1.73/my-medium.cnf /etc/my.cnf

vim my.cnf

在[client]和[mysqld]下面都添加上

default-character-set=utf8

最后按Esc输入

:wq

保存退出

重启mysql服务

最后重新启动服务就可以了

service mysqld restart

注意事项

  • 最后一定要重启服务

 

如果用户不能登录执行下面的命令(修改密码命令)

 

# /etc/init.d/mysqld stop

# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD(‘你的密码’) where USER=’root’;

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysqld restart

# mysql -uroot -p

Enter password: 输入密码回车就可以了

 

二、基于MySQL的用户名/密码认证实现

1、安装MySQL Server

2、建立数据库

以管理员身份登录MySQL:

mysql -uroot -p

运行以下SQL命令:

— 创建数据库

CREATE DATABASE openvpn;

 

— 切换数据库

USE openvpn;

 

— 创建用户,用户名openvpn,密码openvpn(可自行设定)

GRANT ALL ON openvpn.* TO ‘openvpn’@’localhost’ IDENTIFIED BY ‘openvpn’;

— 切换数据库

USE openvpn;

source /etc/openvpn/openvpn.sql

quit

 

3、安装pam_mysql模块

yum install -y mysql-devel pam-devel gcc gcc-c++ openssl

wget http://www.hndzz.cn/attachment/pam_mysql-0.7RC1.tar.gz

tar zxvf pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1

./configure –with-openssl

./configure

make

make install

264位系统的所有pam模块都在/lib64/security/

所以要做成硬链接:

ln /lib/security/pam_mysql.* /lib64/security/

4、配置OpenVPNPAM

vi /etc/pam.d/openvpn

按i

然后粘贴以下内容:

auth            sufficient      pam_mysql.so user=openvpn passwd=openvpn host=localhost db=openvpn table=user usercolumn=username passwdcolumn=password where=active=1 sqllog=0 crypt=1

 

account         required        pam_mysql.so user=openvpn passwd=openvpn host=localhost db=openvpn table=user usercolumn=username passwdcolumn=password where=active=1 sqllog=0 crypt=1

粘贴后按一下Esc 输入

:wq

保存
之后重启saslauthd:

/etc/init.d/saslauthd restart 或者 service saslauthd start

如果出现以下提示:

To enable saslauthd, edit /etc/default/saslauthd and set START=yes (warning).

说明saslauthd未配置成自动启动,则需修改/etc/default/saslauthd文件,将START=no改为START=yes,再重启服务即可。

5、测试saslauthd是否配置成功

登入MySQL数据库:

mysql -uopenvpn -p

执行以下命令:

USE openvpn;

INSERT INTO user(username, password) VALUES(‘test’, ENCRYPT(‘123456’));

退出后,运行以下命令:

testsaslauthd -u test -p 123456 -s openvpn

如果显示

0: OK “Success.”

则说明配置成功。否则,请根据/var/log/auth.log日志查找原因。

6、复制OpenVPN PAM认证模块计算控制流量模块

将connect.sh, disconnect.sh文件改为可执行属性:

chmod +x /etc/openvpn/connect.sh

chmod +x /etc/openvpn/disconnect.sh

7、重启所有服务

/etc/init.d/saslauthd restart

/etc/init.d/openvpn restart

service mysqld restart

service squid start

OK   全部完成

 

至此,一个用户名/密码认证的OpenVPN系统就配置完成了。

修改附件中的openvpn.ovpn客户端配置文件中的ip和你的ca证书。发送到手机就可以连接测试了

登陆测试账号密码:test  123456   测试完成后记得删除,

最后修改openvpn.ovpn文件

目前web端控制还没写出来,目前只能通过数据库管理。后续更新web端管理系统。

附件下载地址:http://pan.baidu.com/s/1bZmvHs 密码:hn73

 

最后编辑:
作者:欧阳
欧阳
设计界的一只猿|平面设计|创意|WEB安全|互联网

留下一个回复

你的email不会被公开。