51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

openvpn 安装

ikuai vpn了解下

软路由系统 --- iKuai搭建OpenVPN服务_ikuai软路由-CSDN博客

安装openvpn 步骤。

window 端下载:

软件: https://url69.ctfile.com/d/253469-55962967-b6c5e4?p=2206 (访问密码: 2206)

1 生成证书

yum install -y easy-rsa

mkdir /opt/easy-rsa
cd /opt/easy-rsa/

#看生成的文件

rpm -ql easy-rsa

cp -a /usr/share/easy-rsa/3.0.8/* .
cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example ./vars
> vars

一、什么是openvpn

VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。

就是为了两点之间传输数据更加的安全

二、openvpn应用场景

1,个人出差需要访问服务器

2,公司不同地区建立服务通信 (IDC-IDC)

三、openvpn服务端配置

1,生成证书

 yum install -y easy-rsa
 mkdir /opt/easy-rsa
 cd /opt/easy-rsa/
 #看生成的文件   rpm -ql easy-rsa
 cp -a /usr/share/easy-rsa/3.0.8/* .
 cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example ./vars
 > vars
 [root@m01 easy-rsa]# cat vars
 if [ -z "$EASYRSA_CALLER" ]; then
         echo "You appear to be sourcing an Easy-RSA 
 'vars' file." >&2
         echo "This is no longer necessary and is 
 disallowed. See the section called" >&2
         echo "'How to use this file' near the top 
 comments for more details." >&2
        return 1
 fi
 set_var EASYRSA_DN "cn_only"
 set_var EASYRSA_REQ_COUNTRY "CN"
 set_var EASYRSA_REQ_PROVINCE "Beijing"
 set_var EASYRSA_REQ_CITY "Shanghai"
 set_var EASYRSA_REQ_ORG "baimei"
 set_var EASYRSA_REQ_EMAIL "baimei@qq.comm"
 set_var EASYRSA_NS_SUPPORT "yes"
 #1.初始化,在当前目录创建PKI目录,用于存储证书
 [root@m01 /opt/easy-rsa]# ./easyrsa init-pki
 #2.创建根证书,会提示设置密码,用于ca对之后生成的server和client证书签名时使用,其他默认
 #温馨提示: 加上密码
 [root@m01 easy-rsa]# ./easyrsa build-ca
 Enter New CA Key Passphrase:          #设置个密码
 Re-Enter New CA Key Passphrase:       #确认密码
 #3.创建server端证书和私钥文件,nopass表示不加密私钥文件,其他可默认
 [root@m01 easy-rsa]# ./easyrsa gen-req server nopass
 #4.给server端证书签名,首先是对一些信息的确认,可以输入yes,然后创建ca根证书时设置的密码
 ##########################################################################
 [root@m01 easy-rsa]# ./easyrsa sign server server
 #5.创建Diffie-Hellman文件,秘钥交换时的Diffie-Hellman算法
 [root@m01 easy-rsa]# ./easyrsa gen-dh
 #6.创建client端证书和私钥文件,nopass表示不加密私钥文件,其他可默认
 [root@m01 easy-rsa]# ./easyrsa gen-req client nopass
 #7.给client端证书签名,首先是对一些信息的确认,可以输入yes,然后创建ca根证书时设置的密码
 ##########################################################################
 [root@m01 easy-rsa]# ./easyrsa sign client client
 #总结目前为止的目录结构及主要内容
 [root@m01 /opt/easy-rsa]# tree  
 .
 ├── easyrsa   #管理命令
 ├── pki
 │   ├── ca.crt  #ca证书 服务端与客户端都是用
 │   ├── dh.pem  #认证算法 服务端
 │   ├── issued
 │   │   ├── client.crt   #客户端证书
 │   │   └── server.crt   #服务端证书
 │   ├── private
 │   │   ├── ca.key    
 │   │   ├── client.key   #客户端私钥
 │   │   └── server.key   #服务端私钥
 ​

2,安装openvpn

 yum -y install openvpn

3,服务端配置文件

 [root@m02 ~]#cat /etc/openvpn/server.conf
 port 1194
 proto udp
 dev tun
 ca /opt/easy-rsa/pki/ca.crt
 cert /opt/easy-rsa/pki/issued/server.crt
 key /opt/easy-rsa/pki/private/server.key
 dh /opt/easy-rsa/pki/dh.pem
 server 10.8.0.0 255.255.255.0
 push "route 172.16.1.0 255.255.255.0"
 ifconfig-pool-persist ipp.txt
 keepalive 10 120
 max-clients 100
 status openvpn-status.log
 log /var/log/openvpn.log
 verb 3
 client-to-client
 persist-key
 persist-tun
 duplicate-cn
 comp-lzo

4,服务端配置文件详解

 [root@m02 ~]#cat /etc/openvpn/server.conf
 port 1194   #端口
 proto udp   #协议
 dev tun      #采用路由隧道模式
 ca /opt/easy-rsa/pki/ca.crt  #ca证书的位置
 cert /opt/easy-rsa/pki/issued/server.crt  #服务端公钥的位置
 key /opt/easy-rsa/pki/private/server.key  #服务端私钥的位置
 dh /opt/easy-rsa/pki/dh.pem  #证书校验算法
 server 10.8.0.0 255.255.255.0  #给客户端分配的地址池
 push "route 172.16.1.0 255.255.255.0"  #允许客户端访问的内网网段
 ifconfig-pool-persist ipp.txt #地址池记录文件位置 未来让openvpn 客户端固定ip地址使用的.
 keepalive 10 120   #存活时间,10秒ping一次,120 如未收到响应则视为断线
 max-clients 100     #最多允许100个客户端连接
 status openvpn-status.log   #日志位置  记录openvpn状态
 log /var/log/openvpn.log    #openvpn日志记录位置
 verb 3    #openvpn版本
 client-to-client  #允许客户端与客户端之间通信
 persist-key  #通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys
 persist-tun   #检测超时后,重新启动VPN,一直保持tun是linkup的。否则网络会先linkdown然后再linkup
 duplicate-cn   #客户端密钥(证书和私钥)是否可以重复
 comp-lzo      #启用lzo数据压缩格式

5,启动并检查端口

 #启动并自启
 systemctl start openvpn@server 
 systemctl enable openvpn@server
 #看网段
 [root@m01 ~]# ip a s tun0
 4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 
 1500 qdisc pfifo_fast state UNKNOWN group default qlen 
 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
        valid_lft forever preferred_lft forever
    inet6 fe80::a012:99d:88da:14dd/64 scope link flags 
 800
        valid_lft forever preferred_lft forever
 #检查端口
 [root@m01 ~]# ss -lntup |grep 1194
 udp   UNCONN     0      0         *:1194               
   *:*                   users:
 (("openvpn",pid=12564,fd=6))
 [root@m01 ~]# ps -ef |grep openvpn 
 root      12564      1  0 17:44 ?        00:00:00 
 /usr/sbin/openvpn --cd /etc/openvpn/ --config
 server.conf

四、openvpn客户端配置(windows)

 client
 dev tun
 proto udp
 remote 10.0.0.62 1194
 resolv-retry infinite
 nobind
 ca ca.crt
 cert client.crt
 key client.key
 verb 3
 persist-key
 comp-lzo

ping内网测试

如何直连内网服务器

 #ping测试
 tcpdump -i eth1 -nn  icmp
 #添加路由
 route add 10.8.0.0/24 gw 172.16.1.61

五、openvpn客户端配置(linux)

 [root@web01 /etc/openvpn]#cat /etc/openvpn/client.conf
 client
 dev tun
 proto udp
 remote 10.0.0.62 1194
 resolv-retry infinite
 nobind
 ca ca.crt
 cert client.crt
 key client.key
 verb 3
 persist-key
 comp-lzo

六、openvpn密码认证

1,服务端配置

1.先配置服务端支持密码认证:
vim /etc/openvpn/server.conf
script-security 3                                   #允许使用自定义脚本
auth-user-pass-verify /etc/openvpn/check.sh via-env #指定认证脚本
username-as-common-name                             #用户密码登陆方式验证

2.编写/etc/openvpn/check.sh 脚本文件
cat /etc/openvpn/check.sh
#!/bin/bash
PASSFILE="/etc/openvpn/openvpnfile"   #密码文件 用户名 密码明文
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


3. 设置权限
chmod +x /etc/openvpn/check.sh

4. 创建用户,空格作为分隔符
cat /etc/openvpn/openvpnfile
baimei 1  

5. 重启服务端
systemctl restart openvpn@server

2,客户端配置

auth-user-pass
赞(0)
未经允许不得转载:工具盒子 » openvpn 安装