图书目录

目    录

 

第1部分  OpenVPN的基础

 

第1章  认识OpenVPN 2

1.1  OpenVPN的选项 2

1.1.1  通道选项 3

1.1.2  服务器模式选项 29

1.1.3  客户端模式选项 42

1.1.4  数据通道加密选项 44

1.1.5  TLS 模式选项 47

1.1.6  TUN/TAP 持久通道配置

      模式 69

1.1.7  PKCS#11 独立选项 70

1.2  脚本和环境变量 70

1.2.1  脚本的执行顺序 70

1.2.2  字符串类型和重新映射 71

1.2.3  环境变量 71

1.3  可用信号 76

1.4  TUN/TAP驱动设置 80

1.5  举例 80

1.5.1  TUN/TAP设置 80

1.5.2  Firewall设置 81

1.5.3  VPN地址设置 81

1.5.4  例1:没有安全保护的简单

      VPN通道 81

1.5.5  例2:使用静态安全密钥的

      VPN通道 85

1.5.6  例3:基于TLS的

     安全通道 90

1.5.7  路由设置 98

1.6  防火墙设置 99

第2章  安装OpenVPN服务器 101

2.1  相关软件的安装 101

2.1.1  安装TUN/TAP驱动 101

2.1.2  安装OpenSSL库 102

2.1.3  安装lzo 103

2.2  安装OpenVPN服务器 105

2.2.1  下载OpenVPN服务器 106

2.2.2  解压缩并安装OpenVPN

      服务器 106

2.2.3  安装OpenVPN后的

      目录结构 110

2.2.4  创建证书 110

2.3  启动OpenVPN服务器 115

2.3.1  命令行方式启动 115

2.3.2  后台服务方式启动 115

第3章  分析OpenVPN安装包中的

        部分目录和文件 123

3.1  sample-keys目录 123

3.2  sample-config-files目录 127

3.2.1  OpenVPN运行在C/S多客户端

      下的示例配置文件 127

3.2.2  OpenVPN运行在SSL/TLS

      模式下的示例配置文件 136

3.2.3  OpenVPN运行在预共享的

      静态密钥方式下的示例

      配置文件 145

3.2.4  OpenVPN用于测试的TLS

      示例配置文件 151

 

3.2.5  相关的脚本文件 156

3.3  sample-scripts目录 161

3.3.1  auth-pam.pl文件 162

3.3.2  ucn.pl文件 165

3.3.3  verify-cn文件 165

3.3.4  bridge-start、bridge-stop和

      openvpn.init文件 167

3.4  easy-rsa目录 167

3.5  plugin目录 168

3.5.1  auth-pam插件 169

3.5.2  down-root 插件 169

3.5.3  defer插件 169

第4章  OpenVPN客户端的安装 171

4.1  Windows系统下安装OpenVPN

     客户端 171

4.1.1  安装OpenVPN客户端 172

4.1.2  运行OpenVPN客户端 173

4.2  Linux系统下安装OpenVPN

    客户端 176

4.2.1  安装OpenVPN客户端 176

4.2.2  运行OpenVPN客户端 176

4.3  Mac系统下安装OpenVPN

    客户端 182

4.3.1  安装OpenVPN客户端 182

4.3.2  运行OpenVPN客户端 183

4.4  对其他客户端的支持 183

4.4.1  IOS系统下安装OpenVPN

      客户端 184

4.4.2  Android系统下安装OpenVPN

      客户端 184

4.4.3  Windows Mobile系统下安装

      OpenVPN客户端 185

 

第2部分  OpenVPN的应用

 

第5章  OpenVPN的两种用户登录

        验证方式 189

5.1  证书验证方式 189

5.1.1  证书的使用 189

5.1.2  吊销证书 189

5.2  用户名/密码验证方式 192

5.3  脚本验证方式 192

5.3.1  下载并编辑脚本 192

5.3.2  编辑一个密码文件 194

5.3.3  访问测试 194

5.4  使用MySQL验证OpenVPN用户

    登录访问 195

5.4.1  下载pam_mysql模块 195

5.4.2  解压缩pam_mysql模块 196

5.4.3  认识configure选项 196

5.4.4  安装pam_mysql模块 197

5.4.5  创建mysql表 199

5.4.6  配置pam_mysql模块 201

5.4.7  访问测试 207

5.5  使用OpenLDAP验证OpenVPN

     用户登录访问 214

5.5.1  下载openvpn-auth-ldap

      插件 215

5.5.2  安装必要的依赖软件 215

5.5.3  安装OpenlDAP 220

5.5.4  安装auth-ldap 221

5.5.5  认识auth-ldap 221

5.5.6  实例运行 223

第6章  OpenVPN的两种典型应用 231

6.1  多个远程单用户访问内网 231

6.2  连接两个局域网 232

6.2.1  安装OpenVPN服务器端和

      客户端 236

6.2.2  内网机器的设置 238

第7章  OpenVPN的两种运行模式 241

7.1  网桥 241

7.1.1  什么是网桥 241

7.1.2  网桥的实现方式 242

7.2  Linux下实现网桥 242

7.2.1  安装bridge-utils 244

7.2.2  安装后的目录结构 245

7.3  brctl命令 245

7.3.1  设置网桥的实例 246

7.3.2  设置网桥的端口 249

7.3.3  MAC地址管理 251

7.3.4  设置生成树协议 253

7.4  桥接模式OpenVPN 254

7.4.1  网桥管理 255

7.4.2  修改配置文件 258

7.4.3  启动网桥式OpenVPN

      服务器 259

7.4.4  查看服务器端的网络情况 266

7.4.5  客户端连接OpenVPN

      服务器 267

7.4.6  查看客户端的网络情况 270

7.5  路由模式OpenVPN 270

7.5.1  修改配置文件 271

7.5.2  启动路由模式OpenVPN

      服务器 272

7.5.3  查看服务器端的网络情况 279

7.5.4  开启路由转发 280

7.5.5  客户端连接OpenVPN

      服务器 280

7.5.6  查看客户端的网络情况 284

第8章  管理OpenVPN服务器 285

8.1  管理命令 285

8.2  管理消息输出格式 315

8.3  实时消息格式 315

8.4  CLIENT通知格式 316

8.5  命令解析 317

8.6  管理工具的使用 317

8.6.1  命令行工具——telnet 317

8.6.2  OpenVPN MI GUI工具 318

8.6.3  OpenVPN-Admin工具 322

8.7  实现OpenVPN服务器的高可用 323

8.7.1  客户端实现 324

8.7.2  服务器端实现 326

8.7.3  实例 327

8.8  客户端IP地址的使用 329

8.8.1  net30模式 330

8.8.2  subnet模式 333

8.8.3  p2p模式 336

第9章  控制OpenVPN用户的访问 341

9.1  包过滤文件格式 341

9.1.1  限制对象 341

9.1.2  过滤文件语法 341

9.2  配置OpenVPN服务器 342

9.2.1  编译minimal_pf.so模块 343

9.2.2  编写脚本 345

9.2.3  策略文件 346

9.3  启动OPenVPN服务器 346

9.4  实例测试 348

9.4.1  针对用户的限制 348

9.4.2  针对IP的限制 358

9.5  通过iptables防火墙规则限制

OpenVPN用户访问资源 370

9.5.1  OpenVPN的配置文件 370

9.5.2  针对OpenVPN用户的

防火墙策略 371

9.5.3  针对OpenVPN用户组的

防火墙策略 374

 

第3部分  应用案例—使用FreeRADIUS验证OpenVPN用户登录

 

第10章  方案一:MySQL后台 379

10.1  安装FreeRADIUS 379

10.1.1  下载FreeRADIUS 380

10.1.2  出错处理 381

10.1.3  安装FreeRADIUS后的

目录结构 383

10.2  安装RadiusPlugin 384

10.2.1  下载RadiusPlugin 385

10.2.2  解决依赖问题 385

10.2.3  安装RadiusPlugin 385

10.3  相关配置 386

10.3.1  配置FreeRADIUS 386

10.3.2  添加数据库 390

10.3.3  配置RadiusPlugin 396

10.3.4  配置OpenVPN 398

10.4  启动服务 398

10.4.1  启动FreeRADIUS服务器 398

10.4.2  启动OpenVPN服务器 408

10.5  OpenVPN用户登录验证 409

10.5.1  添加OpenVPN

客户端用户 409

10.5.2  测试OpenVPN用户 410

10.5.3  OpenVPN客户端登录 411

10.6  了解OpenVPN的使用情况 414

10.7  使用daloRADIUS Web程序 415

10.7.1  下载安装 416

10.7.2  解决依赖前提 417

10.7.3  导入数据库 420

10.7.4  设置数据库连接 422

10.7.5  使用daloRADIUS 423

10.8  禁止用户登录 428

10.8.1  通过操作MySQL数据库

禁止用户登录 428

10.8.2  通过daloRADIUS Web

应用程序禁止用户登录 429

第11章  方案二:OpenLDAP后台 431

11.1  下载安装FreeRADIUS

-Server-2.1.12 431

11.1.1  编译安装 432

11.1.2  安装后的目录结构 432

11.2  相关配置 433

11.2.1  配置FreeRADIUS-Server 433

11.2.2  配置OpenLDAP 438

11.2.3  配置RadiusPlugin 439

11.3  启动服务 439

11.3.1  启动FreeRADIUS服务器 439

11.3.2  启动OpenVPN服务器 440

11.3.3  启动OpenLDAP服务器 440

1.4  OpenVPN用户登录验证 440

11.4.1  添加OpenVPN客户端

用户 440

11.4.2  登录测试 450

11.4.3  OpenVPN客户端登录 452

11.5  禁止用户登录 457

11.5.1  通过LAM Web应用程序 457

11.5.2  使用ldapdelete 458

 

第4部分  商业OpenVPN服务器

 

第12章  OpenVPN_AS服务器 461

12.1  认识OpenVPN Access Server 462

12.1.1  OpenVPN Access Server系统

的构成 462

12.1.2  OpenVPN Access Server开启

的端口和服务 463

12.1.3  OpenVPN Access Server在

网络中的部署图 463

12.1.4  OpenVPN Access Server的

用户认证和管理 464

12.1.5  Virtual VPN 子网配置 465

12.1.6  Admin Web UI的主菜单 466

12.2  安装OpenVPN_AS服务器 466

12.2.1  下载并安装OpenVPN_AS

服务器 467

12.2.2  安装OpenVPN_AS后的目录

结构 472

12.3  配置OpenVPN_AS服务器 479

12.3.1  服务器状态(Status) 480

12.3.2  AS服务器配置

(Configuration) 482

12.3.3  用户管理

(User Management) 495

12.3.4  设置用户的认证方式

(Authentication) 498

12.3.5  工具(Tools) 502

12.4  防火墙设置 503

12.4.1  运行中的规则 503

12.4.2  将运行的规则保存为文件 506

12.5  使用OpenVPN_AS服务器 508

12.5.1  启动OpenVPN_AS服务器 509

12.5.2  客户端的安装及访问 519

12.5.3  使用LDAP方式验证

OpenVPN用户 523