利用iodine为Ocserv提供本地DNS服务

起因 尝试在同一台Linux上同时安装Ocserv和Dnsmasq,并将Ocserv的DNS配置指向Dnsmasq,然而不管是走内网IP还是外网IP都完全不工作.发邮件询问Ocserv作者本人收到的回复也是建议我检查Dnsmasq的配置.鬼都知道Dnsmasq配置不可能有问题啦! 后来猜测是虚拟网卡的原因,于是尝试自己建立内网DNS隧道来搞定它. 安装及配置 # 安装 apt-get install iodine # 启动 nohup iodined -f 10.10.10.10 gov.com & 启动后通过ifconfig能查看到已经生成了名为dnsx的虚拟网卡,地址为10.10.10.10. dns0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1130 inet 10.10.10.10 netmask 255.255.255.224 destination 10.10.10.10 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 配置Dnsmasq 配置好DNS隧道以后就可以将Dnsmasq的监听地址修改为相应的地址 # vi /etc/dnsmasq. »

Debian下搭建Ocserv(openconnect server),并启用证书验证

安装编译依赖: apt-get install build-essential autogen pkg-config apt-get install libtalloc-dev libreadline-dev libpam0g-dev libhttp-parser-dev libpcl1-dev apt-get install libgnutls28-dev libev-dev apt-get install libprotobuf-c-dev libhttp-parser-dev gnutls-bin # 0.11.8版本后如果系统也为Debian8可能需要 apt-get install -t jessie-backports libgeoip-dev # 如果为Debian9则直接 apt-get install libgeoip-dev # ocserv 0.12.0开始需要添加一个新的依赖(该依赖在0.12.0以前为可选),不然预编译的时候会出警告告诉你worker进程无法独立运行.而如果忽略该警告的话安装后无法使用Anyconnect连接 apt-get install libseccomp-dev ocserv编译安装(目前最新版): wget https://gitlab.com/openconnect/ocserv/-/archive/1.1.2/ocserv-1.1.2.tar.gz tar Jxvf ocserv-1.1.2.tar.xz cd ocserv-1.1.2 ./configure --prefix=/usr --sysconfdir=/etc make && make install 在预编译前如果需要ocserv支持更多的路由表需要编辑src/vpn.h(新版本以后已经不需要了): #define DEFAULT_CONFIG_ENTRIES 200 // 默认96,iOS Anyconnect客户端最多支持到200条路由表 配置证书: CA模板,创建ca.tmpl,按需填写,这里的cn和organization可以随便填。 cn = "Your CA name" organization = "Your fancy name" serial = 1 expiration_days = 3650 ca signing_key cert_signing_key crl_signing_key CA密钥 »