OpenVPN的Docker安装

部署服务端容器

创建目录/root/,在里面添加docker-compose.yml文件:

version: "3"
services:
  open:
    container_name: open
    image: kylemanna/open:2.4
    restart: always
    cap_add:
        - NET_ADMIN
    ports:
        - "1194:1194/udp"
    volumes:
        - ./data/conf:/etc/open

在启动容器前,初始化配置文件和证书:

docker-compose run --rm open o_genconfig -u udp://SERVER_DOMAIN_NAME
docker-compose run --rm open o_initpki

注:SERVER_DOMAIN_NAME需要替换成实际的域名或者IP。

(可选步骤) 如果有需要的话,修复配置目录的权限:

sudo chown -R $(whoami): ./data/conf

启动容器:

docker-compose up -d open

修改服务端配置

这里仅是我司的修改方式,VPN不用连接外网,仅用于VPN内客户端的互相访问。

修改配置文件./data/conf/open.conf

  • 可以修改server字段,更新服务器提供的私有地址范围。
  • 注释掉多余的route字段。
  • 修改comp-lzoyes,允许压缩,同样修改push的信息。
  • 去掉push的关于DNS的信息,因为本地不需要用VPN做外网连接。
  • 添加client-to-client,允许端到端发送数据。

./data/conf/ccd目录中,对于不同的CLIENT,增加同名文件CLIENT,内容如下:

ifconfig-push 10.0.0.3 255.255.0.0

用来给不同的CLIENT,分配静态IP。

生成客户端证书

添加新的客户端证书脚本generate.sh

#!/bin/bash

docker-compose run --rm open easyrsa build-client-full $1 nopass
docker-compose run --rm open o_getclient $1 > user/$1.o

注销客户端脚本revoke.sh

#!/bin/bash

docker-compose run --rm open o_revokeclient $1
rm -f user/$1.o

执行时,可以如下指令:

mkdir user
chmod +x generate.sh revoke.sh
./generate.sh CLIENT104
./revoke.sh CLIENT104

你可能感兴趣的:(openvpndocker)