赞
踩
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/262661cad60947099af9c00aefa0749b.png#pic_center)
维基百科是这么介绍的:OpenVPN是一个用于创建虚拟私人网络加密通道的软件包,最早由James
Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。
它大量使用了OpenSSL加密库中的SSL/TLS协议函数库。
[原作者](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E5%8E%9F%E4%BD%9C%E8%80%85&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECEQQAg): James Yonan
[开发者](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E5%BC%80%E5%8F%91%E8%80%85&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECD8QAg): OpenVPN 项目 / OpenVPN Inc
[当前版本](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E5%BD%93%E5%89%8D%E7%89%88%E6%9C%AC&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECD4QAg): : 2.6.9 (2024年2月13日;稳定版本);
[源代码库](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E6%BA%90%E4%BB%A3%E7%A0%81%E5%BA%93&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECEEQAg): github.com/OpenVPN
[类型](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E7%B1%BB%E5%9E%8B&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECEIQAg): VPN
[系统平台](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E7%B3%BB%E7%BB%9F%E5%B9%B3%E5%8F%B0&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECEAQAg):
[Windows](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=Windows&stick=H4sIAAAAAAAAAONgVuLQz9U3MCmKt1jEyh6emZeSX14MAFTjqsQWAAAA&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0QmxMoAXoECEAQAw) XP或以上; [OS
X](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=OS+X&stick=H4sIAAAAAAAAAONgVuLQz9U3MDWtLFrEyuIfrBABANwDvJoTAAAA&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0QmxMoAnoECEAQBA) 10.8或以上;
[Android](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=Android&stick=H4sIAAAAAAAAAONgVuLSz9U3MCqvKEkvX8TK7piXUpSfmQIAyAsAJhgAAAA&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0QmxMoA3oECEAQBQ) 4.0或以上;
[iOS](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=iOS&stick=H4sIAAAAAAAAAONgVuLSz9U3MC5PyjE0WcTKnOkfDABeKS5iFAAAAA&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0QmxMoBHoECEAQBg) 6或以上;
[Linux](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=Linux&stick=H4sIAAAAAAAAAONgVuLUz9U3SCuoqipYxMrqk5lXWgEATgerNhUAAAA&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0QmxMoBXoECEAQBw); *BSD;
[网站](https://www.google.com/search?sca_esv=913347e5f16b5bd8&q=openvpn+%E7%BD%91%E7%AB%99&sa=X&ved=2ahUKEwi-
mL_h2oGFAxXAmK8BHfuMCh0Q6BMoAHoECD0QAg): openvpn.net
使用命令安装OpenVPN
apt-get install openvpn -y
获取EasyRSA
wget https://github.com/OpenVPN/easy-
rsa/releases/download/v3.1.7/EasyRSA-3.1.7.tgz
若无网络,也可以下载之后,再上传到服务器。要是访问github失败,也可以通过百度云下载
百度云链接:https://pan.baidu.com/s/1T3SoiDwsP6cE9UaRXnSjww
提取码:r141
–来自百度网盘超级会员V6的分享若连接失效,请在评论回复
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/6027cf17e3a4437294a0ce33f672faa7.png#pic_center)
[root@aliyun /etc/openvpn]$ cd EasyRSA-3.1.7
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ cp vars.example vars
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ vim vars
...省略部分内容...
# In how many days should the root CA key expire?
# 设置根证书有效期为100年
set_var EASYRSA_CA_EXPIRE 36500
# In how many days should certificates expire?
# 设置服务端证书有效期为10年
set_var EASYRSA_CERT_EXPIRE 3650
...省略部分内容...
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/2ec033f09cb24ec6a14d135dcb4e2639.png#pic_center)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/8952e15903ac43e1bfa9aadcd212416f.png#pic_center)
创建新的pki
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$./easyrsa init-pki
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/8a14141426b9438abe7a83d20c14e66d.png#pic_center)
生成CA根证书
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ ./easyrsa build-ca nopass
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/ff7f9a7dbafd4fd098016377ebba9a08.png#pic_center)
证书文件:/etc/openvpn/EasyRSA-3.1.7/pki/ca.crt
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ ./easyrsa gen-req server nopass
# 签发证书
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ ./easyrsa sign server server
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/d17026814bcd483f86433b0564a58321.png#pic_center)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/0d6eb0b8912e445ea05c500aa77eb4e8.png#pic_center)
在OpenVPN环境中的EasyRSA工具集中,
./easyrsa gen-req
和./easyrsa build-server-full
这两个命令执行的任务不同,它们分别用于不同的证书管理阶段:
- ./easyrsa gen-req [name] :
- 这个命令是用来生成一个证书签名请求(CSR)和相应的私钥文件。
- 当你需要为某个实体(如服务器或客户端)创建一个新的证书时,会运行这个命令,并提供一个唯一的名称(例如,
vnserver
)。- 它不会直接生成证书,而是产生一个 CSR 文件,这个文件可以被
CA(证书颁发机构)用来签发证书,同时也会生成与之对应的私钥文件,私钥由请求者保留并保密。- ./easyrsa build-server-full [name] :
- 这个命令则是用于在一个步骤中快速创建一个完整的服务器证书链,包括:
- 生成服务器私钥
- 创建 CSR
- 签发服务器证书(由本地或已配置的CA签署)
- 可能还包括创建DH参数文件或者生成CA证书及相关的中级证书(取决于EasyRSA版本和配置)
- 相对于单独的
gen-req
命令,build-server- full
提供了一个更便捷的方式,它一步到位地完成了从生成密钥对到获得签名证书的所有流程,特别适用于新建OpenVPN服务器场景。
总结来说,如果你只是想生成一个CSR以便提交给外部CA签名,那么使用
gen- req
;而如果你想在本地完成整个服务器证书的生成和签名过程,直接使用build-server- full
更为方便。在OpenVPN环境中,通常会使用build-server-full
来快速创建用于OpenVPN服务的自签名服务器证书。
生成Diffie-Hellman算法需要的密钥文件
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ ./easyrsa gen-dh
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/4f2f1559b28a4fdc961fcad33a42855a.png#pic_center)
生成用于防DDOS攻击和TLS攻击文件
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ openvpn --genkey tls-auth ta.key
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/b629c96267204090a428a27346c151d6.png#pic_center)
复制证书文件到server目录下
[root@aliyun /etc/openvpn/server]$ cp /etc/openvpn/EasyRSA-3.1.7/pki/dh.pem /etc/openvpn/server/
cp /etc/openvpn/EasyRSA-3.1.7/pki/reqs/server.req /etc/openvpn/server/
cp /etc/openvpn/EasyRSA-3.1.7/pki/private/server.key /etc/openvpn/server/
cp /etc/openvpn/EasyRSA-3.1.7/pki/issued/server.crt /etc/openvpn/server/
cp /etc/openvpn/EasyRSA-3.1.7/pki/ca.crt /etc/openvpn/server/
cp /etc/openvpn/EasyRSA-3.1.7/ta.key /etc/openvpn/server
有几个客户端就需要创建几个证书,tom是我客户端的名称
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ ./easyrsa gen-req tom nopass
[root@aliyun /etc/openvpn/EasyRSA-3.1.7]$ ./easyrsa sign client tom
[root@aliyun /etc/openvpn]$ mkdir tom
[root@aliyun /etc/openvpn]$ cp /etc/openvpn/EasyRSA-3.1.7/pki/reqs/tom.req /etc/openvpn/tom
cp /etc/openvpn/EasyRSA-3.1.7/pki/private/tom.key /etc/openvpn/tom
cp /etc/openvpn/EasyRSA-3.1.7/pki/issued/tom.crt /etc/openvpn/tom
cp /etc/openvpn/EasyRSA-3.1.7/pki/ca.crt /etc/openvpn/tom
cp /etc/openvpn/EasyRSA-3.1.7/ta.key /etc/openvpn/tom
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/444e40d65b7644128ce9d7a0617172a1.png#pic_center)
[root@aliyun /etc/openvpn]$ cat > /etc/openvpn/server/server.conf <<-EOF #端口号 port 1194 #开启TCP协议,关闭UDP协议 proto tcp #dev tun创建路由隧道,dev tap将创建一个以太网隧道 dev tun #修改CA证书、服务端证书和服务端私钥key的文件名 ca ca.crt cert server.crt key server.key #Diifle hellman文件指向。如果在建立证书时使用2048的话就用2048 dh dh.pem #给接入的Client分配的IP地址段,注意不要和服务内网网段重合 server 10.8.0.0 255.255.255.0 #客户端与客户端之间支持通信 client-to-client #维持客户端和虚拟IP的联系。在OpenVPN重启时,再次连接的客户端依然被分配和以前一样的IP地址 ifconfig-pool-persist ipp.txt #以下这句使得客户端能访问服务器后面的子网机器。比如服务器子网为172.29.242.142,则添加如下内容 push "route 172.29.242.0 255.255.255.0" #分别指定发送间隔和接收间隔。用于设置OpenVPN的心跳包。此参数可保持OpenVPN连接的稳定性 keepalive 10 120 #最多允许200个客户端连接 max-clients 200 #为防止遭到DDoS攻击,生成ta.key文件,并拷贝到服务端和每个客户端 #服务端0,客户端1 tls-auth ta.key 0 #设置重新连接时保留密钥。可避免重新连接时重新生成密钥 persist-key #检测超时后,重新启动VPN,一直保持tun是linkup的。否则网络会先linkdown然后再linkup persist-tun #指定OpenVPN输出连接状态的文件,可查看OpenVPN的连接状态 status /etc/openvpn/logs/openvpn-status.log #记录日志,每次重启OpenVPN后追加log信息 log-append /etc/openvpn/logs/openvpn.log #重复日志记录限额 mute 20 #指定日志文件的记录详细级别,0-9,等级越高日志内容越详细 verb 3 #和keys连接VPN,一定要打开这个选项,否则只允许一 个人连接VPN duplicate-cn #支持密码认证-允许使用自定义脚本 script-security 3 #支持密码认证-指定认证脚本 auth-user-pass-verify /etc/openvpn/check.sh via-env #支持密码认证-用户密码登陆方式验证 username-as-common-name EOF
# 创建认证文件 [root@aliyun /etc/openvpn]$ cat > /etc/openvpn/check.sh <<-EOF #!/bin/bash PASSFILE="/etc/openvpn/user_passwd.txt" #密码文件 用户名 密码明文 LOG_FILE="/etc/openvpn/logs/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 EOF # 对check.sh授予执行权限 [root@aliyun /etc/openvpn]$ chmod u+x check.sh # 创建密码文件 [root@aliyun /etc/openvpn]$ cat > /etc/openvpn/user_passwd.txt <<-EOF tom 123456 EOF
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/7a0715910f0c42e28b18f3e6b0f1b697.png#pic_center)
[root@aliyun /etc/openvpn/server]$ openvpn --config server.conf
yum install openvpn -y
cd /etc/openvpn
# 将服务端创建的证书文件拉取过来
scp -P 2345 -r root@8.130.96.170:/etc/openvpn/tom ./
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/3da23ecd34a84d139e3e8a05ef6e689d.png#pic_center)
[root@k3s-main openvpn]# cat > /etc/openvpn/tom/client.conf <<-EOF #指定当前VPN是客户端 client #使用tun隧道传输协议 dev tun #使用tcp协议传输数据 proto tcp #OpenVPN服务器IP地址端口号 remote 8.130.96.170 1194 #指定CA证书的文件路径 ca ca.crt #指定当前客户端的证书文件路径 cert tom.crt #指定当前客户端的私钥文件路径 key tom.key #断线自动重新连接,在网络不稳定的情况下非常有用 resolv-retry infinite #不绑定本地特定的端口号 nobind #通过keepalive检测超时后,重新启动PN,不重新读取keys,保留第一次使用的key persist-key #检测超时后,重新启动PN,一直保持tun是linkup的。否则网络会先linkdown然后再linkup persist-tun #生成防御DDos破坏的文件。客户端配置为 tls-auth ta.key 1 #指定日志文件的记录详细级别,0-9,等级越高日志内容越详细 verb 3 #使用用户名密码登录openvpn服务器 auth-user-pass EOF
[root@k3s-main tom]# openvpn --config client.conf
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/a27fbf545cc94c1e820f2f1676b1e450.png#pic_center)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/5c28d3a7c88441a499951d1ac4540be3.png#pic_center)
若对文中有任何的疑问,或者需要帮助可以通过以下方式进行反馈
直接进行评论或者单独私聊
发送邮件到:mr_xuansu@163.com
更多内容请关注微信公众号:萱蘇的运维日常
接下来我将给各位同学划分一张学习计划表!
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。