其他 · 2021年8月13日 0

Openvpn搭建过程中相关的命令

简介

openvpn在centos、windows下的安装过程。有关openvpn.ovpn等配置文件不做说明。

Openvpn Centos

#网桥  openvpn tap模式需要使用
yum install bridge-utils
brctl addbr br0
ifconfig br0 192.168.100.1 netmask  255.255.255.0
brctl addif br0 eth0

#iptables 转发
sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
sudo iptables -nL -t nat

#以上在tun模式下不用
#openvpn docker
docker pull kylemanna/openvpn

#生成配置文件
#-d 取消默认配置     -c 打开c2c模式     -u 指定当前IP
#-s 划分服务器子网     -C 指定算法
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -d -c -C 'AES-256-CBC' -u tcp://11.11.22.55 -s 192.168.100.0/24

#生成密钥文件,输入密钥和CA名称
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki

#启动容器,附加特权
docker run \
    -v /data/openvpn:/etc/openvpn \
    -d -p 9494:1194/tcp \
    --restart=on-failure:10 \
    --cap-add=NET_ADMIN \
    --name=openvpn \
    --privileged=true kylemanna/openvpn

#开启ip转发
#docker重新创建、启动后需要执行,并restart    
#docker重新创建、启动后需要执行,并restart
docker exec -it openvpn iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE && iptables -nL -t nat

#登陆docker
docker run -v /data/openvpn:/etc/openvpn -it --rm kylemanna/openvpn bash -l

#生成客户端证书,输入密钥
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full fpj nopass
#需要配置密码则删掉nopass
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full fpj
#将用户证书导出到本地文件
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient fpj > /data/openvpn/client/fpj.ovpn

#注意掩码为/30,配置固定IP需要保证其可用
echo "ifconfig-push 192.168.100.5 192.168.100.6" > /var/lib/docker/volumes/"/data/openvpn"/_data/ccd/client1

#删除用户证书
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa revoke fpj
#更新证书数据库
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa gen-crl update-db
#重启openvpn容器
docker restart openvpn
# 固定IP的正确方法
client-config-dir /etc/openvpn/ccd
vim /etc/openvpn/ccd/user1
ifconfig-push 10.8.0.2 10.8.0.3

Openvpn Windows

服务端的安装包在官网下载即可。
因为要创建CA证书和用户证书两种,所以一般会将easy-rsa复制一份出来。

这里仅列举了客户端证书生成。

# 进入easy-rsa(客户端的)打开EasyRSA-Start.bat
# 建立一个空的pki结构,生成一系列的文件和目录
./easyrsa init-pki 

# 创建一个client1的用户
./easyrsa gen-req client1 nopass

# 回到制作server证书时的那个easyrsa3目录,导入client端证书,准备用server的ca签名
./easyrsa import-req /**/** client1
./easyrsa sign client client1

Openvpn Centos 客户端

安装方式不限。


# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install -y openvpn

# 启动vpn
sh /etc/openvpn/openvpn_client.sh start   
# 停止vpn
sh openvpn_client stop     
# 重启vpn
sh openvpn_client restart 

ps -ef | grep -v grep | grep openvpn

openvpn_client文件,仅仅是一个启动脚本,内容:

#!/bin/bash

# 客户端配置文件
CONF_FILE="/etc/openvpn/conf/nwct.open"
# pid文件
PID_FILE="/tmp/openvpn_client.pid"

function start() {

openvpn --daemon --config /etc/openvpn/conf/nwct.ovpn > /etc/openvpn/log/openvpn_client.log > /dev/null
ps -ef | grep -v grep | grep openvpn > /dev/null
[ $? -eq 0 ] && echo -e "Start OpenVPN \033[32msuccessfully\033[0m!" || echo -e "Start OpenVPN \033[31mFailing\033[0m!"
echo `ps -ef | grep -v grep | grep openvpn | awk '{print $2}'` > $PID_FILE
}

function stop() {
ps -ef | grep -v grep | grep openvpn | awk '{print $2}' | xargs -I {} kill -9 {} > /dev/null
ps -ef | grep -v grep | grep openvpn > /dev/null
[ $? -eq 0 ] && echo -e "Stop OpenVPN is \033[31mFailing\033[0m!" || echo -e "Stop OpenVPN is \033[32mOK\033[0m!"
rm -f $PID_FILE
}

function status() {
ps -ef | grep -v grep | grep openvpn > /dev/null
[ $? -eq 0 ] && echo -e "OpenVPN is \033[32mRunning ...\033[0m" || echo -e "OpenVPN is \033[31mStopped\033[0m!"
}

#### main
case $1 in
  start)
          start
          ;;
  stop)
          stop
          ;;
  restart)
      stop
      start
      ;;
  status)
     status
      ;;
  *)
          echo "Error! Usage sh $0 (start|stop|restart|status)"
          ;;
esac

Openvpn Access Server

# 这两个需要翻墙,所以建议手动下载后再上传到目标机器
# https://openvpn.net/downloads/openvpn-as-bundled-clients-latest.rpm
# https://openvpn.net/downloads/openvpn-as-latest-CentOS7.x86_64.rpm

yum -y install openvpn-as-bundled-clients-17.rpm
yum -y install openvpn-as-2.9.2_04614689-CentOS7.x86_64.rpm

# 第一次使用需要设置管理账号密码
passwd openvpn

# 管理端
# https://192.168.70.222/admin/

systemctl restart openvpnas





>>转载请注明原文链接地址:Openvpn搭建过程中相关的命令