CentOS安装配置OpenVPN并可以用证书或账号密码登录

OpenVPN是不同于PPTP、L2TP的另一种VPN软件包,基于SSL的VPN。OpenVPN使用需要客户端支持。这里系统为CentOS6.4。
一、检查OpenVPN所需环境
OpenVPN需要TUN设备支持,还需要iptables的nat模块支持。
1、检查TUN模块:

modinfo tun

显示如下:

如果报错则不支持TUN设备。 2、在OpenVZ虚拟化的VPS上,需要管理员在母鸡上打开TUN/TAP设备。

cat /dev/net/tun

如果返回:

cat: /dev/net/tun: File descriptor in bad state

VPS的TUN/TAP已经可以使用。
如果返回:

cat: /dev/net/tun: No such device

或者其它,说明TUN/TAP设备没有被正确配置,需要与客服沟通开通TUN/TAP。
3、检查OpenVZ的VPS上iptables是否支持:

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

如果返回:

iptables: Unknown error 4294967295

说明支持。
二、编译安装OpenVPN
1、安装依赖环境

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

2、安装OpenVPN

wget -c http://swupdate.openvpn.org/community/releases/openvpn-2.3.0.tar.gz tar zxvf openvpn-2.3.0.tar.gz cd openvpn-2.3.0 ./configure make make install mkdir –p /etc/openvpn cp -Rf sample  /etc/openvpn/ cd ..

单独下载easy-rsa,制作ca证书,服务端证书,客户端证书

#openvpn-2.3.0.tar.gz 该版本源码不包含easy-rsa,所以需要单独下载安装 easy-rsa wget -c https://github.com/OpenVPN/easy-rsa/archive/master.zip unzip master mv easy-rsa-master easy-rsa cp -Rf  easy-rsa /etc/openvpn cd /etc/openvpn/easy-rsa/easy-rsa/2.0

三、生成密钥和证书

vim vars #调到最后找到一下代码 export KEY_COUNTRY="CN" export KEY_PROVINCE="JN" export KEY_CITY="DZ" export KEY_ORG="lvtao" export KEY_EMAIL="admin@lvtao.net" export KEY_OU="lvtao" #x!保存退出    ln -s openssl-1.0.0.cnf openssl.cnf chmod +x vars source ./vars ./clean-all #制作ca证书 ./build-ca #制作服务端证书 ./build-key-server server #制作客户端证书 ./build-key client1 ./build-dh #打包keys tar zcvf keys.tar.gz keys/ #终端发送到客户端备用 sz keys.tar.gz

#keys中的文件说明


Filename


Needed By


Purpose


Secret


ca.crt


server + all clients


Root CA certificate


NO


ca.key


key signing machine only


Root CA key


YES


dh{n}.pem


server only


Diffie Hellman parameters


NO


server.crt


server only


Server Certificate


NO


server.key


server only


Server Key


YES


client1.crt


client1 only


Client1 Certificate


NO


client1.key


client1 only


Client1 Key


YES

cd /etc/openvpn/sample/sample-config-files/ cp server.conf ../../  #配置server.conf,具体参数不再累述 vi ../../server.conf  #复制keys cd /etc/openvpn/easy-rsa/easy-rsa/2.0/keys cp -Rf ca.crt server.crt server.key dh2048.pem /etc/openvpn/  # 编辑/etc/sysctl.conf,找到net.ipv4.ip_forward = 0改成net.ipv4.ip_forward = 1保存。然后执行: sysctl –p  #设置nat转发.注意最后192.168.122.180改成你的服务器的IP地址。 iptables -t nat -A POSTROUTING -s 10.8.8.0/24 -j SNAT --to-source 192.168.122.180 /etc/init.d/iptables save /etc/init.d/iptables restart

PS:如果iptables save报错

iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 268: restorecon: command not found

要安装一个软件包:
yum install policycoreutils 设置OpenVPN开机自启动

echo "/usr/local/sbin/openvpn --config /etc/openvpn/easy-rsa/2.0/conf/server.conf &" >> /etc/rc.local

启动OpenVPN

/usr/local/sbin/openvpn --config /etc/openvpn/easy-rsa/2.0/conf/server.conf  >/dev/null 2>&1 &

使用密码登录配置
修改openvpn服务主配置文件,添加如下内容;如果加上client-cert-not-required则代表只使用用户名密码方式验证登录,如果不加,则代表需要证书和用户名密码双重验证登录!

tail -3 /etc/openvpn/server.conf auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env client-cert-not-required  username-as-common-name

验证用户登录脚本并进行相应的修改,主要改PASSFILE和LOG_FILE两个变量

#!/bin/sh ########################################################### # checkpsw.sh (C) 2004 Mathias Sundman <mathias@openvpn.se> # # This script will authenticate OpenVPN users against # a plain text file. The passfile should simply contain # one row per user with the username first followed by # one or more space(s) or tab(s) and then the password.  PASSFILE="/etc/openvpn/psw-file" LOG_FILE="/var/log/openvpn-password.log" TIME_STAMP=`date "+%Y-%m-%d %T"`  ###########################################################  if [ ! -r "${PASSFILE}" ]; then   echo "${TIME_STAMP}: Could not open password file "${PASSFILE}" for reading." >> ${LOG_FILE}   exit 1 fi  CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`  if [ "${CORRECT_PASSWORD}" = "" ]; then    echo "${TIME_STAMP}: User does not exist: username="${username}", password="${password}"." >> ${LOG_FILE}   exit 1 fi  if [ "${password}" = "${CORRECT_PASSWORD}" ]; then    echo "${TIME_STAMP}: Successful authentication: username="${username}"." >> ${LOG_FILE}   exit 0 fi  echo "${TIME_STAMP}: Incorrect password: username="${username}", password="${password}"." >> ${LOG_FILE} exit 1

准备用户名和密码认证文件,用户名和密码用空格隔开,同时确保openvpn启动用户可读取该文件

vi psw-file    lvtao  954270

配置权限

chmod 400 psw-file   chown nobody.nobody psw-file

修改客户端配置文件
注释掉

;cert lvtao.crt  ;key  lvtao.key

增加询问用户名和密码

auth-user-pass

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索net
, 密码
, 文件
配置
centos7 openvpn 配置、centos openvpn 配置、openvpn配置证书文件、openvpn 证书配置、centos 证书登录,以便于您获取更多的相关知识。

时间: 2024-09-19 04:44:27

CentOS安装配置OpenVPN并可以用证书或账号密码登录的相关文章

Centos安装配置openvpn服务端代码

代码 [root@vpnserver ~]# ntpdate time.nist.gov [root@vpnserver ~]# mkdir /byrd/tools -p [root@vpnserver ~]# mkdir /byrd/service [root@vpnserver ~]# cd /byrd/tools/ [root@vpnserver tools]# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.t

CentOS 安装配置 Nginx

概述 以前觉得在CentOS上面安装配置 Nginx肯定麻烦,所以一直没有动.今天试了一下发现还挺简单的,只需要几步就OK. 安装 Nginx Nginx 官网给出了详细的安装教程,安装Nginx 总结了一些 CentOS 上面的安装步骤: 配置 yum 源: 需要在新建 /etc/yum.repos.d/nginx.repo文件,并且编辑文件内容为: [nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/cento

CentOS安装配置ss-manyuser教程

关于安装配置ss-manyuser的步骤,我们整理如下. 一.安装所需组件 yum install wget git tar gcc gcc-c++ openssl openssl-devel pcre-devel python-devel libevent automake autoconf libtool make -y 二.升级Python 请参考:CentOS升级Python2.7 wget http://www.python.org/ftp/python/2.7.6/Python-2.

CentOS 安装配置 Mysql 数据库。

centos 安装 Mysql 数据库.   安装mysql 命令和mysql服务器.yum install mysql mysql-server     然后设置 mysql 编码     vi /etc/my.cnf 在[mysqld]下添加 default-character-set = utf8   在末尾添加 [mysql] default-character-set = utf8   #然后开始启动mysql   service mysqld start   #设置MySQL服务随系

CentOS 安装配置vsftpd服务器

方法一,CentOS5.9 vsftpd配置 1.将以下代码输入到: install_vsftpd.sh 里.  代码如下 复制代码 echo "============================install vsftpd==================================" yum -y remove vsftpd yum -y install vsftpd rm -f /etc/vsftpd/vsftpd.conf cat >>/etc/vsft

CentOs 安装配置 Apache

概述 如果想在自己的服务器上挂自己的个人网站,如果是静态的页面的话,可能就会配置一个Web静态页面服务器.静态页面服务器有很多,用的比较多的就是 Apache,最快的就要属 Nginx.在这里给大家介绍一下 在CentOS 7 下面怎么配置启动 Apache 2.4 安装 Apache 2.4 在CentOS 7上面安装 Apache 2.4 推荐使用 yum 安装. 既方便有快捷,使用如下命令:yum -y install httpd 启动 Apache 2.4 下面总结了一些启动 Apach

Centos安装配置MongoDB数据库实例

系统:centos 5.9 1.安装前准备 这是针对64位系统yum源:  代码如下 复制代码 echo "[MongoDB] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1" | sudo tee -a /etc/yum.repos.d/mongodb.repo 这是针对32位系统yum源  代码如下 复制代码

CentOS 安装配置phpmyadmin的例子

首先下载一下phpmyadmin: http://www.phpmyadmin.net/home_page/index.php 改个方便点的名字比如pmn 然后上传到/var/www/html,centos下输入: cd /var/www/html tar xvfz pmn.tar.gz 安装并解压,将文件夹名字修改成pmn 输入 cd pmn 在pmn下(既解压出来的phpmyadmin文件夹里面)将config.sample.inc.php重命名为config.inc.php 然后重启apa

CentOS安装配置PPTP并结合freeradius验证

本帖的配置环境为CentOS5 32bit,配置安装PPTP的过程就不写了,如果不会请在本博客自行搜索,下面贴出整合freeradius需要进行的配置: pptp客户端配置部分  代码如下 复制代码 wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/radiusclient-0.3.2-0.2.el5.rf.i386.rpm rpm -i radiusclient-0.3.2-0.2.el5.rf.i386.rpm vim /etc/r