openvpn简介
简单原理
VPN: Virual Private Network ,虚拟私有网络,或称为虚拟专用网络,常用于在公用网络上建立专用网络,进行加密通讯,VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。
OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,作用是使远程不同网段主机处于一个虚拟且相同的网段中
OpenVPN的技术核心是虚拟网卡,其次是SSL协议实现
虚拟网卡是使用网络底层编程技术实现的一个驱动软件。安装此类程序后主机上会增加一个非真实的网卡,并可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如网络浏览器)向虚拟网卡发送数据,则服务程序可以读取到该数据。如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统中都有相应的实现,这也是OpenVPN能够跨平台使用的一个重要原因。
在OpenVPN中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN模式)或数据帧(TAP模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,会通过SOCKET从外网上发送出去。这完成了一个单向传输的过程,反之亦然。当远程服务程序通过SOCKET从外网上接收到数据,并进行相应的处理后,又会发送回给虚拟网卡,则该应用软件就可以接收到。
OpenVPN是一个基于OpenSSL库的应用层VPN实现。OpenVPN允许参与建立VPN的单点使用共享密钥,电子证书,或者用户名/密码进行身份验证。
脚本实现一键安装,增加,注销
前提是搭配好yum源的epel,也可自行安装不同版本,但需要科学上网,我没有,所以还是算了
#!/bin/bash
install_openvpn () {
. /etc/os-release
if [ $ID = "rocky" -o $ID = "centos" ];then
echo OS version is rocky or centos
yum -y install openvpn
yum -y install easy-rsa
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn
cp -r /usr/share/easy-rsa/ /etc/openvpn/server
cp /usr/share/doc/easy-rsa/vars.example /etc/openvpn/server/easy-rsa/3
cd /etc/openvpn/server/easy-rsa/3
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign server server <<EOF
yes
EOF
./easyrsa gen-dh
cp -a /usr/share/easy-rsa/ /etc/openvpn/client
cd /etc/openvpn/client/easy-rsa/3
cp /usr/share/doc/easy-rsa/vars.example /etc/openvpn/client/easy-rsa/3/vars
./easyrsa init-pki
elif [ $ID = "ubuntu" ];then
echo OS version is Ubuntu
apt update
apt -y install openvpn
apt -y install easy-rsa
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn
cp -r /usr/share/easy-rsa/ /etc/openvpn/server
cp /usr/share/doc/easy-rsa/vars.example /etc/openvpn/server/easy-rsa/3
cd /etc/openvpn/server/easy-rsa/3
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign server server <<EOF
yes
EOF
./easyrsa gen-dh
cp -a /usr/share/easy-rsa/ /etc/openvpn/client
cd /etc/openvpn/client/easy-rsa/3
cp /usr/share/doc/easy-rsa/vars.example /etc/openvpn/client/easy-rsa/3/vars
./easyrsa init-pki
else
echo "不支持OS"
exit
fi
}
useradd () {
read -p "请输入创建用户姓名的拼音(例如:libai):" NAME
cd /etc/openvpn/client/easy-rsa/3
./easyrsa gen-req ${NAME} nopass <<EOF
EOF
./easyrsa import-req /data/openvpn/easy-rsa/pki/reqs/${NAME}.req ${NAME}
./easyrsa sign client ${NAME} <<EOF
yes
EOF
}
userdel () {
read -p "请输入删除用户姓名的拼音(例如:libai):" NAME
/etc/openvpn/client/easy-rsa/3
./easyrsa revoke ${NAME} <<EOF
yes
EOF
./easyrsa gen-crl
systemctl restart openvpn@server.service
}
echo -en "\E[$[RANDOM%7+31];1m"
cat <<EOF
请选择:
1)安装openvpn
2)创建用户
3)删除用户
4)选择结束
EOF
echo -en '\E[0m'
read -p "请输入上面数字1-5: " MENU
case $MENU in
1)
echo "正在安装openvpn"
install_openvpn
;;
2)
echo "正在创建用户"
useradd
;;
3)
echo "正在删除用户"
userdel
;;
4)
echo "选择结束"
break
;;
*)
echo "INPUT FALSE!"
esac
第六周作业
mysql简单用法
mysql的事务操作及日志文件
mysql备份
mysql的DQL简单介绍
mysql简单架构和用户管理
mysql集群简介
mysql的高可用