Centos安装Open***自动化安装脚本
Centos 安装Open***脚本实现内网跳转
请注意:脚本环境需求
系统:centos 6 -7
环境:两块网卡 ,一块内网,一块外网
操作脚本时需注意
系统 | 环境 | 环境 |
---|---|---|
Centos7 | 内网外网 双网卡 | 系统可以访问外网 |
- 该脚本会自动打开你的防火墙/iptables,所以要结合自身环境。如果你的线上环境防火墙是关着的,可能会直接影响到你的服务端口被防火墙拦截,建议先在自己的虚拟机上运行后没问题,再尝试放在线上。
目前仅在CentOS7.4上试验,CentOS6还未试验过
脚本内容如下:
#!/bin/bash
#此脚本为安装openvpn脚本
#需要保证有网络
yum -y install epel-release
yum -y install openssl openssl-devel easy-rsa openvpn
#判断是否安装成功
if [ $? -eq 0 ];thenecho "安装成功!"
elseecho "未能安装成功!请检查网络环境或yum源配置情况"
fi
#创建openvpn家目录
if [ ! -d "/usr/local/openvpn/" ];thenmkdir -p /usr/local/openvpn/{client,server}echo "openvpn目录已创建"
fi
#设置各种变量
VPN_HOME=`find /usr/share/ -name openvpn-* | awk "NR==1"`
OPENVPN_HOME=/usr/local/openvpn
EASY_RSA_HOME=`find /usr/share -name easy-rsa-* |awk "NR==1"`
EASY_KEY_HOME=$OPENVPN_HOME/easy-rsa/3.0
BASH_HOME=`which bash`
#测试各种变量的可用性是否准确,如果要测试测需要注释掉大部分代码,进行echo 变量名进行测试
#echo $NOPASS_LOCATION
#复制相关文件到指定配置文件目录
cp -r /usr/share/easy-rsa/ $OPENVPN_HOME/
cp $VPN_HOME/sample/sample-config-files/server.conf $OPEVPN_HOME/server
cp $VPN_HOME/sample/sample-windows/sample.ovpn $OPENVPN_HOME/client/client.ovpn
cp -r $EASY_RSA_HOME/vars.example $OPENVPN_HOME/easy-rsa/3.0/vars
# 写入数据到vars文件中,这一步需要手动输入
echo -e "\033[7m 后面操作略微繁琐,但是还请一步一步按照提示来进行操作!\033[0m"
read -p "接下来请您手动输入您的个人信息,按Enter继续..."
read -p "请输入您的名称:" NAME
read -p "请输入您的邮箱:" EMAIL
read -p "请输入您的公司名称:" COMPANY
echo -e "set_var EASYRSA \"\$PWD\"\nset_var EASYRSA_PKI \"\$EASYRSA/pki\"\nset_var EASYRSA_DB \"cn_only\"\nset_var EASYRSA_REQ_CUNTRY \"CN\"\nset_var EASYRSA_REQ_PROVINCE \"Beijing\"\nset_var EASYRSA__REQ_CITY \"Beijing\"\nset_var EASYRSA_REQ_ORG \"$COMPANY\"\nset_var EASYRSA_REQ_EMAIL \"$EMAIL\"\nset_var EASYRSA_REQ_OU \"$NAME\"\nset_var EASYRSA_KEY_SIZE 2048\nset_var EASYRSA_ALGO rsa\nset_var EASYRSA 7500\nset_var EASYRSA 3650\nset_var EASYRSA_NS_SUPPORT \"no\"\nset_var EASYRSA_NS_COMMENT \"HAKAS-LABS CERTIFICATE AUTHORITY\"\nset_var EASYRSA_EXT_DIR \"\$EASYRSA/x509-types\"\nset_var EASYRSA_SSL_CONF \"\$EASYRSA/openssl-1.0.cnf\"\nset_var EASYRSA_DIGEST \"sha256\" " >>$OPENVPN_HOME/easy-rsa/3.0/vars && chmod +x $OPENVPN_HOME/easy-rsa/3.0/vars
#创建服务器密钥
echo -e "\033[7m 接下来开始配置服务器密钥设置 \033[0m"
cd $EASY_KEY_HOME
#$BASH_HOME $EASY_KEY_HOME/test.sh
echo "生成证书存放目录..."
./easyrsa init-pki
echo "生成证书中..."
./easyrsa build-ca
echo "生成服务端密钥中..."
./easyrsa gen-req server nopass
echo "正在给证书签名中..."
./easyrsa sign server server
echo "创建Diffie-Hellman..."
./easyrsa gen-dh
#创建客户端证书密钥
echo "生成客户端密钥中..."
./easyrsa gen-req client nopass
echo "客户端签署证书..."
./easyrsa import-req client
echo "正在给证书签名中..."
./easyrsa sign client client
#生成openvpn隐私密钥
openvpn --genkey --secret ta.key
#复制相关证书到指定目录
cp $EASY_KEY_HOME/pki/ca.crt $OPENVPN_HOME/server
cp $EASY_KEY_HOME/ta.key $OPENVPN_HOME/server
cp $EASY_KEY_HOME/pki/issued/server.crt $OPENVPN_HOME/server
cp $EASY_KEY_HOME/pki/dh.pem $OPENVPN_HOME/server
cp $EASY_KEY_HOME/pki/private/server.key $OPENVPN_HOME/server
#客户端
cp $EASY_KEY_HOME/pki/ca.crt $OPENVPN_HOME/client
cp $EASY_KEY_HOME/ta.key $OPENVPN_HOME/client
cp $EASY_KEY_HOME/pki/issued/client.crt $OPENVPN_HOME/client
cp $EASY_KEY_HOME/pki/private/client.key $OPENVPN_HOME/client
#分别更改客户端配置文件以及服务端配置文件
#变量
CA_HOME=$OPENVPN_HOME/server/ca.crt
SER_KEY=$OPENVPN_HOME/server/server.key
SER_CRT=$OPENVPN_HOME/server/server.crt
DH_HOME=$OPENVPN_HOME/server/dh.pem
TA_HOME=$OPENVPN_HOME/server/ta.key
echo "开始配置服务端配置文件..."
read -p "请输入你的服务地址:" OTWA
read -p "请输入你的内网网段:" AND
echo -e "local $OTWA\nport 1194\nproto udp\ndev tun\nca $CA_HOME\ncert $SER_CRT\nkey $SER_KEY\ndh $DH_HOME\nserver $AND 255.255.255.0\nifconfig-pool-persist ipp.txt\npush \"redirect-gateway def1 bypass-dhcp\"\nclient-to-client\nduplicate-cn\nkeepalive 10 120\ntls-auth $TA_HOME 0\ncipher AES-256-CBC\ncomp-lzo\nmax-clients 100\nuser nobody\ngroup nobody\npersist-key\npersist-tun\nstatus openvpn-status.log\nlog openvpn.log\nverb 3\nmute 20\nmute 20\nexplicit-exit-notify 1">$OPENVPN_HOME/server/server.conf
#配置服务端
echo -e "client\ndev tun\nproto udp\nresolv-retry infinite\nnobind\nremote $OTWA 1194\ncomp-lzo\nca ca.crt\ncert client.crt\nkey client.key\ncipher AES-256-CBC\ntls-auth ta.key 1\nkeepalive 10 120\npersist-key\npersist-tun\nverb 3\nstatus client-status.log\nlog-append client.log" >$OPENVPN_HOME/client/client.ovpn
#开启linux内核转发
echo "net.ipv4.ip_forward = 1">>/etc/sysctl.conf
sysctl -p
#更改启动文件目录(如果更换了自定义的目录不是/usr/local/openvpn,那么同时也需要更改这里的openvpn_server的配置文件路径,不然就会无法启动服务显示'Options error: In [CMD-LINE]:1: Error opening configuration file: server.conf')
sed -i "s#/etc/openvpn/ --config#/usr/local/openvpn/server/ --config#g" /usr/lib/systemd/system/openvpn@.service
systemctl daemon-reload
#配置防火墙
LINUX_VERSION=`cat /etc/redhat-release |sed -r 's/.* ([0-9+])\..*/\1/'`
if [ $LINUX_VERSION -eq 6 ];theniptables -t nat -A POSTROUTING -s $AND/24 -j MASQUERADEiptables -t nat -A POSTROUTING -s $OTWA/24 -j MASQUERADEservice iptables saveservice openvpn@server start
else systemctl start firewalldfirewall-cmd --add-service=openvpn --permanentfirewall-cmd --add-port=1194/udp --permanentfirewall-cmd --add-port=22/tcp --permanentfirewall-cmd --add-source=10.11.0.0 --permanentfirewall-cmd --query-source=10.11.0.0 --permanentfirewall-cmd --add-masquerade --permanentfirewall-cmd --query-masquerade --permanentfirewall-cmd --reloadsystemctl start openvpn@server
fi
创建证书时
2.脚本运行完成后,将安装openvpn客户端软件
windows10版本
windows7版本
下载之后安装openvpn
我这里选择的是默认安装,接下来将服务端配置的openvpn下载到本地来
[root@localhost ~]# cd /usr/local/openvpn/client/
[root@localhost client]# ls
ca.crt client.crt client.key client.ovpn ta.key
这里我使用的是xshell自带的xftp
下载到本地后,将配置文件转移到自己的openvpn的config目录中
如果不知道目录位置的,可以右键桌面图标后,选择“打开文件目录位置”再回退上一级即可
然后点击图标激活即可
出现以上绿色样式则连接成功
如果在配置完成后,出现连不上网的问题,请检查防火墙/iptables配置是否正确
以上就是脚本操作的教程了,如果有问题,请联系我,感谢支持!
Centos安装Open***自动化安装脚本相关推荐
- Mysql安装及自动化部署脚本方案
一.简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文件中,但是 ...
- mysql 自动化 安装_mysql自动化安装
MySQL安装一般使用RPM或者源码安装的方式. RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整. 源码安装的优点是可以自定义 ...
- mysql 自动化 安装_MySQL自动化安装脚本
注:因官方MySQL下载较慢,请先自行上传mysql安装包至/usr/local/src目录 #!/bin/bash #This shell script can be used to install ...
- 本地自动化安装CentOS系统
1 概述 以下的截图主要是用来说明自动化运维发展的阶段 第一阶段:全人肉阶段,此时是处于无流程规范的约束,所有的运维工作都是靠人去一步步执行,这将大大降低工作的效率,也容易带来误操作 第二阶段:工具化 ...
- 9.11 作业自动化安装linux
1. 使用 kickstart 半自动化安装CentOS系统 1.1 配置yum.repo [root@centos8 ~]# echo - - - > /sys/class/scsi_host ...
- LAMPLNMP自动化安装脚本
LAMP&LNMP自动化安装脚本 =================================== 一.脚本的环境介绍 二.脚本的介绍 三.脚本的功能介绍 =============== ...
- Hadoop(MapR)分布式安装及自动化脚本配置
MapR的分布式集群安装过程还是很艰难的,远远没有计划中的简单.本人总结安装配置,由于集群有很多机器,手动每台配置是很累的,编写了一个自动化配置脚本,下面以脚本为主线叙述(脚本并不完善,后续继续完善中 ...
- 使用 kickstart 半自动化安装CentOS系统 利用PXE实现自动化安装centos系统
使用 kickstart 半自动化安装CentOS7系统 1.创建kickstart文件 创建kickstart文件的方式 可使用创建工具:system-config-kickstart ,注意:此方 ...
- kickstart自动化系统安装_利用Kickstart自动化安装CentOS的教程
前言 因为需要在浪潮的x86服务器中集中部署CentOS搭建基于Hadoop的大数据平台,平时接触SLES(SuSE Linux Enterprise Server)较多并且已经实现基于Autoyas ...
最新文章
- 国内高校简称撞车史:南大、西大、东大都在争,唯独北大没人抢
- 【赠书】深度强化学习落地指南,来自一线工程师的经验!
- RocketMQ源码解析:Producer发送消息+Broker消息存储
- C#调用DLL文件时参数对应表
- activemq 持久订阅_ActiveMQ群集,持久订阅者和虚拟主题可助您一臂之力
- java 导出bcp文件格式_使用BCP导出导入数据
- 【白皮书分享】直播社会价值白皮书-字节跳动.pdf(附下载链接)
- Audio Session Programming Guide
- SpringBoot学习---thymeleaf模板引擎
- CPC软件使用 专利申请说明书附图插入(简单粗暴)CPC软件安装
- 计算机术语中 1gb等于 mb.,GB、MB、KB分别是什么意思,大小分别是多少?
- 案例:Java多态实现饮料购买咖啡、可乐、矿泉水2.0
- 【QT】将指定ip添加到凭据管理器
- [AV1] 谈谈AV1中的 S-Frame
- 环信网页端客服集成用户体系
- 中蜂药花蜜记载于《神农本草经》
- ubuntu系统下运行可执行文件 (application/x-executable)
- Thread类的interrupt(),interrupted(),isInterrupted()
- C++小作业——简单通讯录设计
- 优化Windows 7 让系统运行更加快速稳定安全