Skip to content

krizex/ocserv-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

用途

因为安装一个 Open Connect 的步骤实在太麻烦了, 特别对于新手, 所以特意参考了 jpetazzo 的 dockvpn 弄了一个 ocserv 的. 此项目的原因和一点点介绍可见 使用 ocserv-docker 享受自由网络

有啥问题可以直接 @wyatt_pan

简单部署

安装好 Docker 1.0+ 并且正常启动 Docker 后:

  • cd ~;git clone https://github.com/wppurking/ocserv-docker.git : 将当前 repo 下载, 拥有可调整的 ocserv.conf 配置文件以及 ocpasswd 用户密码文件
  • docker run -d --privileged -v ~/ocserv-docker/ocserv:/etc/ocserv -p 443:443/tcp wppurking/ocserv : Box 自动下载. ocserv 的一些功能需要 Docker 在 privileged 权限下处理
  • docker ps -aq | xargs docker logs : 查看运行日志, 检查是否正常运行(可重复执行).
listening (TCP) on 0.0.0.0:443...
listening (TCP) on [::]:443...
listening (UDP) on 0.0.0.0:443...
listening (UDP) on [::]:443...

使用

  • 初始化好的两个账户: wyatt:616 holly:525
  • 如果主服务器上开启了 iptables, 一定要记得将 443 端口的 tcp 与 udp 都开放
  • 已经做了其能够处理的下发路由数量 (ocserv.conf 中, 感谢: kevinzhow 的 route.ship_cook.rb )
  • 接下来 就是 AnyConnect 的客户端了. Win, Mac, Linux Link1 (Cisco 官方需要注册...), iOS, Android
  • 因为我们自己生成的 CA 证书是没有权威组织认证的, 所以 AnyConnect 需要接受这些 "不信任的 VPN" :P

自定义证书, 密钥

因为是构建一个独立的 box 进行分发, 方便快速部署一个 ocserv, 所以将证书, 密钥, 用户都集成在里面了, 此刻方便使用. 如果对于有担心的, 可以 docker run -t -i wppurking/ocserv bash 进入到 box 中使用 certtool 重新进行处理, 具体操作步骤参考 [原创]linode vps debian7.5安装配置ocserv(OpenConnect server)

证书是在 Docker Build 的过程中自动生成的, 其生成的目的地为 /opt/certs 成功更换 certs 的例子

用户名

为了使新手能够最快的使用上 AnyConnect (也方便我自己同一设备能方便的链接多个不同地域的 VPS) 我预先设置了两个初始化的账号密码, 但同时将用于提供账号密码的 ocserv/ocpasswd 文件放在 Box 外面, 运行 Container 时使用 Volume 挂在进去, 这样方便熟悉 Docker 的用户能够方便的 使用 ocpasswd 命令修改或者重新生成自己的用户密码.

提供一个非常简单的更换密码操作, 复制命令就好了(建立在按照上面的操作基础上哈):

新添加用户

$> docker exec -it $(docker ps -a | grep vpn_run | awk '{print $1}') ocpasswd yourname
$> Enter password:
$> Re-enter password:

这个的原理是借用 docker 运行中的 container , 在其里面运行 ocpasswd 改变 Volumn 进去的 ./ocserv/ocpasswd 文件内容, 所以当你运行完这行命令, 本机(非 container 中)的 ./ocserv/ocpasswd 的文件内容会真实发生变化

清理掉预设的两个用户名

直接打开 ./ocserv/ocpasswd 删掉 wyatt/holly 开头的两行就好了.

信息

  • Box Size: 384.6 MB (拿空间换时间, 国外网络快)
  • 基础 Box: ubuntu:latest (192.7 MB)
  • 测试过的环境:
    • [Linode 1G Ubuntu 14.04 LTS]
    • [Vultr 768MB Ubuntu 14.04 LTS]
    • [DigitalOcean 512MB Docker 1.2.0 on Ubuntu 14.04]

Refs

问题

  1. 在某台 Linux Kernal 为 Linux xxxx 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 的服务器上, 无论 Docker run 哪一个 Box 都无法正常运行. Docker 的问题我现在还无能无力啊... 错误信息
  2. 拥有官方的 libhttp-parser-dev 但仍然 local http-parser: no
  3. Radius, GSSAPI, LZ4 没有编译进去

Dep on

  PAM auth backend:     yes
  Radius auth backend:  no  
  GSSAPI auth backend:  no
  Anyconnect compat:    yes
  TCP wrappers:         yes
  systemd:              no
  (socket activation)
  seccomp:              yes
  Compression:          yes
  LZ4 compression:      no
  readline:             yes
  libnl3:               yes
  glibc (sha2crypt):    yes
  local talloc:         yes
  local protobuf-c:     yes
  local PCL library:    no
  local libopts:        no
  local http-parser:    no

About

用于初始化 ocserv 的 Dockfile 脚本

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%