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的先锋,提供了良好的性能和友好的用户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
欢迎来撩 : 汇总all