OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4613|回复: 0

OpenVPN 收藏以防迷路哦

[复制链接]

143

主题

145

帖子

0

精华

高级会员

Rank: 4

积分
585
金钱
585
注册时间
2020-5-25
在线时间
42 小时
发表于 2020-10-12 17:30:56 | 显示全部楼层 |阅读模式
1.安装OpenVPN 及依赖1 sudo apt-get install update2 sudo apt-get install openssl libssl-dev3 sudo apt-get install openvpn4 sudo apt-get install easy-rsa
 2.创建密钥及证书
[url=][/url]
1 sudo su 2 cd /usr/share/easy-rsa/ 3 vim vars 4 5 # 修改注册信息,比如公司地址、公司名称、部门名称等。 6 export KEY_COUNTRY="CN" 7 export KEY_PROVINCE="" 8 export KEY_CITY="" 9 export KEY_ORG=""10 export KEY_EMAIL=""11 export KEY_OU=""12 export KEY_NAME="EasyRSA"13 14 # 使环境变量生效15 source ./vars[url=][/url]

[url=][/url]
1 # 清除keys目录下所有与证书相关的文件 2 # 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/keys目录里 3 ./clean-all 4 5 # 生成根证书ca.crt和根密钥ca.key(一路按回车即可) 6 ./build-ca 7 8 # 为服务端生成证书和私钥, --batch 表示保持默认设置,无须回车确认 9 ./build-key-server --batch server10 11 # 为客户端生成证书和私钥12 ./build-key --batch client13 14 # 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)15 ./build-dh16 17 # 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)18 openvpn --genkey --secret keys/ta.key[url=][/url]

3.服务器配置文件
1 sudo mkdir -p /etc/openvpn/keys2 3 cp /usr/share/easy-rsa/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/4 5 gzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz6 cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
[url=][/url]
1 # 服务端口 2 port 1194 3 4 # 使用的传输协议 5 proto tcp 6 # 路由模式,桥接模式用dev tap 7 dev tun 8 9 # 证书路径10 ca keys/ca.crt11 cert keys/server.crt12 key keys/server.key13 14 dh keys/dh2048.pem15 16 # 默认虚拟局域网网段,不要和实际的局域网冲突即可17 server 10.8.0.0 255.255.255.018 19 ifconfig-pool-persist /var/log/openvpn/ipp.txt20 21 # 192.168.1.0 是我的 OpenVPN 服务器所在在局域网的网段22 # 如果你的局域网不是这个,那这里需要修改成你的网段23 push "route 192.168.1.0 255.255.255.0"24 25 # 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN26 duplicate-cn27 28 # 这里如果设置了 tls-auth 则客户端也要设置,而且要跟服务器端对应,服务端为0,客户端则为 129 # 我这里注释掉了,因为我客户端没有使用 tls-auth30 ;tls-auth keys/ta.key 0 # This file is secret31 ;key-direction 032 33 # clients we want to allow.34 max-clients 10035 36 persist-key37 persist-tun38 39 status /var/log/openvpn/openvpn-status.log40 log         /var/log/openvpn/openvpn.log41 log-append  /var/log/openvpn/openvpn.log42 43 verb 344 45 # 如果上面配置了传输方式为 TCP, 则此处应该注释掉,否则会产生冲突46 ;explicit-exit-notify 147 48 # 这里配置使用用户名和密码登录的支持,可以取代使用秘钥和证书登录49 auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env50 # 这里非常重要,如果你启用了该选项,你就只需要通过用户名和密码登录了51 # 但是如果你注释了该选项,那你必须使用 用户名 + 密码 + 证书 才能登录成功,缺一不可。52 ;verify-client-cert none53 username-as-common-name54 script-security 3[url=][/url]

[url=][/url]
1 #!/bin/sh 2 ########################################################### 3 # checkpsw.sh (C) 2004 Mathias Sundman <mathias@openvpn.se> 4 # 5 # This script will authenticate OpenVPN users against 6 # a plain text file. The passfile should simply contain 7 # one row per user with the username first followed by 8 # one or more space(s) or tab(s) and then the password. 9 PASSFILE="/etc/openvpn/psw-file"10 LOG_FILE="/etc/openvpn/openvpn-password.log"11 TIME_STAMP=`date "+%Y-%m-%d %T"`12 ###########################################################13 if [ ! -r "${PASSFILE}" ]; then14   echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}15   exit 116 fi17 CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`18 if [ "${CORRECT_PASSWORD}" = "" ]; then19   echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}20   exit 121 fi22 if [ "${password}" = "${CORRECT_PASSWORD}" ]; then23   echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}24   exit 025 fi26 echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}27 exit 1[url=][/url]

1 user1 pass12 user2 pass23 user3 pass3
4.配置内核防火墙
[url=][/url]
1 sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf 2 sed -i '/net.ipv4.ip_forward/s/#//' /etc/sysctl.conf 3 sysctl -p 4 5 iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT 6 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE 7 8 sudo apt-get install iptables-persistent 9 # 保存规则10 sudo service netfilter-persistent save11 12 sudo iptables -L13 14 ufw disable[url=][/url]

5.启动服务
1 /etc/init.d/openvpn start2 # 设置开机启动3 systemctl enable openvpn@server4 systemctl start openvpn@server5 systemctl stop openvpn@server6 systemctl restart openvpn@server
6.客户端配置
1 mkdir ~/openvpn-client2 cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/openvpn-client/client.ovpn
[url=][/url]
1 client 2 # 这里设置跟服务端一样 3 dev tun 4 proto tcp 5 6 # OpenVPN 服务端 IP 和端口 7 remote 127.0.0.1 1194 8 9 resolv-retry infinite10 11 nobind12 13 persist-key14 persist-tun15 16 # 这里设置证书和秘钥17 ca ca.crt18 cert client.crt19 key client.key20 21 remote-cert-tls server22 23 # 如果服务端使用 tls-auth, 则这里也要启用24 ;tls-auth ta.key 125 26 comp-lzo27 28 verb 329 30 # 用来存放用户名和密码的文件路径,这样在连接的时候就不需要手动输入用户名密码了31 auth-user-pass pass.txt[url=][/url]

1 cp /ect/openvpn/keys/ca.crt ~/openvpn-client2 cp /usr/share/easy-rsa/keys/client.crt ~/openvpn-client3 cp /usr/share/easy-rsa/keys/client.key ~/openvpn-client
1 user12 pass1有相同爱好的可以进来一起讨论哦:企鹅群号:1046795523学习视频资料:http://www.makeru.com.cn/live/1392_1164.html?s=143793

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 21:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表