对于想了解解决centos7.5安装openvpn,mirrors.163.com提示没有可用软件包openvpn、easy-rsa问题的读者,本文将是一篇不可错过的文章,并且为您提供关于centos
对于想了解解决 centos 7.5 安装 openvpn,mirrors.163.com 提示没有可用软件包 openvpn、easy-rsa 问题的读者,本文将是一篇不可错过的文章,并且为您提供关于centos 6 yum 安装 openvpn、CentOS 6.8 上OpenVPN部署和使用、Centos 6.8安装openvpn.三种认证方式、CentOS 7安装OpenVPN的有价值信息。
本文目录一览:- 解决 centos 7.5 安装 openvpn,mirrors.163.com 提示没有可用软件包 openvpn、easy-rsa 问题
- centos 6 yum 安装 openvpn
- CentOS 6.8 上OpenVPN部署和使用
- Centos 6.8安装openvpn.三种认证方式
- CentOS 7安装OpenVPN
解决 centos 7.5 安装 openvpn,mirrors.163.com 提示没有可用软件包 openvpn、easy-rsa 问题
提示:
yum install openvpn
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
mysql-connectors-community | 2.5 kB 00:00:00
mysql-tools-community | 2.5 kB 00:00:00
mysql57-community | 2.5 kB 00:00:00
updates | 3.4 kB 00:00:00
extras/7/x86_64/primary_db | 204 kB 00:00:00
没有可用软件包 openvpn。
错误:无须任何处理
解决办法:
yum remove epel-release
yum install epel-release
yum clean all
yum install openvpn easy-rsa openssl openssl-devel -y
centos 6 yum 安装 openvpn
centos 6 默认的yum 源没有openvpn,所以需要添加外部的源 获取 wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
然后运行 yum makecacheyum install openvpn 安装完成以后,开始配置 #cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/ # 或者是这个德行,貌似不同的系统,这个位置不一样 我的是centos6.2 是在下面这个位置 cp -R /usr/share/doc/openvpn-2.2.2/easy-rsa /etc/openvpncd /etc/openvpn/easy-rsa/2.0 chmod +x ./* source ./vars 下面开始生成key等文件,所有的都回车默认 ./clean-all 创建CA ./build-ca server 创建CA之后来生成服务器证书,输入 ./build-key-server server 生成客户端证书,同样,都是默认回车 ./build-key client1 ./build-key client2 最后生成Diffie Hellman参数: ./build-dh 证书等生成完毕,开始设置配置文件,如下的配置文件支持 单server --->> 多client,而且不会修改默认的网关,所以运行后,不会影响现有的 网络路由,这样可以支持多客户端之间的互相连接 以下文件保存在 /etc/openvpn/server.conf vim /etc/openvpn/server.conf 引用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 status /var/run/openvpn.status server 10.10.10.0 255.255.255.0 ifconfig-pool-persist ipp.txt client-config-dir /etc/openvpn/ccd user nobody group nobody client-to-client keepalive 10 120 comp-lzo persist-key persist-tun script-security 2 verb 3 如果想支持openvpn 能踢掉连接的用户,可以打开openvpn 的 management 功能,方法就是在配置文件里面添加如下 引用 management 127.0.0.1 9999 使用的方法就是用 telnet 127.0.0.1 9999 登陆进入后,help下就知道怎么操作了,非常的方便 如果要想修改客户端连接以后,自动修改网关为服务器的地址,并用来fan,用下面的配置文件 引用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 server 10.10.10.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" ifconfig-pool-persist ipp.txt client-config-dir /etc/openvpn/ccd user nobody group nobody client-to-client keepalive 10 120 comp-lzo persist-key persist-tun script-security 2 verb 3 如果想让服务端支持同一个客户多次登录的化,服务器端配置文件添加如下 引用duplicate-cn 上面的 client-config-dir /etc/openvpn/ccd 表示固定客户的ip,即每个客户拨号上来以后,ip是固定的 创建 /etc/openvpn/ccd 目录, 在目录里面创建CN的名字的文件名,如上,应该为 client1 client2 等样子的文件,内容如下 ifconfig-push 10.10.10.5 10.10.10.6 批量创建这个文件的命令 for i in `seq 1 10` do ((IPA=i+4)) ((IPB=i+5)) echo "ifconfig-push 10.10.10.${IPA} 10.10.10.${IPB}" > /etc/openvpn/ccd/client${i} done 注意, 每个ip之间,ip间隔4个, 5,9,13 等,依次类推 配置完成openvpn以后,开始配置iptables,设置开启ipv4的路由转发 vim /etc/sysctl.conf 修改为 引用net.ipv4.ip_forward = 1 运行如下命令,配置nat iptables -t nat -A POSTROUTING -j MASQUERADE 保持开机运行 chkconfig openvpn on echo ''iptables -t nat -A POSTROUTING -j MASQUERADE'' >> /etc/rc.local 重新启动openvpn服务 /etc/init.d/openvpn restart 打包 keys 目录下的文件,并下载到客户端,具体配置方法,不做说明了,配置文件如下 -------------------------------------------------- 以下为客户端配置文件 引用client dev tun proto udp remote x.x.x.x 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key comp-lzo script-security 2 verb 3 ps: 经过我的测试,在网络不好的情况下,会发生掉包的情况,而且掉包比较厉害,重新连接又可以用.解决的方法如下: 在客户端的配置文件中,添加如下两行,经过测试,这个方法非常有效,服务端不用做修改 引用mssfix 1300 tun-mtu-extra 32 如果是用用户名和密码的方法来验证登陆,需要 openvpn 2.2 的版本,官方最新版本的已经支持 配置文件如下,这里仅仅需要 ca 就可以了,其他的都不需要 引用 client dev tun proto udp remote xxxx 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt comp-lzo script-security 2 verb 3 auth-user-pass pass.txt explicit-exit-notify 2 no-replay |
CentOS 6.8 上OpenVPN部署和使用
http://solin.blog.51cto.com/11319413/1920574
Centos 6.8安装openvpn.三种认证方式
Centos X64 6.8下安装Openvpn,三种认证方式
环境说明:
主机名称:openvpn01
安装版本为openvpn-2.3.11-1.el6.x86_64
相关资源下载连接如下:
链接:http://pan.baidu.com/s/1c2zDX5Y 密码:mooz
链接:http://pan.baidu.com/s/1bAXh6m 密码:vgq8
链接:http://pan.baidu.com/s/1qYkwty8 密码:1n32
前提条件,关闭selinux安全
# vi /etc/selinux/config
把SELINUX=enforcing 改为SELINUX=disabled后存盘退出,重启机器.
1. 安装"EPEL"源
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh epel-release-6-8.noarch.rpm
2. 安装openvpn
# yum install lzo lzo-devel
# rpm -qa | grep lzo
lzo-devel-2.03-3.1.el6_5.1.x86_64
lzo-minilzo-2.03-3.1.el6_5.1.x86_64
lzo-2.03-3.1.el6_5.1.x86_64
# yum -y install openssl openssl-devel
# rpm -qa | grep openssl
openssl-devel-1.0.1e-48.el6_8.1.x86_64
openssl-1.0.1e-48.el6_8.1.x86_64
openssl098e-0.9.8e-20.el6.centos.1.x86_64
# yum install openvpn easy-rsa
# rpm -qa | grep openvpn
openvpn-2.3.11-1.el6.x86_64
或者wget http://dl.fedoraproject.org/pub/epel/6/x86_64/openvpn-2.3.11-1.el6.x86_64.rpm
3. easy-rsa配置
# mkdir -p /etc/openvpn/easy-rsa/keys
# cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
4. 创建CA证书和密钥
# vi /etc/openvpn/easy-rsa/vars
# PKCS11 fixes
# export PKCS11_MODULE_PATH="dummy"
# export PKCS11_PIN="dummy"
export KEY_COUNTRY="CN"
export KEY_PROVINCE="CA"
export KEY_CITY="Dongguan"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@33jack.com"
export KEY_OU="33jack"
更改你自己的国家,省份,城市,邮箱等等
[root@openvpn01 ]# cd /etc/openvpn/easy-rsa
[root@openvpn01 easy-rsa]# cp openssl-1.0.0.cnf openssl.cnf
[root@openvpn01 easy-rsa]# source ./vars
NOTE: If you run ./clean-all,I will be doing a rm -rf on /usr/share/easy-rsa/2.0/keys
[root@openvpn01 easy-rsa]# ./clean-all
创建CA证书和密钥
[root@openvpn01 easy-rsa]# ./build-ca
5. 创建服务端的证书和密钥
# ./build-key-server server
6. 创建客户端的证书和密钥
# ./build-key client
7. 创建 迪菲 霍尔曼密钥交换参数
创建DH参数.此过程时间比较久,等个10分钟就好了
# ./build-dh
8、生成ta.key文件
# openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key
客户端证书秘钥:ca.crt、client.crtclient.keyta.key(编辑openvpn客户端配置文件会用到)
9、更改主机名称,不然启动会报错。
#vi /etc/hosts
127.0.0.1 localhost openvpn01 localhost4.localdomain4
10.直接使用证书认证方式
# vi /etc/openvpn/server.conf
port 443
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 210.0.255.250"
push "dhcp-option DNS 218.102.23.228"
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway"
duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
11、启动服务
# mkdir /var/log/openvpn
# service openvpn start
tarting openvpn: /etc/init.d/openvpn: line 162: 328 Segmentation fault
这里可能报错,因为openvpn的启动脚本和发行版稍有差别,如果报错,编辑文件/etc/init.d/openvpn里面注释如下几行:
# Source networking configuration.
#. /etc/sysconfig/network
# Check that networking is up.
#if [ ${NETWORKING} = "no" ]
#then
# echo "Networking isdown"
# exit 0
#fi
客户端配置请参见文章http://www.jb51.cc/article/p-nvottcuw-mt.html
====================================================================================
一、使用MysqL pam数据库认证(认证方法一)
1、安装并建立数据库
先删除以前版本数据库
#rpm -qa | grep MysqL
MysqL-5.0.77-4.el5_6.6
mod_auth_MysqL-3.0.0-3.2.el5_3
MysqL-libs-5.1.73-3.el6_5.x86_64
# rpm -e mod_auth_MysqL-3.0.0-3.2.el5_3
# rpm -e MysqL-5.0.77-4.el5_6.6
# yum -y remove MysqL-libs-5.1*
请按顺序删除旧版本的数据库。
rpm安装MysqL 5.7.4-m14版本,
#rpm -ivhMysqL-server-5.7.4_m14-1.el6.x86_64.rpm
#rpm -ivhMysqL-client-5.7.4_m14-1.el6.x86_64.rpm
#rpm -ivhMysqL-devel-5.7.4_m14-1.el6.x86_64.rpm
#rpm -ivhMysqL-shared-5.7.4_m14-1.el6.x86_64.rpm
#rpm -ivhMysqL-shared-compat-5.7.4_m14-1.el6.x86_64.rpm
#chown -R MysqL:MysqL /var/lib/MysqL
注意,默认密码请到下面文件中查看
You will find that password in '/root/.MysqL_secret'.
# service MysqL start
#MysqL -uroot -p
登录后,用下面命令设定密码为pk168007
MysqL>set password=password('pk168007');
MysqL>flush privileges;
MysqL>quit
[root@openvpn01 openvpn]# service MysqL restart
[root@openvpn01 openvpn]# chkconfig MysqL on
[root@openvpn01 openvpn]# MysqL -u root -p
运行以下sql命令:
� 创建数据库
MysqL> CREATE DATABASE openvpn;
� 切换数据库
MysqL> USE openvpn;
创建用户,用户名openvpn,密码evanmis(可自行设定)
MysqL>GRANT ALL ON openvpn.* TO 'openvpn'@'localhost' IDENTIFIED BY 'evanmis';
� 创建用户数据表
CREATE TABLE IF NOT EXISTS `user` (
`username` char(32) COLLATE utf8_unicode_ci NOT NULL,
`password` char(128) COLLATE utf8_unicode_ci DEFAULT NULL,198);"> `active` int(10) NOT NULL DEFAULT '1',198);"> `creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,198);"> `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL,198);"> `email` char(128) COLLATE utf8_unicode_ci DEFAULT NULL,198);"> `note` text COLLATE utf8_unicode_ci,198);"> `quota_cycle` int(10) NOT NULL DEFAULT '30',198);"> `quota_bytes` bigint(20) NOT NULL DEFAULT '10737418240',198);"> `enabled` int(10) NOT NULL DEFAULT '1',198);"> PRIMARY KEY (`username`),198);"> KEY `idx_active` (`active`),198);"> KEY `idx_enabled` (`enabled`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- 创建日志数据表
CREATE TABLE IF NOT EXISTS `log` (
`username` varchar(32) COLLATE utf8_unicode_ci NOT NULL,198);"> `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,198);"> `end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',198);"> `trusted_ip` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,198);"> `trusted_port` int(10) DEFAULT NULL,198);"> `protocol` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,198);"> `remote_ip` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,198);"> `remote_netmask` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,198);"> `bytes_received` bigint(20) DEFAULT '0',198);"> `bytes_sent` bigint(20) DEFAULT '0',198);"> `status` int(10) NOT NULL DEFAULT '1',198);"> KEY `idx_username` (`username`),198);"> KEY `idx_start_time` (`start_time`),198);"> KEY `idx_end_time` (`end_time`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2、建立客户端的VPN拨入帐号
登入MysqL数据库:
[root@openvpn01 openvpn]# MysqL -uopenvpn -p
执行以下命令:
MysqL>USE openvpn;
INSERT INTO user(username,password) VALUES('test',ENCRYPT('123456'));
这样就建立好了一个用户test,密码为123456的帐号。
再查看当然数据库中的用户数量。如下
MysqL> select * from user;
+----------+---------------+--------+---------------------+------+-------+------+-------------+-------------+---------+
| username | password | active | creation | name | email | note | quota_cycle | quota_bytes | enabled |
| test | st3rCn.zSAbZU | 1 | 2012-05-08 08:56:24 | | NULL | NULL | 30 | 10737418240 | 1 |
| evan | bT.y7RjLv90mc | 1 | 2012-05-08 14:57:43 | | NULL | NULL | 30 | 10737418240 | 1 |
2 rows in set (0.00 sec)
3、配置OpenVPN的PAM MysqL认证
安装pam_MysqL验证安装包
[root@openvpn01 openvpn]# yum install pam_krb5 pam pam-devel
[root@openvpn01 openvpn]# rpm -ivh pam_MysqL-0.7-0.12.rc1.el6.x86_64.rpm
[root@openvpn01 openvpn]# rpm -qa | grep pam_MysqL
pam_MysqL-0.7-0.12.rc1.el6.x86_64
并确认这个文件已经存在 /lib64/security/pam_MysqL.so
[root@openvpn01 ~]# rpm -qa | grep pam
pam-devel-1.1.1-22.el6.x86_64
pam_MysqL-0.7-0.12.rc1.el6.x86_64
fprintd-pam-0.1-22.git04fd09cfa.el6.x86_64
pam_passwdqc-1.0.5-8.el6.x86_64
pam-1.1.1-22.el6.x86_64
pam_krb5-2.3.11-9.el6.x86_64
[root@openvpn01 ~]# touch /etc/pam.d/openvpn_MysqL
[root@openvpn01 ~]# vi /etc/pam.d/openvpn_MysqL
auth sufficient pam_MysqL.so \
user=openvpn passwd=evanmis host=localhost db=openvpn \
table=user usercolumn=username passwdcolumn=password \
where=active=1 sqllog=0 crypt=1
account required pam_MysqL.so \
where=active=1 sqllog=0 crypt=1
4、测试pam验证是否成功
[root@openvpn01 openvpn]# /etc/init.d/saslauthd restart
[root@openvpn01 openvpn]# chkconfig saslauthd on
[root@openvpn01 openvpn]# testsaslauthd -u test -p 123456 -s openvpn_MysqL
如果显示
0: OK "Success."
则说明MysqL认证配置成功。否则,请根据/var/log/auth.log日志查找原因。
5、复制OpenVPN PAM认证模块。
注意,2.2.2版本的认证模块文件有问题,会造成帐号密码无法得到认证,所以只能用2.0.9版的生成。
[root@openvpn01 openvpn]# wget http://openvpn.net/release/openvpn-2.0.9.tar.gz
[root@openvpn01 openvpn]# tar zxvf openvpn-2.0.9.tar.gz
[root@openvpn01 openvpn]# cd /openvpn/openvpn-2.0.9/plugin/auth-pam/
[root@openvpn01 auth-pam]# make
编译生成认证模块文件openvpn-auth-pam.so
[root@mailserver auth-pam]# cp openvpn-auth-pam.so /lib64/security/
[root@openvpn01 openvpn]# vi /etc/openvpn/server.conf
将下面一行启用。注意:MysqL 与Radius两种认证只能启用其中一种,不能2个同时使用.
plugin /lib64/security/openvpn-auth-pam.so openvpn_MysqL
==========================================================================================
二、配置OpenVPN PAM Radius认证模块(认证方法二)
使用Radius认证,必须事先架设一台Radius server. 相关教程,请自行找文章。
[root@openvpn01 openvpn]# mkdir /etc/raddb/
[root@openvpn01 openvpn]#wget ftp://ftp.freeradius.org/pub/radius/pam_radius-1.4.0.tar.gz
[root@openvpn01 openvpn]# tar zxvf pam_radius-1.4.0.tar.gz
[root@openvpn01 openvpn]# cd pam_radius-1.4.0
[root@openvpn01 pam_radius-1.4.0]# vi pam_radius_auth.conf
修改部分:
# server[:port] shared_secret timeout (s)
114.112.260.90 pk888 1
#other-server other-secret 3
备注:114.112.260.90是radius服务器,pk888是shred共享密码,只需改一行即可。
[root@openvpn01 pam_radius-1.4.0]# ./configure
[root@openvpn01 pam_radius-1.4.0]# make
[root@openvpn01 pam_radius-1.4.0]# cp pam_radius_auth.so /etc/openvpn
[root@openvpn01 pam_radius-1.4.0]# cp pam_radius_auth.so /lib64/security
[root@openvpn01 pam_radius-1.4.0]# cp pam_radius_auth.conf /etc/raddb/server
配置PAM认证
[root@mailserver pam.d]# vi /etc/pam.d/openvpn_radius
account required /lib64/security/pam_radius_auth.so
auth required /lib64/security/pam_radius_auth.so
[root@mailserver software]# /etc/init.d/saslauthd restart
[root@mailserver software]# testsaslauthd -u bbb -p 456456 -s openvpn_radius
备注:帐号bbb,密码456456是radius服务器114.112.260.90中建立的。
配置OpenVPN服务器的配置文件,注意与以前的MysqL认证相比,只是更改了一行。即下面红色的那一行
vi /etc/server.conf
dev tun
port 443
management 127.0.0.1 7505
sndbuf 409600
rcvbuf 409600
mssfix
cipher BF-CBC
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
#tls -auth /etc/openvpn/easy-rsa/ta.key 0
push "dhcp-option DNS 210.0.255.250"
push "dhcp-option DNS 218.102.23.228"
push "redirect-gateway"
server 10.8.0.0 255.255.255.0
keepalive 10 60
duplicate-cn
log /var/log/openvpn.log
status /var/log/openvpn-status.log
verb 3
#mute 5
# user/pass auth from MysqL
#plugin /lib64/security/openvpn-auth-pam.so openvpn_MysqL
# user/pass auth from Radius
plugin /etc/openvpn/openvpn-auth-pam.so openvpn_radius
client-cert-not-required
username-as-common-name
auth-nocache
备注:push "redirect-gateway" 表示所有用户端流量都走VPN出去。
6) 设置IP包转发:
a) 关闭服务器、防火墙上所有对SSH(22)、openvpn(443)的拦截。
b) [root@openvpn01 openvpn]#vi /etc/sysctl.conf
将 net.ipv4.ip_forward = 1 值改为1.
[root@openvpn01 openvpn]# sysctl -p
7) 导入防火墙配置文件iptables(附件中),再重起服务。
[root@openvpn01 openvpn]# service iptables restart
[root@openvpn01 openvpn]# chkconfig saslauthd on
==========================================================
交流QQ:1564778559
CentOS 7安装OpenVPN
命令很简单,但是网上似乎没资料,只有RHEL6以下的资料。
直接贴命令:
rpm -Uvh openvpn-as-2.0.10-CentOS7.x86_64.rpm ovpn-init |
之后端口啥的可以自己改。
init之后需要修改openvpn的账户密码。
1 | passwd openvpn |
然后连上Admin UI就可以了
默认是:
https://xxx.xxx.xxx.xxx:943/admin
关于解决 centos 7.5 安装 openvpn,mirrors.163.com 提示没有可用软件包 openvpn、easy-rsa 问题的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于centos 6 yum 安装 openvpn、CentOS 6.8 上OpenVPN部署和使用、Centos 6.8安装openvpn.三种认证方式、CentOS 7安装OpenVPN的相关信息,请在本站寻找。
本文标签: