Centos安装Open***自动化安装脚本

Centos 安装Open***脚本实现内网跳转

请注意:脚本环境需求
系统:centos 6 -7
环境:两块网卡 ,一块内网,一块外网
操作脚本时需注意

系统 环境 环境
Centos7 内网外网 双网卡 系统可以访问外网
  • 该脚本会自动打开你的防火墙/iptables,所以要结合自身环境。如果你的线上环境防火墙是关着的,可能会直接影响到你的服务端口被防火墙拦截,建议先在自己的虚拟机上运行后没问题,再尝试放在线上。
    目前仅在CentOS7.4上试验,CentOS6还未试验过
    脚本内容如下:
#!/bin/bash
#此脚本为安装open脚本
#需要保证有网络
yum -y install epel-release 
yum -y install openssl openssl-devel easy-rsa open
#判断是否安装成功
if [ $? -eq 0 ];then
	echo "安装成功!"
else
	echo "未能安装成功!请检查网络环境或yum源配置情况"
fi
#创建open家目录
if [ ! -d "/usr/local/open/" ];then
	mkdir -p /usr/local/open/{client,server}
	echo "open目录已创建"
fi
#设置各种变量
VPN_HOME=`find /usr/share/ -name open-* | awk "NR==1"`
OPENVPN_HOME=/usr/local/open
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.o $OPENVPN_HOME/client/client.o
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
#生成open隐私密钥
open --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 open-status.log\nlog open.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.o
#开启linux内核转发
echo "net.ipv4.ip_forward = 1">>/etc/sysctl.conf
sysctl -p
#更改启动文件目录(如果更换了自定义的目录不是/usr/local/open,那么同时也需要更改这里的open_server的配置文件路径,不然就会无法启动服务显示'Options error: In [CMD-LINE]:1: Error opening configuration file: server.conf')
sed -i "s#/etc/open/ --config#/usr/local/open/server/ --config#g" /usr/lib/systemd/system/[email protected]
systemctl daemon-reload
#配置防火墙
LINUX_VERSION=`cat /etc/redhat-release |sed -r 's/.* ([0-9+])\..*/\1/'`
if [ $LINUX_VERSION -eq 6 ];then
	iptables -t nat -A POSTROUTING -s $AND/24 -j MASQUERADE
	iptables -t nat -A POSTROUTING -s $OTWA/24 -j MASQUERADE
	service iptables save
	service open@server start 
else 
	systemctl start firewalld
	firewall-cmd --add-service=open --permanent
	firewall-cmd --add-port=1194/udp --permanent
	firewall-cmd --add-port=22/tcp --permanent
	firewall-cmd --add-source=10.11.0.0 --permanent
	firewall-cmd --query-source=10.11.0.0 --permanent
	firewall-cmd --add-masquerade --permanent
	firewall-cmd --query-masquerade --permanent
	firewall-cmd --reload
	systemctl start open@server
fi

创建证书时
Centos安装Open***自动化安装脚本_第1张图片
Centos安装Open***自动化安装脚本_第2张图片
Centos安装Open***自动化安装脚本_第3张图片
Centos安装Open***自动化安装脚本_第4张图片

Centos安装Open***自动化安装脚本_第5张图片
Centos安装Open***自动化安装脚本_第6张图片
Centos安装Open***自动化安装脚本_第7张图片
2.脚本运行完成后,将安装open客户端软件
windows10版本
windows7版本
下载之后安装open
Centos安装Open***自动化安装脚本_第8张图片
Centos安装Open***自动化安装脚本_第9张图片
Centos安装Open***自动化安装脚本_第10张图片
Centos安装Open***自动化安装脚本_第11张图片

Centos安装Open***自动化安装脚本_第12张图片
我这里选择的是默认安装,接下来将服务端配置的open下载到本地来

[root@localhost ~]# cd /usr/local/open/client/
[root@localhost client]# ls
ca.crt  client.crt  client.key  client.o  ta.key

这里我使用的是xshell自带的xftp

下载到本地后,将配置文件转移到自己的open的config目录中

如果不知道目录位置的,可以右键桌面图标后,选择“打开文件目录位置”再回退上一级即可

Centos安装Open***自动化安装脚本_第13张图片
然后点击图标激活即可
Centos安装Open***自动化安装脚本_第14张图片
出现以上绿色样式则连接成功
如果在配置完成后,出现连不上网的问题,请检查防火墙/iptables配置是否正确

以上就是脚本操作的教程了,如果有问题,请联系我,感谢支持!

你可能感兴趣的:(centos,自动化,bash)