首先说明:虽然是原创,但有部分内容是借鉴了这位兄弟的文章:

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27673206&id=3772566

按照这篇文档,你可以部署成功,但其中一些细节没有描述清楚。或者有后遗症,导致你的*** client无法ping通内网。好了,下面整理了一下。以备查阅:

首先安装系统,这里说明是OPENBSD 5.1 或5.3. 如果是5.5,有些命令无法执行。特别要注意。

环境说明:

1,open*** server: openbsd 5.1, 双网卡,外网卡ip:218.4.144.1/24,内网卡:192.168.0.1/24。无需配置网关。

2,openinside:freebsd 10 ,单网卡:192.168.0.2/24,gateway:192.168.0.1

3.openoutside:MS XP,单网卡: 218.4.144.2/24,no gateway。

系统安装和基本配置我就不描述了,从部署open***开始。

1.1 安装open***

有两种方法,一种是下载所需的软件到本地进行安装,另外一种是使用pkg_add进行安装。因为我已开始使用openbsd 5.5上安装open***,出现了很多问题,所以不建议搭建在本地编译源代码安装。

使用pkg_add安装的方法是:把open***配置为可以访问internet,执行下面的操作。

# export PKG_PATH=ftp://ftp.jaist.ac.jp/pub/OpenBSD/5.3/packages/i386/   //这个地址可以自己到openbsd网站上查找。 
     # ftp -m -V $PKG_PATH/index.txt //下载index.txt文件到本地
     # grep open*** index.txt         //使用grep进行搜索open***文件。没有yum那么方便。
    -rw-r--r--  1 421  111      336934 Feb 26 09:19:36 2013 open***-2.2.2p1.tgz
    -rw-r--r--  1 421  111       49144 Feb 26 11:00:56 2013 open***-auth-ldap-2.0.3.tgz
    -rw-r--r--  1 421  111        4689 Feb 26 11:57:55 2013 open***_bsdauth-7p0.tgz
    # pkg_add open***-2.2.2p1.tgz    //找到可用的版本进行安装。安装过程类似于yum。会自动安装依赖软件。

1.2 open*** 配置

1.open***默认安装完成后是不会在/etc目录下生成配置文件,需从/usr/local/share/examples/open***/ 复制过来
    #mkdir -p /etc/open***/easy-rsa
    #cp /usr/local/share/examples/open***/easy-rsa/2.0/* /etc/open***/easy-rsa

    //openbsd 5.5安装open***后,是不会在/usr/local/share/examples/open***/下面生成easy-rsa的

2.默认情况下OpenBSD安装Open×××会缺少一个文件whichopensslcnf,用vi编辑一下即可。编辑的位置为:/etc/open***/easy-rsa。其实就是新建一个文件。并把下面的内容添加到whichopensslcnf中。
#vi whichopensslcnf
#-Begin----------------------
#!/bin/sh
if [ "$OPENSSL" ]; then
        if $OPENSSL version | grep 1.0.0 > /dev/null; then
                echo "$1/openssl-1.0.0.cnf"
        else
                echo "$1/openssl.cnf"
        fi
else
        echo "$1/openssl-1.0.0.cnf"
fi
exit 0
#-End---------------------

授于可执行权限
#chmod +x whichopensslcnf

3.编辑 /etc/open***/easy-rsa/vars
# cd  /etc/open***/easy-rsa/
# vi vars              //根据需要修改下面的选项。如果不修改,并不影响后面的配置和使用效果。
export KEY_COUNTRY=CN      (国家)
export KEY_PROVINCE=SD       (省份)
export KEY_CITY=QD            (城市)
export KEY_ORG="Open×××-Server"    (组织或公司)
export KEY_EMAIL="demo@demo.org"   (电子邮箱)

4.令vars 生效。两个点之间有个空格不然会出错(在Linux下,这句话是source ./vars,但是OpenBSD默认使用ksh,没有source,用点可以起到同样作用。)
#. ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/open***/easy-rsa/2.0/keys
5.清理以前产生的旧密钥
#./clean-all                         //openbsd 5.5无法执行该命令。
6.创建根ca证书,完成后会看到keys文件夹,里面有ca.*文件,一路回车即可
#./build-ca                             //openbsd 5.5无法执行该命令。
7.生成用于服务器的密钥,不妨给服务器起名为server,
#./build-key-server server              //openbsd 5.5无法执行该命令。
一路回车,最后两个y/n均回答y          //根据需要,填入自己的内容。默认是client,如果修改,后面的相关内容也要修改。仔细看。
8.在/etc/open***/easy-rsa/keys目录中生成dh1024.pem文件。
#./build-dh
9.防止 DoS *** 和 UDP 端口 flooding,生成一个"HMAC firewall",在/etc/open***/easy-rsa/keys目录中生成。
# cd  /etc/open***/easy-rsa/keys && open*** --genkey --secret ta.key
10.现在生成客户端密钥,比如用户名是 xisxy(如果有100个用户,就得生成100个密钥)
# cd  /etc/open***/easy-rsa/
# ./build-key xisxy
11.配置open***服务器端配置文件。
在/usr/local/share/examples/open***/sample-config-files/ 目录中有配置文件的模板文件。把服务器配置文件 server.conf 复制到 /etc/open***/
# cp /usr/local/share/examples/open***/sample-config-files/server.conf /etc/open***
# cd /etc/open***/
# vi server.conf
(修改为如下内容)
port 1194          #端口
proto tcp          # 协议,udp 在大部分环境中运行良好,如需要玩联网游戏可设为udp。
dev tun0           # 虚拟网络设备
ca /etc/open***/easy-rsa/keys/ca.crt          # 根 ca证书,注意路径。默认是没有指明路径的。
cert /etc/open***/easy-rsa/keys/server.crt    # 服务器证书,注意路径。默认是没有指明路径的。
key /etc/open***/easy-rsa/keys/server.key     # 服务器密钥,注意路径。默认是没有指明路径的。
dh /etc/open***/easy-rsa/keys/dh1024.pem      # Diffie hellman parameters,注意路径。默认是没有指明路径的。
server 10.8.0.0 255.255.255.0                 # ××× 虚拟网段,这里非常重要。这个网段是给***客户端使用的,不是*** server内网所直连的网段。

push "route 192.168.0.0 255.255.255.0"      #为*** client添加路由。告诉*** client,如果要访问192.168.0.0/24网段,要把数据包发送给*** server,默认是10.8.0.1.具体的ip要看你上面一样参数的设置。

ifconfig-pool-persist ipp.txt                 #从新连接后分配刚刚使用过的ip地址
push "redirect-gateway def1 bypass-dhcp"   #改变默认网关,要做代理这一点很重要。可以把open***服务器当作网关,上网都通过open***服务器上网(PF NAT功能)
push "dhcp-option DNS 8.8.8.8"        #设置client的DNS服务器,还可以高为 10.8.0.1 ,这时open***服务器本身充当DNS服务器了。
#client-to-client  # 在这里不需要虚拟网中的机器互相看到服务器以外的机器,所以要注释掉
keepalive 10 120                   #每10秒ping一次,120秒不响应,从新连接
tls-auth /etc/open***/easy-rsa/keys/ta.key 0    #防止 DoS *** 和 UDP 端口 flooding,生成一个"HMAC firewall",注意服务器端是0,client端是1
comp-lzo                            # 用lzo压缩
user _open***group _open*** 
persist-key
persist-tun
status open***-status.log    #  每分中更新open***状态记录
verb 3

1.3、测试服务器
# /usr/local/sbin/open*** --config /etc/open***/server.conf --cd /etc/open*** &  //启动open***服务。即监听1194端口。
最后出现Initialization Sequence Completed ,表示open***服务器启动成功。
让服务器自动启动open***服务,
# vi /etc/rc.local             #添加如下一行
/usr/local/sbin/open*** --config /etc/open***/server.conf --cd /etc/open*** &
Q:如果修改了上面的server.conf配置文件,如何重新启动open***服务?

A:使用jobs查看当前后天程序。使用fg把程序调入到前台,然后按ctrl+c结束程序。如果有多个jobs,根据编号,使用fg 编号 的方式调入到前台,比如
#fg 2

1.4、配置open***服务器pf防火墙,实现NAT功能。
1.开启IP转发功能
# sysctl net.inet.ip.forwarding=1
如要总是开启此功能,可在/etc/sysctl.conf文件中,把net.inet.ip.forwarding=1前面的#去掉即可
# vi /etc/sysctl.conf
net.inet.ip.forwarding=1
2.通过自带PF实现NAT
# vi /etc/pf.conf
加入如下内容
ext_if="bge0"
int_if="tun0"
internal_net="10.8.0.0/24"
match out on $ext_if from $internal_net to any nat-to $ext_if

pass on em0 proto tcp from any to any port  1194  //允许外部访问open***外网口的1194端口。默认pf.conf配置文件中有pass语句。

这里要说明一下,这里的rule,如果才能精细化控制***client访问内网资源?

如果要细化控制访问,注意规则距离如下:

pass proto tcp from 10.8.0.0/24 to 192.168.0.0/24 port 22

说明:10.8.0.0/24,是分配给***client使用的。192.168.0.0/24是*** server的内网网段。

根据此规则进行其他rule编写。

3.使新的规则生效
检验写的规则是否有问题:

#pfctl -nf /etc/pf.conf

没有问题在加载。

# pfctl -f /etc/pf.conf

查看加载了哪些规则:

pfctl -vf /etc/pf.conf

1.5、client的安装与配置
1.类unix client
在/usr/local/share/examples/open***/sample-config-files/目录中有配置文件的模板文件。把client配置文件client.conf复制到/etc/open***/,没有该文件夹就新建一个。
# cp /usr/local/share/examples/open***/sample-config-files/client.conf /etc/open***/
# vi /etc/open***/client.conf
-------------------------------------------
client
dev tun0
proto tcp
remote ***.***.***.*** 1194   # ***.***.***.***部分为你open*** server 外网的IP地址或域名
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/open***/easy-rsa/keys/ca.crt
cert /etc/open***/easy-rsa/keys/xisxy.crt   //上面创建ca时,自己所填写的内容。
key /etc/open***/easy-rsa/keys/xisxy.key    //上面创建ca时,自己所填写的内容。
tls-auth /etc/open***/easy-rsa/keys/ta.key 1  #注意服务器端是0,client端是1
comp-lzo
verb 3
--------------------------------------------------
测试一下client。
# open*** /etc/open***/client.conf
 
最后出现Initialization Sequence Completed,表示open*** client成功连接到服务器。
分配的虚拟专用网络IP地址为10.8.0.4。现在就可用虚拟专用网络中的IP地址来访问访问服务器。
访问外部网页等会透过×××服务器NAT来实现。

使用ping测试一下访问内网的 client。
2.windows client
安装文件(for windows): open***-2.0.9-gui-1.0.3-install.exe 客户端的版本没有什么限制,最新版也最好。
下载地址:http://www.open***.se/download.html
复制客户端密钥(client.crt和client.key)和ca.crt和ta.key复制到Client_PC的C:\Program Files\Open×××\config\ 目录。
还要把C:\Program Files\Open×××\sample-config\client.o***文件复制到
C:\Program Files\Open×××\config\ 目录。
直接点击C:\Program Files\Open×××\config\client.o***用记事本编辑配置文件。
这是PC1的client配置文件。
----------------------------------------------------
client                          //这个就是client,不要修改。
dev tun0                              
proto tcp
remote ***.***.***.*** 1194     # ***.***.***.***部分为你open*** server 外网的IP地址或域名
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert xisxy.crt                      //上面创建ca时,自己所填写的内容。
key xisxy.key                        //上面创建ca时,自己所填写的内容。
tls-auth ta.key 1  #注意client端是1
comp-lzo
verb 3
------------------------------------------------
双击桌面上的Open××× GUI图标,然后在右下角任务栏的图标上右击,选择connect。连接成功后,使用ping测试一样内网连通性把。

祝你好运。

最后,说明一下,如果按照上文配置成功后,客户端在连接的时候,不用输入密码就可以连接到open***服务器了。这有一定的安全隐患。如何配置呢?

其实无需配置。只要在客户端Open××× GUI图标右击,选择change password,原密码为空,输入两次新密码就ok了。保持后,再次连接时就需要密码验证了。

转载于:https://blog.51cto.com/swenzhao/1582585

如何在openbsd 5.1-5.3上部署open*** 服务器?相关推荐

  1. 怎样在linux上部署web服务器

    linux上部署web服务器 1.从Apache官网下载源码. 2.卸载原来已经存在的httpd. 3.挂载光盘准备部署httpd. 4.源码编译安装httpd, 解包 , 配置(--prefix:指 ...

  2. 在2003 server上部署DNS服务器

    目录 前言 配置DNS服务器 测试 DNS其他的一些设置 相关的命令 前言 准备两台电脑 在同一个局域网内.其中一台电脑是2003,且安装DNS服务器.我用的是一台2003 一台win7. 具体的安装 ...

  3. Server2003上部署Excel服务器

    Server2003上部署Excel服务器 1. 安装Server 2003的SP2补丁: 2. 安装IIS(Server 2003和XP操作系统,默认是不安装IIS的): 3. 安装.net fra ...

  4. 第15节 单臂路由上部署DHCP服务器及DHCP中继——基于PacketTracer仿真实验

    1理论知识储备 1.1 VTP协议相关理论知识 概念:VTP(VLAN Trunking Protocol):是VLAN中继协议,也被称为虚拟局域网干道协议.它是思科私有协议. 作用:在企业网络中有多 ...

  5. Linux上部署web服务器并发布web项目

    近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果. 以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我 ...

  6. 在Windows7 系统上部署DNS服务器

    本文主要介绍在WIN7上利用ntbind部署DNS服务器的方法.ntbind是Bind的Windows版本,下载地址:http://ftp.isc.org/isc/bind9/9.11.0rc3/.需 ...

  7. Freebsd10上部署open*** 服务器

    安装open***软件 1.先更新ports index #portsnap fetch update 2.安装open*** #cd /usr/ports/security/open***/ &am ...

  8. Centos7系统、Hadoop集群上部署ntp服务器

    集群情况: 三台机器分别: master:180.201.163.46 slave1:180.201.156.76 slave2:180.201.130.17 网关:255.255.192.0 在sl ...

  9. Docker上部署FTP服务器(基于stilliard/pure-ftpd)

    Docker Pure-ftpd Server    参考来源:https://hub.docker.com/r/stilliard/pure-ftpd/     pure-ftpd源码:https: ...

最新文章

  1. oracle crs 不能启动,oracle 10g crs 不能启动问题解决案例
  2. ipmitool 设置网关_IPMI (Intelligent Platform Management Interface)
  3. 分布式 WebSocket 集群解决方案
  4. asp.net学习之Repeater控件
  5. Elasticsearch 100问(下)
  6. 一:Greenplum5.10.2 生产环境安装配置 (系统初始化、安装准备)
  7. 职业素养和职业技能问题_中职生职业素养提升的综述
  8. 一个毕业生对大学爱情和奋斗的思考!
  9. java gt_JAVA泛型知识--gt; lt;? extends Tgt;和lt;? super Tgt;
  10. 自动登录360,百度
  11. 几种不同的邮件发送解决方案
  12. Android 8.0学习(8)---内核文件系统优化
  13. 记一次FFMPEG转avi视频保存到ftp服务器的失败尝试
  14. 深入浅出讲解LDA主题模型(一)
  15. Fiddler之文件代理
  16. GetPrivateProfileString的问题,获得的CString结构有问题,高手指点
  17. cloudflare免费证书_国外Cloudflare免费ssl证书设置
  18. arduino i2c EEPROM(AT24C02、AT24C08、AT24C16、AT24C32、AT24C64)驱动
  19. 实现金钱数字格式化:一行代码解决(三位分隔)
  20. ADS学习:统计分析——灵敏度分析、良率优化

热门文章

  1. 矩阵分解(rank decomposition)文章代码汇总
  2. 【图像分类】 关于图像分类中类别不平衡那些事
  3. 中国轮胎翻新行业“十四五”发展规划及竞争态势研究报告2021-2027年
  4. 对外合作对话国际农民丰收节贸易会 农业农村部谋定稳求进
  5. Python基础1 历史 变量
  6. 【转】IT名企面试:腾讯笔试题(2)
  7. 前腾讯游戏产品经理舒展:「觉」是产品最重要的维度
  8. 当我们思考问题时,能还是不能,请别预设立场
  9. 了解这些设计原则,助你打造最佳用户体验
  10. 线下活动 | 揭秘大数据背后的京东虚拟平台(免费报名中)